Мазмұны:

Raspberry Pi барабан машинасы: 5 қадам
Raspberry Pi барабан машинасы: 5 қадам

Бейне: Raspberry Pi барабан машинасы: 5 қадам

Бейне: Raspberry Pi барабан машинасы: 5 қадам
Бейне: Запомни эту хитрость по доработке перфораторы для ровного сверления 2024, Шілде
Anonim
Raspberry Pi барабан машинасы
Raspberry Pi барабан машинасы

Sample Sequencer, Raspberry Pi + Python арқылы.

Секвенсерде 4 полифония бар және ол пайдаланушыға нақты уақытта ауыса алатын 6 түрлі тізбекті сақтауға және анықтауға мүмкіндік береді және әр түрлі үлгілер арасында ауысу мүмкіндігін қолдайды.

Мен сценарийді кез келген MIDI контроллері мен дыбыстарымен жұмыс істейтін етіп жаздым. Мен 18 түрлі дыбыстық банктерді қолданамын, олардың әрқайсысында 16 үлгі бар, бірақ банктер мен үлгілерді қосу немесе азайту оңай және көп өзгертулерді қажет етпейді. Егер сізде қиындықтар туындаса, маған электронды пошта арқылы хабарласыңыз: [email protected]

GitHub -тен кодты мына жерден табыңыз:

Егер сіз оны қолдансаңыз, әсіресе, егер сіз онымен видео түсірсеңіз, маған хабарлаңыз!

1 -қадам: тәуелділіктер

Бұл бағдарлама келесі Python модульдерін қажет етеді:

мидо

ойын

ессіз

Алайда, Мидо кейбір қиындықтарды тудырады, өйткені Mido өзі бірнеше тәуелділікті қажет етеді. Олардың барлығы орнатылғанына көз жеткізу үшін Raspberry Pi терминалына келесі пәрмендерді енгізіңіз ('$' белгісі жоқ) және бәрі жақсы болады. Қалған модульдерді қалыпты түрде орнатуға болады.

$ sudo apt-get жаңартуы

$ sudo apt-get install build-essential

$ sudo apt-get libasound-dev немесе libasound2-dev орнатыңыз

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get python-pip орнатыңыз

$ sudo apt-get install python-dev

$ sudo pip python-rtmidi орнатыңыз

$ sudo pip install mido

2 -қадам: Midi енгізу мәндерін конфигурациялау

Midi енгізу мәндерін конфигурациялау
Midi енгізу мәндерін конфигурациялау

Негізгі Python сценарийінде 16 бүтін саннан тұратын noteList деп аталатын массив бар (165 -жол). Бұл біздің контроллер дыбыстарды іске қосу үшін Pi -ге жіберетін MIDI ескерту мәндері. Әрбір midi контроллері басқаша, бірақ егер сізде Akai LPD8 болмаса, сізге бұл мәндерді құрылғыға сәйкес өзгерту қажет болады.

Github репо -да осы мақсат үшін арнайы жасалған «midihelp.py» деп аталатын басқа сценарий бар! Ол тек компьютер танитын MIDI контроллерінің кіріс мәндерін консольге басып шығарады. Сізге бұл мәндердің noteList -те қамтылғаннан өзгеше болса, массивте ауыстыру қажет.

Жазбалардың реті сонымен қатар бір қалтада қандай дыбыстық әсердің ойнатылатынына байланысты, сондықтан оны есте сақтаңыз.

3 -қадам: Үлгілері бар қосымша қалталарды қосыңыз

Сценарийдегі жиынтықтар сол каталогтағы қалталар арқылы сақталады, 808 жиынтығының GitHub файлында қалай болатынын дәл орнатыңыз. Осылайша мен оңай реттелетін және ауыстырылатын қалталарда сақталатын әр түрлі үлгі жиынтығына ие бола аламын.

Сценарийді өзгертуге болатын жалғыз нәрсе - бұл айнымалы foldNum, ол сценарийге үлгілердің қанша қалтасы бар екенін айтады. Қазіргі уақытта сценарийде foldNum бар, себебі бір каталогта тек бір ішкі қалта бар (808 жиынтығы). Қазіргі уақытта сценарий өңдей алатын максималды қалталар саны - 18, мен қанша қолданамын, бірақ бұл өте маңызды емес. мұны өзгертіңіз, егер сізге көмек қажет болса, маған хабарлаңыз.

Қалталардың атаулары маңызды емес (бәрі басқаша болса да), өйткені Сценарий тек бір каталогтағы қалталардың санын оқиды және жолдарды солай алады. Файлдардың аттары маңызды, бірақ келесі қадамда.

4 -қадам: Жаңа қалталарға қосымша үлгілерді қосу және конфигурациялау

Жаңа қалталарға қосымша үлгілерді қосу және конфигурациялау
Жаңа қалталарға қосымша үлгілерді қосу және конфигурациялау

Дыбыстар іріктегішке 0-15 арасында нөмірленген.wav файлдары бар каталогтағы қалталар арқылы жүктеледі. Бұған мысал үшін берілген 808 қалтасын қараңыз. Үлгілері бар әрбір ішкі қалта бір -біріне ұқсас болуы керек.

NoteList массивіндегі MIDI кірістерінің индексі.wav файл атауына сәйкес келеді.

Мысалға:

  • noteList [0] сақталған MIDI жазбасын іске қосқанда, 0.wav wav файлы ойнатылады.
  • noteList [8] сақталған MIDI жазбасын іске қосқанда, 8.wav wav файлы ойнатылады.

Мен мұны ішінара жасадым, сондықтан әрбір MIDI контроллері сценариймен жұмыс жасау үшін оңай реттелуі мүмкін, сонымен қатар мен үлгі мен енгізу нөмірін оңай кеңейте немесе шектей аламын, сонымен қатар файлдар мен сценарийді соққы барабанында реттей аламын. дыбыстар, мысалы, әрқашан 0.wav ретінде сақталады және бірінші MIDI жазбасы арқылы іске қосылады.

Мен контроллердегі 16 кіріске сәйкес келу үшін 16 мәнді таңдадым, сондықтан егер сіз тек 1 үлгісі бар секвенер жасағыңыз келсе немесе одан да көп болса, аудио файлдарды сәйкесінше нөмірлеу және noteList массивінде сақталатын сандарды сәйкестендіру үшін алып тастаңыз немесе қосыңыз.

Егер жинақтағы 808 жиынтығы дұрыс жұмыс жасаса, бірақ сізде өз үлгілеріңізбен қиындықтар туындаса, шешім PyGame 22, 050 кГц іріктеу жылдамдығына және 16 бит тереңдігіне сәйкес келетін файлдардың үлгі жиілігін өзгерту болуы мүмкін. Мұны Audacity немесе кез келген басқа аудио өңдеуге арналған бағдарлама. Олар сол жерден мінсіз жұмыс істеуі керек!

5 -қадам: Сандық тақтаға сілтеме

Жақсы, секвенсерде мен ойлағандай көп нәрсе болып жатыр, сондықтан мен функционалдылықты жоғарылату үшін Сандық тақтаға біраз жиналдым. Осыны ескере отырып, жұлдызша * және кезең. екеуі де функция пернелері ретінде жұмыс істейді.

СІЛТЕМЕ

НЕГІЗГІ ФУНКЦИЯЛАР

[8] - Metronome қосу және өшіру

[9] - Жазу режимін қосу және өшіру

[Enter] - Ойнату/кідірту ретін

[0] - тізбектегі ағымдағы жазбаны жою

[Num Lock және *] - Өшіру

[MIDI Note және.] - жұп сандарды санамаңыз

ТЕМПО ФУНКЦИЯЛАРЫ

[+] - Курс BPM жылдамдатады

[-] - BPM баяулайтын курс

[+ және *] - BPM жылдамдығын жылдамдату

[- және *] - BPM жылдамдығын баяулатады

[+ және.] - BPM жылдамдығын жақсарту

[- және.] - Fine Slow Down BPM

РЕТТІЛІК ФУНКЦИЯЛАРЫ

[1-6] 1-6 ретін еске түсіру

[1-6 және.] Дүкендердің реттілігі 1-6

[0 және.] Ағымдағы тізбекті тазарту

ҮЛГІ ҚАЛТАЛАРЫН ӨЗГЕРТУ

[1-9 және *]-1-9 қалталардағы үлгі жиынтығына өзгерту

[1-9 және * және.]-10-18 қалталардағы үлгі жиынтығына өзгерту

РЕТТІ КЕҢЕСТЕР:

-[0 және.] Ағымдағы тізбекті тазалаңыз және оны жадтан тазартқыңыз келетін кез келген тізбекте сақтаңыз.

-Ретті еске түсіріп, оны басқа нөмірге көшіру үшін сақтаңыз.

Ұсынылған: