Мазмуну:

Аудио MIDI Конвертерине: 7 кадам
Аудио MIDI Конвертерине: 7 кадам

Video: Аудио MIDI Конвертерине: 7 кадам

Video: Аудио MIDI Конвертерине: 7 кадам
Video: Генератор ритмических паттернов Arduino 8x8 Gate Sequencer с двумя поворотными энкодерами и OLED- 2024, Ноябрь
Anonim
MIDI Converter үчүн реалдуу убакытта аудио
MIDI Converter үчүн реалдуу убакытта аудио

Намыстуу адамдар! Бул менин бакалавр программамдагы курстарымдын биринде (Реалдуу убакытта санарип сигналдарды иштетүү) иштеген долбоор. Долбоор аудио маалыматтарды "угат" жана UART аркылуу тиешелүү ноталардын MIDI билдирүүлөрүн чыгаруучу DSP системасын түзүүгө багытталган. Бул үчүн Arduino Nano колдонулган. Кыскача айтканда, микроконтроллер келген аудио маалыматтарга FFT жасайт жана чокуларды анализдейт жана тиешелүү MIDI билдирүүсүн жөнөтөт. MOSFETтер жөнүндө тынчсызданбаңыз, анткени алар башка долбоор үчүн (алар кийинчерээк көрсөтмөлөргө коюлат) жана бул долбоор үчүн талап кылынбайт. Андыктан эмитен эле баштайлы !!

1 -кадам: компоненттери талап кылынат

Керектүү компоненттер
Керектүү компоненттер

Бул долбоорду куруу үчүн бизге төмөнкү компоненттер керек болот, бирок алардын көбү жалпы жана эквиваленттери менен алмаштырылышы мүмкүн. Ошондой эле схеманы иштеп чыгып, жакшыраак ишке ашыруу үчүн издеңиз.

Компоненттердин саны

1. Электр меши. 1

2. 30 Kilo Ohm каршылыгы. 1

3. 150 Kilo Ohm каршылыгы. 1

4. 100 Ом каршылыгы. 1

5. 2.2 кило Ом каршылыгы. 3

6. 10 кило Ом даяр идиш. 1

7. 10 Кило Ом триммер казаны. 1

8. 47 Kilo Ohm стерео идиш. 1

9. 470 Ом резисторлор. 2

10. 0.01uF конденсаторлор. 2

11. 2.2uF конденсаторлор. 3

12. 47uF конденсаторлор. 2

13. 1000uF конденсатор. 1

14. 470uF конденсатор. 1

15. 7805 чыңалуу жөндөгүчү. 1

16. Аял жана Эркектин баш тилкеси. Ар бири 1

17. Barrel Jack туташтыргычы. 1

18. 12 V 1 Amp DC адаптери. 1

19. SPST которгуч. (Милдеттүү эмес) 1

20. Perfboard. 1

2 -кадам: Техникалык мүнөздөмөлөр

Техникалык мүнөздөмө
Техникалык мүнөздөмө

Тандоо жыштыгы: 3840 үлгү/сек

ФФТга үлгүлөрдүн саны: 256

Frequency токтому: 15Hz

Жаңыртуу ылдамдыгы: 15 Гц тегерегинде

Музыкалык ноталардын төмөнкү жана жогорку таразалары туура тартылган эмес. Төмөнкү ноталар төмөн жыштыктагы ажыратуудан жабыркайт, мында жогорку жыштыктар ылдамдыктын төмөн ылдамдыгынан жабыркашат. Ардуино эс тутумунда жок, андыктан жакшыраак чечим чыгарууга мүмкүнчүлүк жок. Жана жакшыраак чечим жаңылануу ылдамдыгынын төмөндөшүнө алып келет, андыктан соода сөзсүз болот. Гейзенбергдин белгисиздик принцибинин Лейман версиясы.

Негизги кыйынчылык - ноталардын ортосундагы экспоненциалдык аралык (сүрөттө көрүнүп тургандай. Жыштык огунда ар бир импульс музыкалык нота). LFT сыяктуу алгоритмдер жардам бериши мүмкүн, бирок бул arduino Nano сыяктуу түзүлүш үчүн бир аз өнүккөн жана анча татаал эмес.

3 -кадам: Райондук диаграммалар

Райондук диаграммалар
Райондук диаграммалар
Райондук диаграммалар
Райондук диаграммалар
Райондук диаграммалар
Райондук диаграммалар
Райондук диаграммалар
Райондук диаграммалар

Эскертүү: Сүрөттөрдөгү үч MOSFET жана бурамалуу терминалдар менен тынчсызданбаңыз. Бул долбоор үчүн алар талап кылынбайт. Микрофондун кирүү тактасы алынуучу же Модулдук деп аталат. Ар кандай блоктордун кичинекей сүрөттөмөсү төмөндө келтирилген.

1) Эки 470 омдук резистор стерео аудио сигналды моно аудио сигналга бириктирет. Сигналдын негизи чынжырдын жерге эмес, виртуалдык жерге (vg схемасында) барышын камсыз кылыңыз.

2) Кийинки блок-лакап болуудан качуу үчүн, кирүү сигналын чектөө үчүн жооптуу болгон 2-даражадагы кичине баскычтуу чыпкасы. Биз +12v менен гана иштегендиктен, биз RC чыңалуусун бөлүп, оп-ампти бир жактуу кармайбыз. бул оп -ампти алдоо 6 0 -6 вольт (кош темир жол) деп ойлоп, алдап жатат, мында vg оп -амп үчүн негизги шилтеме.

3) Андан кийин DC 6 вольттун ордун бөгөө үчүн чыпкаланган жана 0,55 вольттун тегерегиндеги DC менен коштолгон аз өтмө болот, анткени ADC ички 1.1 vreди Vref катары колдонууга конфигурацияланат.

Эскертүү: Электр микрофону үчүн алдын ала күчөткүч интернеттеги эң жакшы схема эмес. Оп-ампти камтыган схема жакшы тандоо болмок. Биз жыштыктын мүмкүн болушунча тегиз болушун каалайбыз. 47 килограммдык стерео идиш тандоо ылдамдыгынын жарымын түзүшү керек болгон жыштыкты аныктоо үчүн колдонулат. 10 килограммдык алдын ала коюлган (ак башы бар кичинекей идиш) фильтрдин пайдасын жана Q маанисин жөндөө үчүн колдонулат. 10 килограммдык триммер казаны (кичинекей жалпак баш бурамага окшош металлдык тюнинг бар) чыңалууну Vrefтин жарымына жакын кылып коюу үчүн колдонулат.

Эскертүү: Нанону ПКга туташтырып жатканыңызда. SPST которгучун ачык кармаңыз, башка жабык. Өзгөчө этият болуңуз, антпесе бул схемага/компьютерге/чыңалуу жөндөгүчүнө же жогоруда айтылгандардын айкалышына зыян келтириши мүмкүн

4 -кадам: Керектүү тиркемелер жана IDEлер

Керектүү тиркемелер жана IDEлер
Керектүү тиркемелер жана IDEлер
Керектүү тиркемелер жана IDEлер
Керектүү тиркемелер жана IDEлер
Керектүү тиркемелер жана IDEлер
Керектүү тиркемелер жана IDEлер
Керектүү тиркемелер жана IDEлер
Керектүү тиркемелер жана IDEлер
  1. Arduino Nano коддоо үчүн мен AVR 5.1 студиясы менен бардым, анткени ал мен үчүн иштейт окшойт. Сиз орнотуучуну бул жерден таба аласыз.
  2. Arduino Nano программалоо үчүн мен Xloader колдондум. Ардуинолорго.hex файлдарын күйгүзүү үчүн жеңил салмакты колдонуу абдан оңой. Бул жерден алсаңыз болот.
  3. Кичине бонустук мини -проект жана схеманы тууралоо үчүн мен иштетүүнү колдондум. Эскизди иштетүү үчүн эскирген функциялар менен скрипка кылышыңыз керек болушу мүмкүн.
  4. FL студиясы же башка MIDI иштетүү программасы. Бул жерден FL studio чектелген версиясын акысыз ала аласыз.
  5. Loop MIDI виртуалдык MIDI портун түзөт жана FL студиясы аны MIDI түзмөгү сыяктуу аныктайт. Ушул жерден көчүрмөсүн алыңыз.
  6. Чачсыз MIDI COM портунан MIDI билдирүүлөрдү окуу жана аны MIDI портуна циклге жөнөтүү үчүн колдонулат. Ал ошондой эле реалдуу убакытта MIDI билдирүүлөрүн оңдойт, бул мүчүлүштүктөрдү оңдоону ыңгайлуу кылат. Бул жерден чачсыз MIDI алыңыз.

5 -кадам: Бардыгы үчүн тиешелүү коддор

Мен бул долбоордо колдонгон FFT китепканасынын туруктуу чекити үчүн Electronic Lifes MFG (Бул жердеги сайт !!) ыраазычылыгымды билдиргим келет. Китепкана AVR үй -бүлөсү үчүн оптималдаштырылган. Бул китепкана файлдарына жана ал колдонгон коддорго шилтеме. Мен төмөндөгү кодду тиркеп жатам. Ал иштетүү эскизин жана AVR C кодун камтыйт. Сураныч, бул мен үчүн иштеген конфигурация жана бул коддордун айынан кандайдыр бир нерсеге зыян келтирсеңиз, мен эч кандай жоопкерчилик тартпайм. Ошондой эле, менде кодду иштетүү үчүн көптөгөн көйгөйлөр болгон. Мисалы, DDRD (Data Direction Register) кадимки DDRDxтин ордуна бит маскалар катары DDDx (x = 0-7) бар (x = 0-7). Түзүү учурунда бул каталарга сак болуңуз. Микроконтроллерди алмаштыруу бул аныктамаларга таасирин тийгизет, андыктан компиляция каталары менен күрөшүп жатып, буга да көңүл буруңуз. Эгер сиз эмне үчүн долбоордун папкасы DDT_Arduino_328p.rar деп аталып жатканын ойлонуп жатсаңыз, анда мен кое баштаганда кечинде абдан караңгы болгонун жана жарыкты күйгүзбөө үчүн жалкоо болгонумду айталы.: P

Иштөө эскизине келсек, мен бул эскизди жазуу үчүн 3.3.6 иштетүүнү колдондум. COM портунун номерин эскизде кол менен орнотушуңуз керек. Сиз коддогу комментарийлерди текшере аласыз.

Эгерде кимдир бирөө мага коддорду Arduino IDEге жана акыркы иштетүү версиясына жеткирүүгө жардам бере алса, мен кубанычта болом жана иштеп чыгуучуларга / салым кошкондорго кредит берем.

6 -кадам: Аны орнотуу

  1. Кодду ачыңыз жана #define pcvisual комментарийсиз жана #define midi_out комментарийлер менен кодду түзүңүз.
  2. Ачык xloader жана коду бар каталогго өтүңүз.hex файлын карап чыгыңыз жана тиешелүү тактаны жана COM портун тандап нано күйгүзүңүз.
  3. Иштетүү эскизин ачыңыз жана аны тиешелүү COM порт индекси менен иштетиңиз. Эгерде баары ойдогудай болсо, сиз A0 пининдеги сигналдын спектрин көрө алышыңыз керек.
  4. Бурагычты алыңыз жана триммер казанды спектр тегиз болгонго чейин буруңуз (DC компоненти нөлгө жакын болушу керек). Андан кийин тактага эч кандай сигнал киргизбеңиз. (Микрофон модулун тиркебеңиз).
  5. Эми микрофондон тактага киргизүү үчүн спектрди байкоо үчүн ушул сыяктуу ар кандай генератордун куралын колдонуңуз.
  6. Эгерде сиз жыштыктардын шыпырылышын көрбөсөңүз, 47 кило Ом каршылыгын өзгөртүү менен чектин жыштыгын азайтыңыз. Ошондой эле 10 килограммдык алдын ала коюлган идишти колдонуу менен кирешени көбөйтүңүз. Бул параметрлерди өзгөртүү менен жалпак жана көрүнүктүү шыпырууну алууга аракет кылыңыз. Бул кызыктуу бөлүгү (кичинекей бонус!), Сүйүктүү ырларыңызды ойноп, алардын реалдуу убакыт спектринен ырахат алыңыз. (Видео көрүү)
  7. Эми киргизилген С кодун бул жолу дагы #define pcvisual комментарийи менен жана #define midi_out комментарийсиз чогулткула.
  8. Жаңы түзүлгөн кодду arduino Nanoго кайра жүктөңүз.
  9. LoopMidi ачып, жаңы порт түзүңүз.
  10. FL студиясын же башка MIDI интерфейсинин программасын ачыңыз жана MIDI портунун жөндөөлөрүндө midi порту көрүнүп турганын текшериңиз.
  11. Ардуино туташкан ачык чачсыз MIDI. LoopMidi портуна чыгуу портун тандаңыз. Жөндөөлөргө өтүп, Baud ылдамдыгын 115200 деп коюңуз. Эми Arduino Nanoго туура келген COM портун тандап, портту ачыңыз.
  12. Микрофондун жанында "таза" обондорду ойноңуз, ошондо сиз MIDI программасында тиешелүү нотаны угушуңуз керек. Эгерде жооп жок болсо, C кодунда аныкталган up_thresholdду түшүрүп көрүңүз. Эгерде ноталар туш келди иштетилсе, анда up_thresholdду жогорулатыңыз.
  13. Пианинону алыңыз жана системаңыздын ылдамдыгын текшериңиз !! Эң жакшы нерсе, алтын түстүү ноталардын зонасында бир эле учурда бир нече баскычтарды оңой эле аныктай алат.

Эскертүү: COM портуна бир колдонмо кирсе, аны башка колдонуучу окуй албайт. Мисалы, эгерде чачсыз MIDI COM портун окуп жатса, Xloader тактаны жаркырата албайт

7 -кадам: Жыйынтыктар/Видеолор

Азырынча жигиттер ушундай! Бул сизге жагат деп үмүттөнөм. Эгерде сизде долбоордо кандайдыр бир сунуштар же жакшыртуулар болсо, комментарий бөлүмүндө мага билдириңиз. Тынчтык!

Сунушталууда: