Mundarija:

Raspberry Pi baraban mashinasi: 5 qadam
Raspberry Pi baraban mashinasi: 5 qadam

Video: Raspberry Pi baraban mashinasi: 5 qadam

Video: Raspberry Pi baraban mashinasi: 5 qadam
Video: Зелёный брат из эктоэкскрементов ► 2 Прохождение Luigi’s Mansion 3 (Nintendo Switch) 2024, Noyabr
Anonim
Raspberry Pi baraban mashinasi
Raspberry Pi baraban mashinasi

Namuna ketma -ketligi, Raspberry Pi + Python orqali.

Sequencer 4 ta polifoniyaga ega va foydalanuvchiga real vaqtda almashishi mumkin bo'lgan 6 xil ketma -ketlikni saqlash va belgilashga imkon beradi va har xil namunalar o'rtasida o'zgartirish qobiliyatini qo'llab -quvvatlaydi.

Men skriptni har qanday MIDI tekshirgich va tovushlar bilan to'liq ishlaydigan tarzda yozdim. Men 18 xil ovozli banklardan foydalanaman, ularning har biri 16 ta namunadir, lekin banklar va namunalarni qo'shish yoki olib tashlash oson va ko'p o'zgartirishlarni talab qilmaydi. Agar sizda muammo bo'lsa, menga elektron pochta orqali xabar yuboring: [email protected]

Kodni GitHub -da toping:

Iltimos, agar siz undan foydalansangiz, ayniqsa, agar siz u bilan video tayyorlasangiz, menga xabar bering!

1 -qadam: qaramlik

Ushbu dastur uchun quyidagi Python modullari kerak bo'ladi.

mido

o'yin

befarq

Biroq, Mido ba'zi qiyinchiliklarni keltirib chiqaradi, chunki Midoning o'zi bir nechta qaramlikni talab qiladi. Ularning barchasi o'rnatilganligiga ishonch hosil qilish uchun Raspberry Pi terminaliga quyidagi buyruqlarni kiriting ('$' yozilmagan) va hammasi yaxshi bo'ladi. Boshqa modullarni odatdagidek o'rnatish mumkin.

$ sudo apt-get yangilanishi

$ sudo apt-get install-essential o'rnatish

$ sudo apt-get libasound-dev yoki libasound2-dev ni o'rnating

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get python-pip ni o'rnating

$ sudo apt-get install python-dev

$ sudo pip python-rtmidi o'rnating

$ sudo pip o'rnatish mido

2 -qadam: Midi kiritish qiymatlarini sozlash

Midi kiritish qiymatlarini sozlash
Midi kiritish qiymatlarini sozlash

Asosiy Python skriptida noteList deb nomlangan qator mavjud bo'lib, u 16 ta butun sondan iborat (165 -qator). Bu bizning boshqaruvchimiz tovushlarni ishga tushirish uchun Pi -ga yuboradigan MIDI eslatma qiymatlari. Har bir midi tekshirgich boshqacha, lekin agar sizda Akai LPD8 bo'lmasa, siz ushbu qiymatlarni qurilmangizga mos ravishda o'zgartirishingiz kerak bo'ladi.

Github repo -da, shu maqsadda maxsus tayyorlangan "midihelp.py" deb nomlangan boshqa skript ham bor! Bu faqat kompyuter tanigan birinchi MIDI kontrolleridagi kirish qiymatlarini konsolda chop etishdir. Qilishingiz kerak bo'lgan yagona narsa, bu qiymatlar, agar ular noteList -ga kiritilganlardan farq qilsa.

Eslatmalarning tartibi, shuningdek, har bir papkada qanday ovoz effekti ijro etilishi bilan bog'liq, shuning uchun buni ham yodda tuting.

3 -qadam: Namunalar bilan qo'shimcha papkalarni qo'shing

Skript ichidagi namunaviy to'plamlar xuddi shu katalogdagi papkalar orqali saqlanadi, 808 to'plami GitHub fayliga to'liq mos keladi. Shunday qilib, men osongina joylashtirilgan va almashtiriladigan papkalarda saqlanadigan har xil turdagi namunaviy to'plamlarga ega bo'lishim mumkin.

Skriptning o'zida o'zgartirish mumkin bo'lgan yagona narsa bu o'zgaruvchan foldNum bo'lib, u skriptga nechta namunalar papkalari borligini aytadi. Hozirgi vaqtda skriptda bitta katalog mavjud, chunki bitta katalogda faqat bitta pastki papka mavjud (808 to'plami). Hozirgi vaqtda skript boshqarishi mumkin bo'lgan maksimal papkalar - 18, bu men qancha foydalanayapman, lekin bu juda ahamiyatsiz. Buni o'zgartiring, agar sizga yordam kerak bo'lsa, menga xabar bering.

Jildlarning nomlari unchalik ahamiyatga ega emas (hamma boshqacha ekan), chunki skript bir xil katalogdagi papkalar sonini o'qiydi va shu yo'llarni tutadi. Fayllarning nomlari muhim bo'lsa -da, keyingi bosqichda.

4 -qadam: Yangi papkalarga qo'shimcha namunalarni qo'shish va sozlash

Yangi papkalarga qo'shimcha namunalarni qo'shish va sozlash
Yangi papkalarga qo'shimcha namunalarni qo'shish va sozlash

Ovozlar namuna oluvchiga nomlari 0-15 gacha bo'lgan.wav fayllarini o'z ichiga olgan papkalar orqali yuklanadi. Bunga misol uchun kiritilgan 808 papkaga qarang. Namunali har bir ichki papka bir -biriga o'xshash bo'lishi kerak.

NoteList qatoridagi MIDI kirishlar indeksi.wav fayl nomiga to'liq mos keladi.

Masalan:

  • notList [0] da saqlangan MIDI eslatmasini ishga tushirganingizda 0.wav wav fayli o'ynaydi.
  • notList [8] da saqlangan MIDI eslatmasini ishga tushirganingizda 8.wav wav fayli o'ynaydi.

Men buni qisman qildim, shuning uchun har bir MIDI tekshirgichi skript bilan ishlashni oson sozlashi mumkin edi, shuning uchun men namuna va kirish raqamini osonlik bilan uzaytira olaman yoki cheklayman, shuningdek fayllar va skriptni tepish tamburiga joylashtirardim. tovushlar, masalan, har doim 0.wav sifatida saqlanadi va birinchi MIDI eslatmasi bilan ishga tushadi.

Men kontrollerimdagi 16 ta kirishga mos keladigan 16 ta qiymatni o'zboshimchalik bilan tanladim, shuning uchun agar siz faqat bitta namuna yoki undan ko'p namunali sekanser yasashni xohlasangiz, audio fayllarni mos ravishda raqamlash va mos keladigan tarzda noteList qatorida saqlangan raqamlarni olib tashlang yoki qo'shing.

Agar kiritilgan 808 to'plami to'g'ri ishlayotgan bo'lsa, lekin siz o'zingizning namunalaringiz bilan muammolarga duch kelsangiz, yechim fayllarning namuna tezligini PyGame 22, 050khz namuna tezligi va bit chuqurligi 16 ga mos keladigan tarzda o'zgartirishi mumkin. Buni Audacity yoki boshqa audio tahrirlash dasturi. Ular u erdan mukammal ishlashi kerak!

5 -qadam: Raqamli pad ma'lumotnomasi

To'g'ri, men tasavvur qilgandan ko'ra, sekvenerda juda ko'p narsalar sodir bo'layapti, shuning uchun men funksionallikni oshirish uchun raqamli panelga bir oz tiqildim. Buni yodda tuting, yulduzcha * va davr. ikkalasi ham funktsional tugma sifatida ishlaydi.

MASLAHAT

MA'FUNALAR

[8] - Metronomni yoqish va o'chirish

[9] - Yozish rejimini yoqish va o'chirish

[Kirish] - ijro etish/to'xtatib turish ketma -ketligi

[0] - ketma -ketlikdagi joriy eslatmani o'chirish

[Num Lock va *] - O'chiring

[MIDI Eslatmasi va.] - Raqamlar sonini aniqlamang

TEMPO FUNKSIYALARI

[+] - Kurs BPMni tezlashtiradi

[-] - BPMni sekinlashtirish kursi

[+ va *] - BPM tezligini tezlashtirish

[- va *] - BPM tezligini sekinlashtiring

[+ va.] - BPMni tezlashtirish

[- va.] - BPM -ni sekinlashtirish

SIRALI FUNKSIYALAR

[1-6] 1-6 ketma-ketlikni eslang

[1-6 va.] Do'konlar ketma-ketligi 1-6

[0 va.] Joriy ketma -ketlikni tozalash

MASALA Jildlarini O'zgartirish

[1-9 va *]-1-9 papkalardagi namunaviy paketga o'zgartirish

[1-9 va * va.]-10-18 papkalardagi namunaviy paketga o'zgartirish

MASLAHAT MASLAHATLARI:

-Joriy ketma -ketlikni [0 va.] Tozalang va uni xotiradan tozalashni xohlagan ketma -ketlikda saqlang.

-ketma -ketlikni eslang va uni boshqa raqamga nusxalash uchun saqlang.

Tavsiya: