İçindekiler:

Arduino MIDI Chiptune Synthesizer: 7 Adım (Resimlerle)
Arduino MIDI Chiptune Synthesizer: 7 Adım (Resimlerle)

Video: Arduino MIDI Chiptune Synthesizer: 7 Adım (Resimlerle)

Video: Arduino MIDI Chiptune Synthesizer: 7 Adım (Resimlerle)
Video: Arduino MIDI chord player 2024, Kasım
Anonim
Arduino MIDI Chiptune Sentezleyici
Arduino MIDI Chiptune Sentezleyici

MIDI üzerinde herhangi bir modern DAW yazılımının rahatlığından kontrol edebileceğiniz otantik bir 8-bit chiptune sentezleyici ile erken bilgisayar oyunu müziğinin eğlencesini yeniden yaşayın.

Bu basit devre, 1980'lerin sesini yeniden yaratmak için bir AY-3-8910 programlanabilir ses üreteci çipini (veya birçok klonundan birini) sürmek için bir Arduino kullanır. Müziği düzenlemek için özel yazılıma ihtiyaç duyan birçok tasarımın aksine, bu standart bir USB MIDI aygıtına benziyor. Sentezleyici, müzikle en alakalı notaların çalmasını sağlamaya çalışan akıllı bir algoritmaya sahiptir; çoğu durumda, düzenlenmemiş MIDI dosyalarını doğrudan üzerine atabilirsiniz ve melodi hemen çıkar. Toplam maliyet yaklaşık 20 £ olmalıdır.

Adım 1: İhtiyacınız Olan Şeyler

İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler

Bunun için tam parça listesi, resimlerde gördüğünüz gibi:

  • Sparkfun Pro Mikro klon (5V, 16MHz seçeneği). Bunu Amazon'da kullandım.
  • Yamaha YM2149F PSG çipi. Benimkini eBay'den aldım.
  • 2 x 100nF seramik kapasitör
  • 1 adet 75R, 1K ve 100K direnç (1/4 watt değeri iyidir).
  • 4.7nF seramik disk kapasitör
  • 1uF elektrolitik kapasitör (voltaj derecesi > 5V).
  • 40 pinli 0.6" DIP IC soketi
  • 2 x 12 yollu 0,1" başlık (bu, TBM'den)
  • Prototipleme panosu, 3" x 2" yakl. Yine Amazon'da bunlardan toplu bir paket aldım.
  • PCB montajlı fono soketi
  • Minyatür katı çekirdekli tel (bunun gibi).

Ayrıca bir havya, lehim, tel kesiciler, pense ve tel sıyırıcıya ihtiyacınız olacak.

2. Adım: Alternatif Parçalar

Alternatif Parçalar
Alternatif Parçalar
Alternatif Parçalar
Alternatif Parçalar
Alternatif Parçalar
Alternatif Parçalar

Alternatif programlanabilir ses üreteci çipleri

Kullandığım YM2149, orijinal General Instruments AY-3-8910 IC'nin bir klonudur. (İlk prototip, eBay'den aldığım bir AY-3-8910'u kullanıyordu, ancak beyaz gürültü üretecinin çalışmadığı ortaya çıktı. Üzgün surat). Bu proje için herhangi bir değişiklik yapmadan kullanabilirsiniz.

General Instruments ayrıca daha küçük paketlerde aynı silikon olan AY-3-8912 ve AY-3-8913 varyantlarını bazı ekstra I/O pinleri olmadan yaptı. Bu pinler herhangi bir ses amacı için gerekli değildir ve bu proje bunları kullanmamaktadır. Bir AY-3-8912 veya -8913 kullanabilirsiniz, sadece yukarıda gösterilen pinleri takip edin.

Alternatif Arduino'lar

Kullandığım "Pro Micro", Sparkfun'un Pro Micro kartının bir kopyası. Arduino kodundan emin değilseniz, buna bağlı kalmak en iyisidir; tasarımı uyarlamaktan memnunsanız, aşağıdaki özelliklere ihtiyacınız olacak

  • ATmega 16u4 veya 32u4 cihazı (USB MIDI cihazı olarak hareket etmesi gerekir; ATmega 168 veya 328 bunu yapamaz).
  • 5V çalışma (AY-3-8910 5V'de çalışır) ve 16MHz saat hızı.
  • En az 13 dijital G/Ç hattı.

    Port pini PB5 bağlanmalıdır (1MHz saat sinyali üretmek için kullanılır). Pro Micro'da bu, D9 I/O pini olarak kullanılır

Arduino Leonardo ve Micro panoları, denememiş olmama rağmen, tasarıya uyuyor.

Diğer bileşenler

Burada kullanılan dirençler ve kapasitörler özellikle özel değildir. Doğru değerin (yaklaşık olarak) herhangi bir kısmı çalışmalıdır.

Adım 3: Devre Kartının Yerleştirilmesi

Devre Kartının Yerleştirilmesi
Devre Kartının Yerleştirilmesi

Devreyi kurmak için, soketleri konumlandırarak başlamak, ardından dirençleri ve kapasitörleri eklemek en iyisidir. Bunları bir sonraki adımda birlikte ele alacağız.

Yukarıdaki resmi kılavuz olarak kullanarak, 40 pinli IC soketini konumlandırın, kartı ters çevirin ve önce iki zıt köşe pimine lehimleyin. Soket panoya yaslanmıyorsa, bir veya diğer pimi yeniden lehimleyerek düzeltmek kolaydır. Tamam olduğunda, gerisini lehimleyin.

İki adet 12 pimli soketi konumlandırın, ardından lehimleme sırasında dikey ve sabit tutmak için Arduino'yu bunlara takın. Yine, önce her iki uçta iki pimin lehimlenmesi, son lehimlemeden önce bir kontrole izin verecektir.

Ses çıkış soketi için, montaj etiketleri oldukça büyük olduğu için PCB deliklerini büyütmek için küçük bir matkap kullandım.

Adım 4: Kablolama

Kablolama
Kablolama
Kablolama
Kablolama

Ana bileşenler yerleştirildikten sonra, yukarıdaki devre izlenerek kartın arkasına bağlanabilirler.

Ses çıkış bileşenleri (R2, R3, C2, C3) ve dekuplaj kapasitörleri (C1, C4) tek damarlı kabloyla (veya bileşen kablolarının kesikleri) bağlanabilir. Arduino'dan PSG çipine (resimdeki kırmızı ve siyah teller) toprak ve güç bağlantıları artık yapılabilir.

Pro Micro'nun çeşitli çıkışları AY-3-8910'a aşağıdaki şekilde bağlanır (pin atamaları için bağlantı kılavuzuna bakın):

Sinyal Arduino AY-3-8910 pini

DA0 D2 37 DA1 D3 36 DA2 D4 35 DA3 D5 34 DA4 D6 33 DA5 D7 32 DA6 D8 31 DA7 A0/D18 30 BC1 D10 29 BC2 MOSI/D16 28 BDIR MISO/D14 27 RESET# SCLK/D15 23 CLOCK D9 22 (ile R1, 75 ohm)

Adım 5: Arduino IDE Kullanarak Programlama

Arduino IDE Kullanarak Programlama
Arduino IDE Kullanarak Programlama

Arduino'da yeniyseniz, temel bilgilerle ilgili birçok öğreticiden birini denemenizi şiddetle tavsiye ederim. Sparkfun'un bağlantı kılavuzu tüm ayrıntıları verir. "Blinkies" öğreticisini izleyerek temel programlamanın çalışıp çalışmadığını kontrol edebilirsiniz. Arduino'ları 'önyükleyici' moduna (yeni çizimler yükleyebileceğiniz) ikna etmek biraz zor olabilir, bu nedenle basit bir örnekle biraz pratik yapmak yararlıdır.

Mutlu olduğunuzda, bu sayfaya ekli chiptunes.ino dosyasını indirin ve oluşturun ve yükleyin. (Sparkfun kart desteğini yüklemeyi atlamak istiyorsanız, bu çizim için "Arduino/Genuino Micro" kart tipini kullanmanın uygun olduğunu buldum).

Ayrıca, bir Mac kullanıyorsanız, çizimi ilk kez yükledikten sonra "Bağlantı Noktası" ayarının değiştirilmesi gerektiğini unutmayın. 'Boş' bir Arduino ile (veya Blinky çizimini kullanarak), yukarıdaki resimde gösterildiği gibi /dev/cu.usbmodemXXXX gibi bir şey olarak görünecektir. USB MIDI aygıtı etkin olduğunda (chiptunes.ino çiziminde kullanıldığı gibi) /dev/cu.usbmodemMID1 olacaktır.

Adım 6: Synth'i Test Etme ve Kullanma

Synth'i Test Etme ve Kullanma
Synth'i Test Etme ve Kullanma
Synth'i Test Etme ve Kullanma
Synth'i Test Etme ve Kullanma
Synth'i Test Etme ve Kullanma
Synth'i Test Etme ve Kullanma

Arduino programlandığında, iş istasyonunuz onu otomatik olarak bir USB MIDI cihazı olarak tanıyacaktır. 'Arduino Micro' adıyla görünecektir - bunu Windows'ta Aygıt Yöneticisi'nde veya Mac OS'de "Sistem Bilgisi" uygulamasında görebilmeniz gerekir.

Mac'te, temel bir testi çalıştırmak için Audio MIDI Setup uygulamasını kullanabilirsiniz. Uygulamayı başlatın, ardından Pencere -> MIDI Studio'yu Göster'i seçin. Bu, MIDI Studio penceresini açacaktır - tüm MIDI arayüzleriniz biraz rastgele bir düzende görünecektir - umarım 'Arduino Micro' cihazını içerecektir. Araç çubuğundaki 'Test Setup' simgesine ve ardından Arduino Micro cihazındaki aşağı oka (resme bakın) tıklarsanız, uygulama synth'e MIDI notları gönderecektir. (Bunlar özellikle melodili değil!) Synth bu noktada bazı rastgele sesler çıkarmalıdır.

Ardından, Dijital Ses İş İstasyonunuzun MIDI kurulumuna bir çıkış aygıtı olarak 'Arduino Micro' ekleyebilir ve çalmaya başlayabilirsiniz!

  • Synth, 1 ila 4 MIDI kanallarına yanıt verir. Her kanalın farklı bir sesi vardır (yani, farklı bir ses zarfı).
  • 24 ile 96 (C1-C7) arasındaki MIDI notları kabul edilir; bu aralığın dışındaki notlar yoksayılır.
  • MIDI kanal 10 davul seslerini çalar. 35 ile 50 arasındaki sayıları not edin (bkz.

    www.midi.org/specations-old/item/gm-level-1-sound-set) kabul edilir.

  • AY-3-8910'da üç adet ses kanalı bulunmaktadır. Synth üretici yazılımı, en son gönderilen notayı çalmaya çalışırken, o anda istenen en yüksek ve en düşük notaları çalmaya devam eder. Diğer notalar (genellikle bir akorun orta notaları) gerekirse kesilir.

Ve bununla ilgili. İyi eğlenceler!

7. Adım: Dipnotlar

Demo melodi hakkında

Demo melodi - Mozart'ın ünlü Gecenin Kraliçesi aryası - İnternette bulduğum bir MIDI dosyasından oldukça hızlı bir şekilde oluşturuldu (https://www.midiworld.com/mozart.htm). Bütün zor işleri başka biri yaptı!

Mac'te Presonus Studio One kullanıyorum ve MIDI dosyası dört ayrı parçaya aktarıldı. Eşlik notalarının ana melodiden daha yüksek olduğu durumlarda ve notalar arasındaki daha sakıncalı bazı aksaklıkları gidermek için küçük bir miktar düzenleme gerekliydi.

Klipte duyduğunuz ses doğrudan synth'den geliyor, sadece bir EQ dokunuşu ve doygunluk ile biraz 'arcade makinesi' düşük-fi hissi veriyor.

Önerilen: