Агуулгын хүснэгт:

Raspberry Pi хүрд машин: 5 алхам
Raspberry Pi хүрд машин: 5 алхам

Видео: Raspberry Pi хүрд машин: 5 алхам

Видео: Raspberry Pi хүрд машин: 5 алхам
Видео: SKR 1.4 - Definitive User Guide 2024, Арванхоёрдугаар сар
Anonim
Raspberry Pi хүрд машин
Raspberry Pi хүрд машин

Raspberry Pi + Python -ээр дамжуулан дээжийн дараалал.

Sequencer нь 4 полифонтой бөгөөд хэрэглэгчид бодит цаг хугацаанд сольж болох 6 өөр дарааллыг хадгалах, мэдээлэх боломжийг олгодог бөгөөд өөр өөр дээжийг хооронд нь солих чадварыг дэмждэг.

Би скриптийг үнэхээр ямар ч MIDI хянагч, дуу чимээтэй ажиллах боломжтой байдлаар бичсэн. Би 18 өөр дууны банк, тус бүр 16 дээж ашигладаг боловч банк, дээж нэмэх, хасах нь хялбар бөгөөд тийм ч их өөрчлөлт шаарддаггүй. Хэрэв танд ямар нэгэн асуудал гарвал над руу имэйл бичээрэй: [email protected]

GitHub дээрээс кодыг хайж олох:

Хэрэв та үүнийг ашиглаж байгаа бол надад мэдэгдээрэй, ялангуяа хэрэв та үүнийг ашиглан видео хийвэл!

Алхам 1: Хамаарал

Энэ програм нь дараах (суулгаагүй) Python модулиудыг шаарддаг.

дунд

тоглоом

намуухан

Гэсэн хэдий ч Мидо өөрөө хэд хэдэн хараат байдлыг шаарддаг тул Мидо зарим хүндрэл учруулдаг. Тэд бүгд суулгасан эсэхийг шалгахын тулд Raspberry Pi -ийнхээ терминалд дараах тушаалуудыг оруулна уу ('$' -г хассан), тэгвэл бүх зүйл сайхан болно. Бусад модулийг ердийн байдлаар суулгаж болно.

$ sudo apt-get шинэчлэлт

$ sudo apt-get install build

$ sudo apt-get libasound-dev эсвэл libasound2-dev суулгана уу

$ sudo apt-get libjack0 суулгаарай

$ sudo apt-get libjack-dev суулгана уу

$ sudo apt-get python-pip суулгана уу

$ sudo apt-get суулгах python-dev

$ sudo pip python-rtmidi суулгаарай

$ sudo pip суулгах mido

Алхам 2: Midi оролтын утгыг тохируулах

Midi оролтын утгыг тохируулах
Midi оролтын утгыг тохируулах

Үндсэн Python скрипт дотор 16 бүхэл тооноос бүрдсэн noteList нэртэй массив байдаг (мөр 165.) Эдгээр нь манай хянагчийн дууг өдөөхийн тулд Pi руу илгээдэг MIDI тэмдэглэлийн утгууд юм. Midi хянагч бүр өөр өөр байдаг, тиймээс хэрэв танд Akai LPD8 байхгүй бол эдгээр утгыг төхөөрөмжтэйгээ тохируулан өөрчлөх шаардлагатай болно.

Github репо нь энэ зорилгоор тусгайлан бүтээсэн "midihelp.py" нэртэй өөр скриптийг агуулдаг. Үүнийг хийдэг зүйл бол компьютер хүлээн зөвшөөрсөн анхны MIDI хянагчийн оролтын утгыг консол руу хэвлэх явдал юм. Таны хийх ёстой зүйл бол эдгээр утгыг noteList -д багтсан утгаас өөр байвал массиваар солих явдал юм.

Тэмдэглэлийн дараалал нь хавтас бүрт ямар дууны эффект тоглуулахтай холбоотой байдаг тул үүнийг санаарай.

Алхам 3: Дээжтэй нэмэлт хавтас нэмнэ үү

Скрипт дэх дээжийн иж бүрдлийг нэг директор дахь фолдеруудаар хадгалдаг бөгөөд GitHub файл дотор 808 иж бүрдэл яг яг тохирдог. Ингэснээр би бүх төрлийн дээжийн багцыг хавтас дотор хадгалж, хялбархан сольж болно.

Скриптийг өөрчлөх цорын ганц зүйл бол 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: Number Pad Reference

За, дараалал үүсгэгч дотор миний санаж байснаас илүү олон зүйл болж байна, тиймээс би илүү сайн функцтэй тааруулахын тулд Number Pad дээр жаахан бөглөрөв. Үүнийг санаж, Одоор * ба үе. хоёулаа функциональ товчлуур хэлбэрээр ажилладаг.

АШИГЛАЛ

ҮНДСЭН ҮЙЛ АЖИЛЛАГАА

[8] - Metronome -ийг асаах, унтраах

[9] - Бичлэгийн горимыг асаах, унтраах

[Оруулах] - Тоглуулах/түр зогсоох дараалал

[0] - Одоогийн тэмдэглэлийг дарааллаар устгах

[Num Lock ба *] - Унтраах

[MIDI Тэмдэглэл ба.] - Тоог тэгш тоогоор бүү гарга

TEMPO -ийн чиг үүрэг

[+] - Курс BPM -ийг хурдасгах

[-] - BPM -ийг удаашруулах курс

[+ ба *] - BPM -ийг хурдан хурдасгах

[- ба *] - BPM -ийг хурдан удаашруулна

[+ ба.] - BPM -ийг нарийн хурдасгах

[- ба.] - FP Slow Down BPM

Дарааллын чиг үүрэг

[1-6] 1-6 дарааллыг эргэн санах

[1-6 ба.] Дэлгүүрийн дараалал 1-6

[0 ба.] Одоогийн дарааллыг арилгах

ЖИШЭЭ ФОЛДЕРУУД ӨӨРЧЛӨХ

[1-9 ба *]-1-9 фолдер дахь дээжийн багц болгон өөрчлөх

[1-9 ба * ба.]-10-18 фолдер дахь дээжийн багц болгон өөрчлөх

Дарааллын зөвлөмжүүд:

-Одоогийн [0 ба.] Дарааллыг цэвэрлээд санах ойдоос устгахыг хүссэн дарааллаар хадгална уу.

-Дэс дарааллыг эргэн санан өөр дугаар руу хадгалж хуулна.

Зөвлөмж болгож буй: