This is an old revision of the document!


MIDI CONTROLLER

Autor: Al Erksousi Mohamad

Grupa: 336CA

Introducere

Proiectul consta in realizare unui MIDI(Musical Instrument Digital Interface) Controller, un aparat ce trimite semnale unui sintetizator/alt instrument muzical asemanator, oferiind posibilitatea atat de a declansa diferite tonuri, cat si de a schimba parametrii sunetului(Intensitate, frecventa, etc..) prin intermediul unor potentiometre.

Descriere Generala

Pe post de instrument muzical voi folosi o aplicatie de tip sintetizator, cel mai probabil loopBe sau FL studio. Declansarea unui sunet se va face prin intermediul butonaelor, facandu-se o mapare intre inputul primit si sunetul care va fi declansat in aplicatie. Pe langa butoane, aparatul va avea si un numar de potentiometre care vor putea fi folosite pentru a regla diferite efecte sonore si proprietati precum volumul si frecventa.

In functie de modul cum decurge proiectul, e posibil sa fie adaugate si alte proprietati precum butoane wireless sau un OLED pentru vizualizarea proprietatilor setate de potentiometru.

Hardware Design

Componentele hardware necesare sunt următoarele:

  • Arduino Uno
  • butoane
  • potentiometre
  • fire

Alte componente hardware care ar putea fi folosite in proiect sunt:

  • OLED color
  • telecomanda
  • joystick

Software Design

Codul este scris in Arduino IDE, iar pe langa bibilotecile standard Arduino acesta foloseste biblioteca MIDI.h, biblioteca folosita pentru a trimite datele intr-un format MIDI-convertibil.

Pe la scrierea codului am avut nevoie de diverse aplicatii pentru functionarea proiectului. In primul rand, un controller MIDI nu isi are rostul daca nu trimite datele unui instrument muzical. Neavand instrumente pe care sa le pot folosi, am optat la folosirea unei aplicatii de tip sintetizator apeland la programul Ableton Live pentru generarea muzicii. Am ales Ableton Live in principal deoarece este cel mai MIDI-friendly dintre toate aplicatile de acest tip.

Deoarece datele trimise de program sunt date seriale, nu date MIDI, acestea nu puteau fi trimise in mod direct aplicatiei, fara sa treaca printr-un convertor care sa le transforme in date MIDI. Pentru a face aceasta conversie am folosit Hairless MIDI, o aplicatie care primeste date pe un port serial si le converteste pentru a le transmite mai departe pe un port MIDI. Windows nu are implementate optiuni pentru crearea unui port MIDI, deci am folosit aplicatia LoopMIDI pentru a crea un astfel de port.

Rezultate Obtinute

Concluzii

Pe langa experienta dobandita in lucrul cu Arduino, am invatat multe despre datele MIDI si cum acestea sunt transmise unui mediu muzical. Deasemenea am invatat putin despre lucrul cu potentiometre si ce tipuri de potentiometre sunt potrivite pentru anumite tensiuni.

Download

Bibliografie

pm/prj2021/apredescu/midi_controller.1622670926.txt.gz · Last modified: 2021/06/03 00:55 by mohamad_kher.al
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0