İçindekiler:

Micro Midi Synthesizer: 5 Adım (Resimlerle)
Micro Midi Synthesizer: 5 Adım (Resimlerle)

Video: Micro Midi Synthesizer: 5 Adım (Resimlerle)

Video: Micro Midi Synthesizer: 5 Adım (Resimlerle)
Video: DONNER N-25: portable MIDI keyboard 2024, Temmuz
Anonim
Mikro Midi Sentezleyici
Mikro Midi Sentezleyici
Mikro Midi Sentezleyici
Mikro Midi Sentezleyici
Mikro Midi Sentezleyici
Mikro Midi Sentezleyici

Bu talimat, VLSI VS1053b Audio ve Midi DSP çipinin gerçek zamanlı Midi modunda kullanımını gösterir. Bu modda 64 sesli polifonik GM (General Midi) Midi sentezleyici olarak işlev görür. Arduino Uno bağımsız bir mikro, bir OLED ekranı, üç düğmeyi (Fonksiyon Seçimi ve Yukarı veya Aşağı) kontrol eder ve Midi veri akışını ses DSP'sine iletir. Seçilen müzik kartı Adafruit VS1053 kodek devre kartıydı, ancak bir Sparkfun müzik devre kartı Adafruit VS1053b kitaplıkları çok daha büyük SFEMP3 Kitaplığı yerine kullanıldı (kendi kitaplıklarına sahip olmalarına rağmen Sparkfun tarafından önerilir), çünkü Adafruit kodunu daha kolay anlaşılır buldum.

Ses/midi DSP'yi kontrol etmek için kullanılan kodun çoğu, bir devre tahtası aracılığıyla ses/midi devre kartına bağlı bir Arduino Uno kullanılarak geliştirildi. Fonksiyonların tatmin edici şekilde çalıştığı bulunduktan sonra, Uno bağımsız bir ATmega 328 için programlayıcı olarak kullanıldı ve ardından Midi giriş soketinde (5 pinli bir DIN) gerekli olan 6N139 opto-izolatör IC ile birlikte küçük bir 30x20 boyutlu Veroboard'a yerleştirildi.. Ayrıca küçük (64x48) bir OLED kalkanı, üç düğme, bir Midi etkinlik LED'i ve güç için +5 voltluk bir varil konektörü ve ses stereo çıkış konektörü eklendi. Güç gereksinimleri çok mütevazı - 5 voltta yaklaşık 20 mA.

Adım 1: Parça Listesi

ATmega328 Micro 28 pin DIP + 28 pin DIP soket6N138 veya 6N139 optoizolatör + 4 pin DIP soketWemos 64x48 I2C OLED Ekran veya benzeriAdafruit VS1053b Codec devre kartı3 minyatür buton5 pin DIN Midi soket PCB montajı tercih edilirHerhangi bir renkte Küçük LED. bir amplifikatör veya kulaklık bağlamak için soketDirençler: 7 x 10k, 2 x 470 ohm, 2 x 220 ohmKapasitörler: 0.1uF 50v plastik, 10uf 25v elektrolitik, 2 x 27 pF seramikKüçük Veroboard parçaları (20 sütuna 30 şerit ve 4 şerit) 16 sütun ile), yaklaşık 85x55x25mm ABS plastik muhafaza, kablolama ve birkaç vida somunu ve rondelası.

Adım 2: İnşaat

Yapı
Yapı
Yapı
Yapı
Yapı
Yapı

Muhafazanın kapağı, OLED Ekranı, başka bir küçük Veroboard parçasına monte edilen üç düğmeyi ve namlu güç konektörünü barındırıyor. Ana Vero devre kartı, Müzik devre kartını ATmega328'in üzerine sabitlemek için iki deliğe sahiptir. Bağlantı detayları için lütfen Fritzing şerit levha şemasına bakın.

Programlanmış ATmega328 (lütfen kod için bir sonraki bölüme bakın) daha sonra soketine ve ardından 6N139'a takılır ve her şey bağlanır.

LED, Midi aktivite göstergesi olarak kullanılır ve muhafazanın ön tarafına monte edilmiştir. ATmega328'in D2 çıkışına 470 ohm'luk bir dirençle bağlanır.

OLED Ekran, güç için Adafruit kartının 3,3 volt çıkışını kullanır - 20 mA'dan daha azına ihtiyaç duyar.

Synth'i ilk kullandığınızda herhangi bir ses duymuyorsanız, iki Midi Din bağlantısını değiştirmeyi deneyin.

3. Adım: Yazılım

ATmega328'e yüklenmesi gereken çizimin detayları MidA.ino'da verilmiştir. Yedi işlev mevcuttur:

Seçenek P: Programı Değiştir - GM Midi Enstrümanını Piyano veya Synth sesi gibi 1'den 128'e (0 ila 127 kullandım) değiştirin. Seçenek B: Enstrüman bankasını Melodik (Banka 0) ve Perküsyon (Bank 1) arasında değiştirin. Seçenek V: Sesi 1'den 10'a ayarlayın. Seçenek C: Synth'in yanıt vereceği Midi kanalını değiştirin. Seçenekler: Kanal 0, kanal 1, kanal 9 (perküsyon), kanal 0 ve 9 ve kanal 1 ve 9. Seçenek R: Yankı efektini açar veya kapatır. Seçenek S: Geçerli parametreleri Eeprom belleğine kaydeder (Yukarı) veya Eeprom belleğinden geri okuyun (Aşağı). Bunun nedeni, güç kapatılırken ayarların kaydedilmemesidir. Seçenek X: Tüm notlar kapalı mesajı gönderin (Midi Sıfırlama).

Sekizinci seçenek henüz uygulanmadı - bu ATmega'yı bir Midi filtresi olarak atlayacak ve optoizolatörün çıkışını doğrudan DSP kartının Rx pinine bağlayacaktır.

VS1053b'nin önyükleme sırasında 1039 bayt sıkıştırılmış yama yükleyerek gerçek zamanlı Midi modunda önyükleme yaptığını unutmayın - bu ayrıca Midi arabelleğinin boyutunu artırır ve sisteme özel Midi veri baytlarını filtreler. Bu yamanın ayrıntıları VLSI web sitesinde bulunabilir.

OLED Ekranın 64x48 piksel çözünürlüğünü sağlamak için Adafruit Graphics kitaplığının biraz değiştirilmiş bir versiyonu kullanılmıştı - lütfen sonunda Bay Mducer için verilen bağlantılara bakın. Çizim kodunda gerekli kitaplıkların bir listesi verilmiştir.

Önemli olarak, taslak ATmega328'de bir Uno'da veya bağımsız olarak ilk kez yürütüldüğünde, kodun ATmega328 Eeprom'dan geçerli olmayabilecek parametre ön ayarlarını yükleyecektir. Bu durumda, aşağı tuşu ile X seçeneğini kullanarak Eeprom'a tüm sıfırları yazabilir veya Eeprom ilk başlatıldığında değerleri yükleyen void setup fonksiyonundaki satırı yorumlayabilir, enstrümanlarınızı vs. kendinize göre ayarlayabilirsiniz. beğenin ve ardından S seçeneği Yukarı düğmesiyle ön ayarlarınızı kaydedin.

Kodu ve kütüphaneleri için adı geçen tüm kişi ve kuruluşlara kredi verilir.

4. Adım: Bağlantılar

VLSI:

Adafruit:

Github VS1053b:

Github Grafikleri:

Oled:

Sparkfun:

Adım 5: Sparkfun Board'u Adafruit Kitaplıkları ile Kullanma

Sparkfun Board'u Adafruit Kitaplıklarında Kullanma
Sparkfun Board'u Adafruit Kitaplıklarında Kullanma

Resimdeki tablo, Adafruit veya Sparkfun Müzik Panolarının başka bir kitaplığı kullanmak için nasıl bağlanacağını açıklar.

Önerilen: