Мазмұны:

MIDI түрлендіргіштен нақты уақыттағы аудио: 7 қадам
MIDI түрлендіргіштен нақты уақыттағы аудио: 7 қадам

Бейне: MIDI түрлендіргіштен нақты уақыттағы аудио: 7 қадам

Бейне: MIDI түрлендіргіштен нақты уақыттағы аудио: 7 қадам
Бейне: ТЕСТОВАЯ КОРОБКА ДЛЯ МАСТЕРСКОЙ 12 В И ЗАРЯДКА ОТ USB 2024, Қараша
Anonim
MIDI конвертерінен нақты уақыттағы аудио
MIDI конвертерінен нақты уақыттағы аудио

Керемет адамдар! Бұл менің бакалавриат бағдарламасында курстарымның бірінде (нақты уақыттағы цифрлық сигналды өңдеу) жұмыс істеген жоба. Жоба UART арқылы аудио деректерді «тыңдайтын» және тиісті жазбалардың MIDI хабарламаларын шығаратын DSP жүйесін құруға бағытталған. Ол үшін Arduino Nano қолданылды. Ұзын сөздің қысқасы, микроконтроллер кіріс аудио деректерге FFT жасайды және шыңдарға талдау жасайды және сәйкес MIDI хабарламасын жібереді. MOSFET туралы алаңдамаңыз, өйткені олар басқа жобаға арналған (олар кейінірек нұсқаулықтарда да қойылады) және бұл жоба үшін қажет емес. Ендеше қазірден бастайық !!

1 -қадам: Қажетті компоненттер

Қажетті компоненттер
Қажетті компоненттер

Бұл жобаны құру үшін бізге келесі компоненттер қажет болады, бірақ олардың көпшілігі жалпыға ортақ және оларды баламаларымен алмастыруға болады. Жақсы іске асыру үшін схеманы өңдеңіз және іздеңіз.

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

1. Электрлі микрофон. 1

2. 30 кило Ом резисторы. 1

3. 150 кило Ом резисторы. 1

4. 100 Ом резисторы. 1

5. 2.2 кило Ом резисторлары. 3

6. 10 кило Ом алдын ала орнатылған кастрюль. 1

7. 10 кило Ом қайшылы ыдыс. 1

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

9. 470 Ом резисторы. 2018-05-07 121 2

10. 0,01uF конденсаторлар. 2018-05-07 121 2

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

12. 47uF конденсаторлар. 2018-05-07 121 2

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

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

15. 7805 кернеу реттегіші. 1

16. Әйелдер мен ерлердің тақырыптық жолағы. Әрқайсысы 1

17. Бөшке ұясының қосқышы. 1

18. 12 В 1 Ампер тұрақты ток адаптері. 1

19. SPST қосқышы. (Қосымша) 1

20. Үздік тақта. 1

2 -қадам: Техникалық сипаттамалар

Техникалық сипаттамалар
Техникалық сипаттамалар

Іріктеу жиілігі: 3840 сынама/сек

FFT бойынша сынамалар саны: 256

Жиілік ажыратымдылығы: 15 Гц

Жаңарту жиілігі: шамамен 15 Гц

Музыкалық ноталардың төменгі және жоғарғы таразылары дұрыс түсірілмеген. Төменгі ноталар төмен жиілікті ажыратудан зардап шегеді, ал жоғары жиіліктер іріктеудің төмен жылдамдығынан зардап шегеді. Ардуино жадында жоқ, сондықтан жақсы ажыратымдылыққа қол жеткізу мүмкін емес. Жақсы ажыратымдылық жаңарту жылдамдығының төмендеуіне байланысты болады, сондықтан айырбастау мүмкін емес. Гейзенбергтің белгісіздік принципінің Лейман нұсқасы.

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

3 -қадам: схемалар

Схема схемалары
Схема схемалары
Схема схемалары
Схема схемалары
Схема схемалары
Схема схемалары
Схема схемалары
Схема схемалары

Ескертпе: суреттердегі үш MOSFET пен бұрандалы терминалдар сізді мазаламаңыз. Бұл жоба үшін олар қажет емес. Микрофонның кіріс тақтасы алынбалы немесе оны модульдік деп атайтынына назар аударыңыз. Әр түрлі блоктардың шағын сипаттамасы төменде берілген.

1) Екі 470 Ом резисторы стерео дыбыстық сигналды моно дыбыстық сигналға біріктіреді. Сигналдың жерге тұйықталуы жерге тұйықталуға емес, виртуалды жерге түсетініне көз жеткізіңіз.

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

3) Содан кейін шығыс 6 вольтты тұрақты токтың ығысуын блоктау үшін сүзгіден өтеді және шамамен 0,55 вольтты тұрақты токпен қосылады, себебі ADC ішкі 1.1 врені Vref ретінде пайдалануға конфигурацияланады.

Ескерту: Электрлік микрофон үшін алдын ала күшейткіш интернеттегі ең жақсы схема емес. Оп-ампері бар схема жақсы таңдау болар еді. Біз жиілік реакциясы мүмкіндігінше тегіс болғанын қалаймыз. 47 килограммдық стерео кастрюль іріктеу жиілігінің жартысына тең болуы керек шектеу жиілігін анықтау үшін қолданылады. 10 кило Ом алдын ала орнатылған (ақ басы бар шағын кастрюль) фильтрдің пайдасы мен Q мәнін реттеу үшін қолданылады. Кернеуді Врефтің жартысына жақын етіп орнату үшін 10 келілік қайшыны кесетін ыдыс (металдың реттегіш тұтқасы бар, ол жалпақ басы бар бұрандаға ұқсайды) қолданылады.

Ескерту: Наноны ПК -ге қосқанда SPST қосқышын ашық күйде ұстаңыз, әйтпесе жабық. Бұлай жасамасаңыз, электр тізбегіне/компьютерге/кернеу реттегішіне немесе жоғарыда айтылғандардың кез келген комбинациясына зиян келтіруі мүмкін

4 -қадам: Қажетті қосымшалар мен IDE

Қажетті қосымшалар мен IDE
Қажетті қосымшалар мен IDE
Қажетті қосымшалар мен IDE
Қажетті қосымшалар мен IDE
Қажетті қосымшалар мен IDE
Қажетті қосымшалар мен IDE
Қажетті қосымшалар мен IDE
Қажетті қосымшалар мен IDE
  1. Arduino Nano кодтау үшін мен AVR 5.1 қарапайым студиясымен жүрдім, себебі бұл мен үшін жұмыс істейтін сияқты. Сіз орнатушыны осы жерден таба аласыз.
  2. Arduino Nano бағдарламалау үшін мен Xloader қолдандым.. Hex файлдарын Arduinos -қа жазу үшін жеңіл салмақты құралды қолдану өте оңай. Сіз оны осы жерден ала аласыз.
  3. Кішкентай бонустық шағын жоба мен схеманы реттеу үшін мен өңдеуді қолдандым. Сіз оны осы жерден ала аласыз, бірақ әр нұсқада үлкен өзгерістер бар, сондықтан эскизді жұмыс істеу үшін ескірген функциялармен айналысуға тура келуі мүмкін.
  4. FL studio немесе кез келген басқа MIDI өңдеуге арналған бағдарлама. Сіз FL studio шектеулі нұсқасын осы жерден тегін ала аласыз.
  5. Loop MIDI виртуалды MIDI портын жасайды және оны FL студиясы MIDI құрылғысы сияқты анықтайды. Дәл осының көшірмесін осы жерден алыңыз.
  6. Шашсыз MIDI COM портындағы MIDI хабарламаларын оқу және оны MIDI портына жіберу үшін қолданылады. Ол сонымен қатар MIDI хабарламаларын нақты уақытта жөндейді, бұл жөндеуді ыңғайлы етеді. Осы жерден Шашсыз MIDI алыңыз.

5 -қадам: Барлығына қатысты кодтар

Мен осы жобада қолданған FFT кітапханасы үшін MFG Electronic Lifes MFG -ге (мұнда веб -сайт !!) алғыс айтқым келеді. Кітапхана mega AVR отбасы үшін оңтайландырылған. Бұл кітапхана файлдары мен ол қолданған кодтардың сілтемесі. Мен төмендегі кодты тіркеймін. Оған өңдеу нобайы мен AVR C коды кіреді. Назар аударыңыз, бұл мен үшін жұмыс істейтін конфигурация, және егер сіз осы кодтардың арқасында бірдеңеге зақым келтірсеңіз, мен жауапкершілікті өз мойныма алмаймын. Сонымен қатар, кодты жұмыс істеуге тырысатын көптеген мәселелер болды. Мысалы, DDRD (Data Direction Register) кәдімгі DDRDx (x = 0-7) орнына бит маскасы ретінде DDDx (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. Бұрағышты алыңыз және триммер кастрюлін спектр тегіс болғанша бұраңыз (тұрақты ток компоненті нөлге жақын болуы керек). Содан кейін тақтаға ешқандай сигнал бермеңіз. (Микрофон модулін қоспаңыз).
  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 мәнін төмендетуге тырысыңыз. Егер жазбалар кездейсоқ іске қосылса, онда жоғары_шекті жоғарылатыңыз.
  13. Фортепиано алыңыз және сіздің жүйеңіз қаншалықты жылдам екенін тексеріңіз !! Ең дұрысы, алтын түстес ноталар аймағында ол бір мезгілде бірнеше пернені басуды оңай анықтай алады.

Ескерту: COM портына бір қолданба арқылы кіргенде, оны басқа бағдарлама оқи алмайды. Мысалы, егер Hairless MIDI COM портын оқыса, Xloader тақтаны жыпылықтай алмайды

7 -қадам: Нәтижелер/бейнелер

Әзірге балалар осылай! Сізге ұнайды деп үміттенемін. Егер сізде жобада қандай да бір ұсыныстар немесе жақсартулар болса, түсініктеме бөлімінде маған хабарлаңыз. Бейбітшілік!

Ұсынылған: