Мазмуну:

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

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

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

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

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

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

GitHubдан кодду табыңыз:

Сураныч, эгер сиз аны колдонсоңуз, айрыкча, эгер сиз аны менен видео жасасаңыз, мага кабарлаңыз!

1 -кадам: көз карандылыктар

Бул программа төмөнкүлөрдү талап кылат (орнотулбаган) Python модулдары:

mido

оюн

numpy

Бирок, Мидо кээ бир кыйынчылыктарды жаратат, анткени Мидонун өзү бир нече көз карандылыкты талап кылат. Алардын бардыгы орнотулганына ынануу үчүн, Raspberry Pi терминалына төмөнкү буйруктарды териңиз ('$' калтырып) жана баары жакшы болот. Башка модулдар кадимкидей эле орнотулушу мүмкүн.

$ sudo apt-get update

$ sudo apt-get install-essential орнотуу

$ sudo apt-get libasound-dev же libasound2-dev орнотуу

$ sudo apt-get libjack0 орнотуу

$ sudo apt-get libjack-dev орнотуу

$ sudo apt-get python-pip орнотуу

$ sudo apt-get install python-dev

$ sudo pip python-rtmidi орнотуу

$ sudo pip mido орнотуу

2 -кадам: Midi киргизүү баалуулуктарын конфигурациялоо

Midi киргизүү баалуулуктарын конфигурациялоо
Midi киргизүү баалуулуктарын конфигурациялоо

Негизги Python Scriptтин ичинде 16 бүтүн сандан турган noteList деп аталган массив бар (165 -сап.) Бул биздин контролерибиз үндөрдү иштетүү үчүн Пи -ге жөнөткөн 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, 050khz ылдамдык ылдамдыгына жана 16 бит тереңдигине дал келиши мүмкүн. Сиз муну Audacity же башка аудио түзөтүү программасы. Алар ошол жерден кемчиликсиз иштеши керек!

5 -кадам: Number Pad Reference

Ок Муну эске алып, жылдызча * жана мезгил. экөө тең функционалдык баскыч катары иштейт.

АДАБИЯТ

MAINFUNCTIONS

[8] - Метрономду күйгүзүү жана өчүрүү

[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 жана.] Тазалап, эсиңизден чыгарууну каалаган тизмектерге сактаңыз.

-Катарды эстеп, аны көчүрүү үчүн башка номерге сактаңыз.

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