This shows you the differences between two versions of the page.
pm:prj2021:apredescu:midi_controller [2021/06/03 01:49] mohamad_kher.al |
pm:prj2021:apredescu:midi_controller [2021/06/03 15:48] (current) mohamad_kher.al |
||
---|---|---|---|
Line 16: | Line 16: | ||
folosite pentru a regla diferite efecte sonore si proprietati precum volumul si frecventa. | 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 | + | **{{:pm:prj2021:apredescu:midi.png?600|}}** |
- | OLED pentru vizualizarea proprietatilor setate de potentiometru. | + | |
+ | Schema bloc | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 25: | Line 26: | ||
* potentiometre | * potentiometre | ||
* fire | * fire | ||
- | Alte componente hardware care ar putea fi folosite in proiect sunt: | + | * Led-uri |
- | * OLED color | + | * rezistente(pentru conectarea led-urilor) |
- | * telecomanda | + | |
- | * joystick | + | |
- | **{{:pm:prj2021:apredescu:midi.png?600|}}** | + | {{:pm:prj2021:apredescu:schema_midi_picture.jpg?800|}} |
- | + | ||
- | Schema bloc | + | |
- | + | ||
- | {{:pm:prj2021:apredescu:schema_midi_pic.jpg?800|}} | + | |
Schema electrica | Schema electrica | ||
Line 41: | Line 36: | ||
Codul este scris in Arduino IDE, iar pe langa bibilotecile standard Arduino acesta foloseste biblioteca MIDI.h, | 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. Codul este relativ simplu, acesta procedeaza astfel: | biblioteca folosita pentru a trimite datele intr-un format MIDI-convertibil. Codul este relativ simplu, acesta procedeaza astfel: | ||
- | 1- citeste datele de la butoane cu digitalRead si datele de la potentiometre cu analogRead | + | |
- | 2- pentru butoane va verifica inputurile la fiecare trecere a unei perioade de delay si le va trimite ca note | + | 1- citeste datele de la butoane cu digitalRead si datele de la potentiometre cu analogRead |
- | folosind functia sendNoteOn(). daca se apasa butonul de pauza si ledurile sunt active se vor dezactiva, atlfel daca | + | |
- | se apasa alt buton si ledurile sunt inactive se vor activa | + | 2- pentru butoane va verifica inputurile la fiecare trecere a unei perioade de delay si le va trimite ca note |
- | 3- pentru potentiometre se va folosi acelasi principiu de verificare dupa delay, diferenta este ca datele nu se vor trimite | + | folosind functia sendNoteOn(). daca se apasa butonul de pauza si ledurile sunt active se vor dezactiva, atlfel daca |
- | folosiind sendNoteOn(), ci folosiind sendControlChange() pentru a putea modifica controale precum efectele si filterele. Datele | + | se apasa alt buton si ledurile sunt inactive se vor activa |
- | trimise de la potentiometru vor trebui scalate pentru a se incadra in intervalul 0-127 deoarece acesta este intervalul notelor MIDI | + | |
+ | 3- pentru potentiometre se va folosi acelasi principiu de verificare dupa delay, diferenta este ca datele nu se vor trimite | ||
+ | folosiind sendNoteOn(), ci folosiind sendControlChange() pentru a putea modifica controale precum efectele si filterele. Datele | ||
+ | trimise de la potentiometru vor trebui scalate pentru a se incadra in intervalul 0-127 deoarece acesta este intervalul notelor MIDI | ||
Pe langa scrierea codului am avut nevoie de diverse aplicatii pentru functionarea proiectului. In primul rand, un | Pe langa scrierea codului am avut nevoie de diverse aplicatii pentru functionarea proiectului. In primul rand, un | ||
Line 65: | Line 63: | ||
{{:pm:prj2021:apredescu:rezultate_mohamad3.jpeg?200|}} | {{:pm:prj2021:apredescu:rezultate_mohamad3.jpeg?200|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | Pe langa experienta dobandita in lucrul cu Arduino, am invatat multe despre datele MIDI si cum acestea sunt transmise unui mediu | + | Pe langa experienta dobandita in lucrul cu Arduino, am invatat multe despre datele MIDI si modul in care acestea sunt transmise unui mediu |
muzical. Deasemenea am invatat putin despre lucrul cu potentiometre si ce tipuri de potentiometre sunt potrivite pentru anumite | muzical. Deasemenea am invatat putin despre lucrul cu potentiometre si ce tipuri de potentiometre sunt potrivite pentru anumite | ||
tensiuni. | tensiuni. | ||
Line 74: | Line 72: | ||
===== Bibliografie ===== | ===== Bibliografie ===== | ||
https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/midi_controller | https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/midi_controller | ||
+ | https://github.com/FortySevenEffects/arduino_midi_library/blob/master/src/MIDI.h | ||
+ | https://youtu.be/BzLKtor-6Vg | ||