İçindekiler:

Raspberry Pi Davul Makinesi: 5 Adım
Raspberry Pi Davul Makinesi: 5 Adım

Video: Raspberry Pi Davul Makinesi: 5 Adım

Video: Raspberry Pi Davul Makinesi: 5 Adım
Video: Timelapse Final Fantasy Gunblade Printed on a CR-30 2024, Kasım
Anonim
Ahududu Pi Davul Makinesi
Ahududu Pi Davul Makinesi

Raspberry Pi + Python aracılığıyla Örnek Sıralayıcı.

Sıralayıcı 4 polifoniye sahiptir ve kullanıcının gerçek zamanlı olarak değiştirebilecekleri 6 farklı diziyi saklamasına ve sıraya koymasına izin verir ve farklı örnekler arasında geçiş yapma yeteneğini destekler.

Senaryoyu, gerçekten herhangi bir MIDI denetleyicisi ve sesiyle tamamen çalışabilecek şekilde yazdım. Her biri 16 örnek olmak üzere 18 farklı ses bankası kullanıyorum, ancak bankaları ve örnekleri eklemek veya çıkarmak kolaydır ve çok fazla değişiklik gerektirmez. Herhangi bir sorun yaşarsanız bana bir e-posta gönderin: [email protected]

Kodu GitHub'da şu adreste bulun:

Lütfen kullanırsanız ve özellikle onunla bir video çekerseniz bana bildirin!

1. Adım: Bağımlılıklar

Bu program aşağıdaki (yerleşik olmayan) Python Modüllerini gerektirir:

orta

pygame

dizi

Bununla birlikte, Mido'nun kendisi birkaç bağımlılık gerektirdiğinden Mido bazı komplikasyonlara neden olur. Hepsinin kurulu olduğundan emin olmak için, Raspberry Pi'nizin terminaline aşağıdaki komutları yazın ('$' atlayarak) ve her şey yoluna girecek. Diğer modüller normal olarak kurulabilir.

$ sudo apt-get güncellemesi

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev veya libasound2-dev

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get install python-pip

$ sudo apt-get install python-dev

$ sudo pip kurulumu python-rtmidi

$ sudo pip yükleme mido

Adım 2: Midi Giriş Değerlerini Yapılandırın

Midi Giriş Değerlerini Yapılandırın
Midi Giriş Değerlerini Yapılandırın

Ana Python Komut Dosyası içinde, 16 tam sayıdan (satır 165) oluşan noteList adlı bir dizi vardır. Bunlar, sesleri tetiklemek için denetleyicimizin Pi'ye gönderdiği MIDI nota değerleridir. Yine de her midi denetleyici farklıdır, bu nedenle bir Akai LPD8'iniz yoksa büyük olasılıkla bu değerleri cihazınıza uyacak şekilde değiştirmeniz gerekecektir.

Github deposu ayrıca, bu amaç için özel olarak yapılmış "midihelp.py" adlı başka bir komut dosyası içerir! Tek yaptığı, bilgisayarın tanıdığı ilk MIDI denetleyicisinden giriş değerlerini konsola yazdırmak. Tek yapmanız gereken, noteList'te bulunanlardan farklıysa, dizideki bu değerleri değiştirmek.

Notların sırası, klasör başına hangi ses efektinin çalındığıyla da ilişkilidir, bu yüzden bunu da aklınızda bulundurun.

3. Adım: Örneklerle Ek Klasörler Ekleyin

Komut dosyası içindeki örnek kitler, aynı dizindeki klasörler aracılığıyla saklanır ve 808 kitinin GitHub dosyası içinde tam olarak nasıl olduğunu ayarlar. Bu şekilde, kolayca düzenlenebilen ve değiştirilebilen klasörlerde saklanan her türden farklı numune setine sahip olabilirim.

Komut dosyasının kendisinde değiştirilecek tek şey, komut dosyasına kaç tane örnek klasörü olduğunu söyleyen katlama değişkenidir. Aynı dizinde (808 kiti) yalnızca bir alt klasör olduğundan, şu anda komut dosyası foldNum'a ayarlanmıştır. Komut dosyasının şu anda işleyebileceği maksimum klasör sayısı 18'dir, bu benim kullandığım klasör sayısıdır, ancak bu oldukça önemsizdir. bunu değiştir, yardıma ihtiyacın olursa bana haber ver.

Klasörlerin adları gerçekten önemli değil (hepsi farklı olduğu sürece) çünkü Komut Dosyası aynı dizindeki klasör miktarını okur ve yolları bu şekilde alır. Dosyaların isimleri önemlidir, ancak bir sonraki adımda bunun hakkında daha fazla bilgi verilecektir.

4. Adım: Yeni Klasörler İçinde Ek Örnekler Ekleyin ve Yapılandırın

Yeni Klasörler İçinde Ek Örnekler Ekleyin ve Yapılandırın
Yeni Klasörler İçinde Ek Örnekler Ekleyin ve Yapılandırın

Sesler, 0-15 arasında numaralandırılmış.wav dosyalarını içeren aynı dizindeki klasörler aracılığıyla örnekleyiciye yüklenir. Bunun bir örneği için dahil edilen 808 klasörüne bakın. Örnek içeren HER alt klasör birbiriyle aynı görünmelidir.

noteList dizisindeki MIDI girişlerinin dizini, tam olarak.wav dosya adına karşılık gelir.

Örneğin:

  • noteList[0] içinde saklanan MIDI notasını tetiklediğinizde wav dosyası 0.wav çalacaktır.
  • noteList[8] içinde saklanan MIDI notasını tetiklediğinizde, 8.wav wav dosyası çalacaktır.

Bunu kısmen, her bir MIDI denetleyicisinin komut dosyasıyla çalışmak üzere kolayca ayarlanabilmesi için ve ayrıca örnek ve giriş numarasını kolayca genişletip sınırlandırabilmem ve ayrıca dosyaları ve komut dosyasını, kick davulu yapacak şekilde organize edebilmem için yaptım. örneğin, sesler her zaman 0.wav olarak kaydedilir ve ilk MIDI notası tarafından tetiklenir.

Kontrol cihazımdaki 16 girişe karşılık gelmesi için biraz keyfi olarak 16 değer seçtim, bu nedenle yalnızca 1 örnekle veya daha fazlasıyla bir sıralayıcı yapmayı tercih ederseniz, tek yapmanız gereken ses dosyalarını buna göre numaralandırmak ve eşleştirmek için noteList dizisinde saklanan sayıları çıkarın veya ekleyin.

Dahil edilen 808 kiti düzgün çalışıyorsa ancak kendi örneklerinizle ilgili sorun yaşıyorsanız, çözüm büyük olasılıkla dosyaların örnekleme hızını PyGame'in 22,050khz örnekleme hızına ve 16 bit derinliğine uyacak şekilde değiştirmek olacaktır. Bunu Audacity'de veya diğer herhangi bir Ses düzenleme yazılımı. Oradan mükemmel çalışmalılar!

Adım 5: Sayısal Tuş Referansı

Tamam, sıralayıcının içinde, başlangıçta düşündüğümden daha çok şey oluyor, bu yüzden artan işlevselliğe uyması için Sayısal Tuş Takımına biraz sıkıştırdım. Bu akılda, Yıldız * ve Dönem. ikisi de fonksiyon tuşları olarak çalışır.

REFERANS

ANA FONKSİYONLAR

[8] - Metronomu aç ve kapat

[9] - Kayıt Modunu aç/kapat

[Enter] - Oynat/Duraklat dizisi

[0] - Sıradaki Geçerli Notu Sil

[Num Lock ve *] - Kapat

[MIDI Notu ve.] - Çift sayılara kuantize etmeyin

TEMPO FONKSİYONLARI

[+] - Kurs Hızlandırma BPM'si

[-] - Seyir Yavaşlatma BPM'si

[+ ve *] - BPM'yi Hızla Hızlandırın

[- ve *] - BPM'yi Hızla Yavaşlatın

[+ ve.] - İyi Hızlandırılmış BPM

[- ve.] - Hassas Yavaşlatma BPM'si

SIRA FONKSİYONLARI

[1-6] Geri Çağırma Sırası 1-6

[1-6 ve.] Sıra 1-6'yı Sakla

[0 ve.] Geçerli Sırayı Temizle

ÖRNEK KLASÖRLERİ DEĞİŞTİRME

[1-9 ve *] - 1-9 Klasörlerinde Numune Paketinde Değişiklik

[1-9 ve * ve.] - 10-18 Klasörlerinde Numune Paketinde Değişiklik

SIRA İPUÇLARI:

-Geçerli diziyi [0 ve.] temizleyin ve bellekten silinmesini istediğiniz dizilere kaydedin.

-Bir diziyi geri çağırın ve kopyalamak için farklı bir numaraya kaydedin.

Önerilen: