İçindekiler:

Arduino Multi-track MIDI Döngü İstasyonu: 6 Adım
Arduino Multi-track MIDI Döngü İstasyonu: 6 Adım

Video: Arduino Multi-track MIDI Döngü İstasyonu: 6 Adım

Video: Arduino Multi-track MIDI Döngü İstasyonu: 6 Adım
Video: diamond tema ifşa oluyor 2024, Temmuz
Anonim
Arduino Çok İzli MIDI Döngü İstasyonu
Arduino Çok İzli MIDI Döngü İstasyonu
Arduino Çok İzli MIDI Döngü İstasyonu
Arduino Çok İzli MIDI Döngü İstasyonu
Arduino Çok İzli MIDI Döngü İstasyonu
Arduino Çok İzli MIDI Döngü İstasyonu

Bir döngü istasyonu veya bir döngüleyici, esasen enstrümantal rifflerinizi (döngüler) gerçek zamanlı olarak oynatmak için bir araçtır. Bir kayıt ortamı olarak değil, ilhamı dikkati dağıtmadan şekillendirmek için bir araç olarak tasarlandı (ve sonunda canlı performans sergiliyor…).

Hem özel donanım (hemen hemen her gitar pedalı üreticisinin kendi ürünü vardır) hem de bilgisayar yazılımı (en bilinenlerinden alıntı yapmak için mükemmel Linux Sooper Looper veya Windows Mobius) biçiminde çok sayıda ses kayıt döngüsü istasyonu vardır. Kendin-yap işitsel olmayan ancak MIDI döngüleyicileri hakkında sadece birkaç proje bulabildim, yani MIDI olaylarını kaydetmek ve onları hemen bir döngüde oynatmak için bir araç; bu projelerin çoğu (hepsi diyebilirim) ya terk edildi ya da kayboldu… işte burada herkes için eksiksiz bir proje ile karşınızdayız!

Bu Arduino MIDI döngü istasyonu, basitçe gelen MIDI olaylarını takip eder ve onları tekrar oynatır. Tek yapmanız gereken kayıt pedalına basmak, şimdiye kadarki en iyi riffinizi yaratmak ve tekrar pedala basarak kaydı durdurmak. süper kolay:)

Bu proje, bulunması kolay açık donanıma (Arduino DUE), yazılıma (kendi ürün yazılımım ve Arduino IDE) dayanmaktadır ve tercihlerinizi yansıtacak şekilde özelleştirilebilir.

Haydi Yapalım şunu!

Not: evet, süper ucuz!

Adım 1: Limitler

Proje için donanım parçalarını almaya başlamadan önce, sınırlarının ne olduğunu söyleyeyim, böylece ilerlemeye veya burada durmaya karar verebilirsiniz.

- donanım sınırlamaları nedeniyle (esas olarak Aduino DUE belleği), kaydedebileceğiniz varsayılan maksimum ifade uzunluğu 46 saniye ile sınırlıdır.

- döngüler kapatıldıktan sonra saklanamaz ve oynatılamaz. Yine de onları bir PC'ye gönderebilir ve kaydedebilirsiniz.

- nota kuantizasyonu yok.

- MIDI saati desteklenir, ancak şu anda bir ön aşamadadır.

- Kaydedilen MIDI mesajları nota açık, nota kapalı, kontrol değişiklikleri ve perde bükmedir; dokunma sonrası, program değişikliği, SysEx vb. gibi diğer MIDI mesajları dikkate alınmaz.

- max polifoni varsayılan olarak 10'a ayarlanmıştır (yine Aduino DUE bellek limitleri).

Artı tarafta, her biri kendi kanalında ileten birden fazla farklı enstrümandan MIDI akışları desteklenir; bu, birden fazla MIDI enstrümanını aynı anda, katmanlı veya kendi parçalarıyla kaydedebileceğiniz anlamına gelir (bir sonraki adımda daha fazla profesyonel;)).

Bu sınırlamalarla yaşamak makul görünüyorsa (ki benim için de öyle), bu şeyle çok iyi vakit geçireceksiniz;)

Adım 2: Nasıl Çalışır?

Buradaki MIDI döngü istasyonunun çalıştırılması çok basittir. Her gitar pedalı üreticisinin kendi kataloğunda bulunan donanım ses döngü istasyonlarına benzer şekilde çalışır.

1) MIDI dizinizi kaydetmek istediğiniz parçayı seçin. Varsayılan olarak parça "bir" seçilir, ancak parça düğmelerinden birine (her parça için bir tane) basarak bunu değiştirebilirsiniz.

2) "REC" anahtarına/ayak pedalına ilk kez bastığınızda, ilmek yapıcı devreye girer. Yeşil LED yanar. Gerçek diziyi/riff'i kaydetmeye başlamadan önce ilk notunuzun alınmasını bekleyecektir.

3) Sekansınızı bitirdiğinizde, riff'in gerçek uzunluğunu belirlemek için "REC" anahtarına/ayak pedalına tekrar basın. Yeşil LED yanar. Lüper, MIDI dizinizi hemen yeniden üretmeye başlayacaktır. Maksimum süreye ulaşırsanız, kayıt otomatik olarak duracak ve dizi bir döngüde yeniden üretilmeye başlayacaktır.

4) Şimdi, "REC" anahtarına/ayak pedalına basarak mevcut parçadaki sekansınızı overdub etmeye veya yeni bir parça seçip üzerine kayıt yapmaya karar verebilirsiniz. Her iki durumda da, yeni iz boş olsa bile sarı LED yanacaktır, çünkü bu bir "bağımlı" izdir (kaydedilen ilk ize bağımlıdır). Fazla kopyalamayı durdurmak için tekrar basın (sarı LED söner).

Ses döngü istasyonları ile rahat olanlarınız için, bu MIDI ilerlemesi "REC/PLAY/OVERDUB" olarak adlandırılır ve desteklenen tek şeydir.

Herhangi bir zamanda en son overdub'unuzun uygun olmadığını düşünüyorsanız, "geri al" anahtarına/ayak pedalına basarak silebilirsiniz. "REC" pedalını 3 saniyeden fazla basılı tutarak mevcut parçanın tamamını silebilirsiniz; İlk üç parça düğmesine aynı anda basarak veya kullanılan tüm parçaları silerek looper'ı (yazılım sıfırlama) sıfırlayabilirsiniz.

Geçerli parçanın parça düğmesine basarak bir parçanın sesini kapatabilir/açabilirsiniz.

PANİK gönderebilirsiniz! panik butonuna basarak mesaj atın. Hatta bir PANİK gönderebilirsiniz! aynı anda ilk iki parça düğmesine basarak mesaj.

Lüper'de yerleşik bir basit metronom vardır: "64" nota numarası için MIDI mesajı üzerine bir not, kanal 10'da (muhtemelen davul makinenizi dinlettiğiniz kanal) 100 BPM'de gönderilir. Optik kodlayıcıyı çevirerek tempoyu artırabilir veya azaltabilirsiniz; optik kodlayıcı anahtarına basarak metronomu etkinleştirebilir/devre dışı bırakabilirsiniz. MIDI nota "64" alırken bateri makinenizin bir ses (trampet, bas veya tercih ettiğiniz herhangi bir ses) çalacak şekilde ayarlanması gerektiğine dikkat edin, aksi takdirde metronom sessiz olacaktır.

Bu MIDI loopstation'ın barebone versiyonu, kaydı başlatmak ve durdurmak için tek bir ayak anahtarı ile oluşturulabilir. Anahtarı 3 saniyeden fazla basılı tutmak, döngü istasyonunu yeniden başlatacaktır.

Donanımı geliştirmeye biraz daha zaman ayırmak istiyorsanız, anahtarlar ve düğmeler eklemek döngü istasyonunu daha esnek hale getirecektir. Resimde dört parçamı (beşe kadar desteklenir) tam özellikli döngü istasyonumu nasıl yapılandırdım.

ÖNEMLİ NOT: Resimlerimdeki donanım bir prototiptir. Gerekenden daha fazla jak soketi kullandım ancak parçalar için yalnızca dört düğme kullandım. Bunun nedeni, projeye başladığımda nihai gereksinimlerin ne olacağından tam olarak emin değildim.

Düğmeler ve ayak pedalları elektronik olarak eşdeğerdir ve birini diğerinin yerine kullanabilirsiniz; ihtiyaçlarım için, her zaman çok az yer olduğu için (lanet güzel efekt pedalları;))), ayak pedallarını tek REC işleviyle sınırlandırdım.

3. Adım: Donanım

Donanım
Donanım
Donanım
Donanım
Donanım
Donanım
Donanım
Donanım

Malzeme listesi:

Tam özellikli 5 kanallı MIDI döngü istasyonu

1x Arduino ÖDÜLÜ

7x anlık butonlar

1 adet plastik kasa (150 x 110 x 70 mm kasa kullandım)

2x 5-pin DIN dişi panel montajlı MIDI soket konnektörü

1x 6,3 mm panel montajlı jak soketi

1x çift taraflı 50x70 mm perf levha

5x 3 mm LED (yeşil)

1x 3 mm LED (sarı)

1x optik kodlayıcı

1x H11L1 optokuplör

1x 1N4148 diyot

3x 1000 ohm dirençler

3x 220 ohm dirençler

10x 470 ohm dirençler

Biraz lehim teli, biraz kablo, lehim istasyonu… ve boş zaman:)

Projeyi tamamlamak için gereken süre: 6-9 saat

Neden UNO değil?

İlk testler (ve bir başlangıç çalışma kodu) "normal" bir arduino UNO kartına yazılmıştır. Bu kart, beni polifoniyi "4"e, maksimum uzunluğu 4 saniyenin altına ve maksimumda 40 ms'lik bir çözünürlüğe düşürmeye zorlayan RAM sınırlarına sahip. Bu, çok kanallı işleme olmadan. Hız takibini de kaldırarak kayıt süresini 7 saniyeye çıkarabildim.

Bir UNO ile o zaman "çalışan" bir MIDI döngü istasyonunu gerçekleştirebilirsiniz, ancak oldukça sınırlı.

4. Adım: Yazılım

Yazılım, büyük ölçüde FortySevenEffects MIDI kitaplığına güveniyor. Bu kütüphane harika ve bu tür projeleri benim gibi kodlayıcı olmayan meraklılar için bile yapılabilir hale getiriyor.

Arduino IDE ve topluluğu, bu "başarı"nın bir diğer önemli parçasıdır.

Krokiyi arduino DUE'nize nasıl yükleyeceğinizle ilgili ayrıntılara girmeyeceğim. Bu, arduino IDE ile ilk deneyiminizse, lütfen önce bunu okuyun.

Tamamen farklı iki yaklaşıma dayanarak kodun iki farklı versiyonunu yazdım.

Sürüm 1'in çalışma prensibi, Arduino DUE'nin kayıt veya overdubbing sırasında (uçucu) hafızasında desteklenen MIDI olaylarını (note on, note off, kontrol değişikliği ve perde bükme) kontrol etmesi ve saklamasıdır; zaman ekseni 20 ms'lik adımlarla nicelenir ve alınan mesajlar buna göre bu yuvalarda saklanır. Çalarken, saklanan MIDI mesajları, zaman niceleme ile ilgili olarak synth'e geri gönderilir.

Sürüm 2'nin çalışma prensibi, bunun yerine, midi olayını ve olayın tetiklenmesi gereken zamanı "basitçe" kaydetmektir. Sürüm 2, sürüm 1'den farklı sınırlara sahiptir (önceki adımda listelenmiştir). ikisini de deneyin ve sizin için daha iyi olanı kullanın.

Bir ön Saat işleme de var, ancak olması gerektiği gibi çalışması için bazı ince ayarlara ihtiyacı olacak. Kod, 4/4 - 4 barlık bir döngü (16 vuruş) kaydettiğinizi varsayar.

Lüper'i açarken "panik" düğmesini basılı tutarak harici saati devre dışı bırakabilirsiniz.

Kodlar BURADAN yüklenmiştir. Bu donanım yazılımını istediğiniz gibi bükebilmeniz için yorumlar her yere yerleştirilmiştir;)

Adım 5: Kablolama

kablolar
kablolar
kablolar
kablolar
kablolar
kablolar

MIDI IN ve MIDI OUT devreleri ekteki resimlerde belirtilmiştir. TX0 ve RX0 değil, TX1 ve RX1'in kullanıldığına dikkat edin.

Arduino DUE giriş pinleri 5V'u işleyemez, ancak 3.3V'yi işleyebilir; bu nedenle daha yaygın olan 6N138 yerine H11L1 optokuplör kullanılır. İlk prototipimde olduğu gibi TX1'e giden sinyal voltajını azaltmak için bir voltaj bölücüyle birleştirilmiş bir 6N138 kullanmanın bazı kurulumlarda düzensiz çalışabileceğine dair kanıtlarım var.

LED'ler Arduino DUE çıkış pinlerine 470 Ohm dirençler ile bağlanır. LED'lere giden akımı azaltmak ve parlaklıklarını azaltmak için 1K ohm'a kadar dirençler kullanabilirsiniz.

Butonlar/anahtarlar/jaklar, çizimde etkinleştirilen giriş çekme dirençleri sayesinde doğrudan Arduino giriş pinlerine bağlanır. Harici (açılır) dirençlere gerek yoktur.

Optik kodlayıcı GND ve +5V'a bağlıdır. Her optik veri çıkışı için bir adet olmak üzere 2 480 ohm dirençten geçen Arduino giriş pinlerine gider.

Arduino DUE, +5V DC hub aracılığıyla doğrudan 5V pin ve topraktan güç alır.

Tüm gerekçeler birbirine bağlıdır.

Ekli, arduino pinlerinden IN/OUT çevre birimine bağlantıları olan bir tablodur. Arduino pin numaraları, proptotip donanımımdakileri yansıtır ve (bir şekilde…) rastgele görünebilir. Çizimdeki pin konumunu dilediğiniz gibi kolayca değiştirebilirsiniz;)

Adım 6: Birden Fazla MIDI Kaynağım Varsa?

Ya Birden Fazla MIDI Kaynağım Varsa?
Ya Birden Fazla MIDI Kaynağım Varsa?

MIDI birleşmesi için kısa bir arama yaptıktan sonra, en pratik (ve ucuz) çözümün bir MIDI anahtarlayıcı olduğunu buldum.

Bir MIDI değiştirici, bir MIDI kaynağını etkinleştiren ve diğer tüm kaynakları devre dışı bırakan pasif bir cihazdır. Bu kadar basit.

Bir MIDI anahtarlayıcının kalbi, çok konumlu (benimki 6 konumlu), 2 kutuplu bir anahtardır. Kutup sayısının "2" olması çok önemlidir çünkü her MIDI soketi seçili değilse ve diğerleriyle haberleşmiyorsa tamamen kesilmelidir. Ekte kendi kullanımım için fark ettiğim bir resim var.

BU LİNK'te bir şema.

Önerilen: