Isi kandungan:

Satu lagi Kotak MIDI ke CV: 7 Langkah (dengan Gambar)
Satu lagi Kotak MIDI ke CV: 7 Langkah (dengan Gambar)

Video: Satu lagi Kotak MIDI ke CV: 7 Langkah (dengan Gambar)

Video: Satu lagi Kotak MIDI ke CV: 7 Langkah (dengan Gambar)
Video: Mainan toilet lucu #funny #ngeshortsdulu 2024, November
Anonim
Satu lagi MIDI to CV Box
Satu lagi MIDI to CV Box

Kotak MIDI to CV yang lain adalah projek yang saya buat ketika Korg MS10 mengetuk pintu saya dan berlangsung di studio saya. Oleh kerana persediaan saya sangat bergantung pada MIDI untuk mengautomasikan dan menyegerakkan semua instrumen, ketika saya membeli MS10, masalah pertama yang harus saya hadapi adalah bagaimana melaksanakan kawalan tersebut.

Korg MS20 / 10 bukan sintesis paling mudah untuk melaksanakan MIDI untuk: pertama sekali, mereka bergantung pada kawalan Hz / V (korelasi linear antara voltan kawalan dan frekuensi nota), bukannya oct / V (1V per oktaf); kedua, untuk mencetuskan nota, anda mesti menghantar isyarat gerbang negatif dan pendekkan input ke tanah (S-Trig), bukan isyarat +5 V (V-trig).

Terdapat pelbagai penyelesaian komersial untuk mengawal instrumen seperti ini pada masa ini (iaitu Arturia Beatstep Pro, Korg SQ-1, Kenton Solo) tetapi saya bajingan yang murah dan bahkan 100 euro terlalu banyak untuk peranti "tidak berbunyi":).

Di sini kita kemudian: izinkan saya menunjukkan kepada anda cara membina kotak MIDI hingga CV bajet rendah untuk mengawal / mengautomatikkan nada, gerbang, kelajuan dan frekuensi cut pra-MIDI synth dengan pengawal MIDI luaran (Keyboard, DAW, sequencer atau apa sahaja).

"Bagaimana dengan mini MS20 yang baru?"

Seperti yang diketahui hampir semua orang, MS20 baru sebenarnya sudah siap MIDI: IN dengan penyambung MIDI 5 tiang dan IN / OUT dengan penyambung USB.

"Jadi, jika saya mempunyai MS20 mini perkara ini tidak berguna!"

Tidak, tidak. MS20 mini mengenali hanya nota hidup / mati dan papan kekunci tidak sensitif terhadap halaju. Tidak ada cara untuk mengatasi ini dengan papan kekunci vintaj atau mini MS10 / 20, tetapi dengan kotak midi dan papan kekunci sensitif halaju, anda berwarna emas. Di samping itu, dengan kotak MIDI, anda dapat mengautomasikan pemotongan penapis (atau parameter voltan lain yang dapat dikendalikan) atau memodulasinya dengan catatan MIDI mengenai halaju yang masuk. Sekali lagi, satu-satunya saluran MIDI MS20 mini yang ditanggapi adalah saluran 1. Dengan kotak ini, anda juga dapat mengatasi had ini.

"Bagaimana jika saya mempunyai sintetik Oct / V?"

Tiada masalah! Kod yang saya tulis sesuai dengan synthesizer Oct / V (belum diuji, tetapi saya yakin ia akan berfungsi di luar kotak;)).

Langkah 1: !! Perhatian - Penafian

Peralatan anda sangat berharga dan tidak boleh digunakan untuk melakukan ujian.

Main dengan elektrik boleh merosakkan peralatan anda atau merosakkan diri sendiri.

Saya tidak akan bertanggungjawab atas kerosakan peralatan / perkakasan anda atau anda sendiri yang berasal dari mana-mana perisian atau skema atau maklumat atau pautan yang saya laporkan dalam arahan ini.

Anda telah diberi amaran!

Langkah 2: Kejuruteraan Perkakasan

Arduino sangat berguna ketika berurusan dengan projek seperti ini. Kewujudan Komuniti yang besar dan perpustakaan yang sangat baik yang merangkumi hampir semua tugas biasa menjadikannya pilihan yang tepat. Di sini papan akan diprogramkan sehingga akan membaca data MIDI masuk dan kemudian akan menghantar voltan yang sesuai untuk memandu:

- Pitch, dengan menukar output pwm menjadi voltan analog untuk menggerakkan VCO melalui penukar digital ke analog (DAC)

- Kecepatan, dengan menyaring output pwm untuk mendorong VCA dengan penapis RC sederhana

- Filter Frekuensi Potong, dengan menyaring output pwm untuk menggerakkan VCF dengan penapis RC sederhana

- Gerbang, langsung dari keluar digital jika berlaku V-trig (masukkan seri 1Kohm dengan keluaran untuk mengurangkan pengaliran semasa) atau dengan suis transistor pnp sederhana dari keluar digital (lihat skema yang dilampirkan pada langkah skema).

Arduino tidak mampu mengeluarkan voltan stabil secara langsung, tetapi denyutan 0 / + 5 V dengan pelbagai tempoh (PWM). Kami sangat memerlukan penukar digital ke analog (DAC) untuk rumah aliran. Penapis RC adalah DAC termudah yang dapat saya fikirkan. Penapis RC bagus untuk penguat dan penapis voltan terkawal (VCA dan VCF). Penapis RC disesuaikan untuk menghasilkan frekuensi pemotongan <20Hz (frekuensi terdengar terendah).

Saya membuat beberapa ujian dengan kapasitor bukan polarisasi berkapasiti rendah dan saya mengakhiri dengan nilai kapasiti 0.1uF untuk menjadi yang paling sesuai. Diuji dengan baik pada MS20 MKII.

Sayangnya, kita tidak boleh bergantung pada penapis RC untuk menggerakkan pengayun voltan terkawal (VCO) kerana ia tidak tepat dibuat (dalam skala Hz / V, pada hujung bawah dua semiton adiacend berbeza kurang dari 0,02V; dalam V / okt dua semiton pendalaman berbeza untuk 0,083 V); kita akan menggunakan IC DAC (MPC4725) untuk ini.

Had yang Diketahui

Mengehadkan voltan pemacu hingga 5V (voltan keluaran Arduino), julat 0 hingga 5V penuh ditutup untuk halaju; potongan ditutup separuh (-5V hingga + 5V); julat VCO ditutup sebahagiannya kerana dalam Hz / V voltan 8 V diperlukan untuk mencapai 440 Hz A4. Dengan had output 5V kita dapat menaikkan pengayun hingga frekuensi D4 dalam Hz / V.

Langkah 3: Senarai Komponen

Senarai Komponen
Senarai Komponen
Senarai Komponen
Senarai Komponen
Senarai Komponen
Senarai Komponen

Anda memerlukan:

1X Arduino UNO (atau nano)

Papan 1X MPC4725 DAC

Penyambung mono 4X 1/8 "atau 1/4"

Penyambung 1X MIDI

Optocoupler 1X 6N138

Diod 1X 1N4148

Perintang 1X 220 ohm 1/4 W

Perintang 1X 470 ohm 1/4 W

Perintang 1X 10K ohm 1/4 W

Perintang 4X 1K ohm 1/4 W

Kapasitor 2X 0.1 uF

Transistor 1X BC547 pnp (jika berlaku S-trig)

Kotak ABS 1X (sekurang-kurangnya 55 x 70 x 100 mm)

… dan pastinya papan roti atau papan wangi, besi pateri, wayar solder dan kabel (2 meter 28 AWG harus dicari).

Perhatikan bahawa dalam gambar di atas prototaip saya memasang topi elektrolitik 100 uF, tetapi terlalu lambat kerana masa cas kapasiti. Kapasiti 0.1uF adalah pilihan yang tepat.

Saya menggunakan penyambung tambahan untuk membekalkan kuasa ke arduino saya; tidak mustahil untuk membuat jus mikrokontroler secara langsung melalui penyambung USB mini onboard.

Langkah 4: Sambungan / Skematik

Sambungan / Skematik
Sambungan / Skematik
Sambungan / Skematik
Sambungan / Skematik
Sambungan / Skematik
Sambungan / Skematik

MIDI DI

Litar MIDI IN ringkas dan dijelaskan dengan baik di jaring. Ambil contoh INI yang sangat baik di MIDI dan Arduino oleh Amanda Gassaei, misalnya. Bagaimanapun, saya membuat skema n mengenai perkara ini.

Perhatikan bahawa saya menambahkan suis dalam skema MIDI IN (suis 1): ini diperlukan semasa memuat naik lakaran baru ke Arduino kerana opto mengganggu garis RX walaupun tanpa mesej midi yang masuk. Anda mesti membuka suis sebelum memuat naik lakaran anda atau IDE akan gagal memuat naik lakaran baru.

Anda akhirnya dapat mengubah lakaran untuk menggunakan komunikasi perisian bersiri.

DAC, Penapis RC, Synthesizer

Sambungan untuk DAC, penapis RC dan Synth (nada, pintu dan halaju) ditunjukkan dalam rajah di atas. Saya menggunakan panel tampalan Korg MS20, tetapi saya juga menguji semuanya pada MS10. Sambungan langsung titik kelajuan CV ke titik tampalan "keuntungan awal" VCA tidak berpengaruh (saya mesti menggali perkara ini lebih jauh) tetapi jika anda menyambungkannya ke titik tampalan "Jumlah" dan meningkatkan jumlah periuk luaran anda (MG / T. EXT), anda akan mendengar variasi nada yang bagus sebagai fungsi dari halaju nota.

Skema saya (dan prototaip saya juga) tidak menggunakan perintang had semasa pada output DAC, tetapi selalu merupakan idea yang baik untuk meletakkannya untuk memastikan jangka hayat litar lama anda. Perintang 220 ohm akan disediakan.

Perhatikan bahawa dalam skema di atas 100 uol elektrolitik dilaporkan, tetapi terlalu lambat kerana masa cas kapasiti. Tidak terpolarisasi, penutup 0.1uF adalah pilihan yang tepat.

Pintu Keluar

Sekiranya anda akan menyusun sintetik yang serasi dengan isyarat V-Trig (pemicu voltan), perintang siri 1k ohm untuk mengurangkan saliran semasa akan mencukupi; sekiranya S-Trig (pemicu suis) synth, anda boleh menggunakan litar suis PNP sederhana (lihat skema yang dilampirkan).

Langkah 5: Perisian

Perisian
Perisian

Saya cuba memastikan lakarannya seberat dan "boleh dibaca" mungkin.

Saya mengusahakan lembaran calc yang sederhana dan saya dapati di SINI untuk mendapatkan keluk Voltage Vs Note # dan menggunakan persamaan secara langsung dalam mikrokontroler. Persamaan ditunjukkan dalam grafik di atas. Saya menggunakan C2 sebagai nota rujukan untuk mendapatkan hubungan nota Voltan Vs yang mematuhi Arp / Korg (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V dan sebagainya).

Saya harus menentukan beberapa pemboleh ubah untuk mainan untuk mendapatkan penalaan yang baik … luangkan masa anda untuk mencari nilai yang betul. Penala diperlukan.

Kami akan meningkatkan frekuensi pwm Timer / Counter untuk mengurangkan riak voltan output (semudah garis kod).

Untuk memastikan kod responsif terhadap bait masuk, kod sangat bergantung pada fungsi panggilan balik.

Anda memerlukan perpustakaan Sparkfun "Adafruit_MCP4725.h" dan Empat Puluh Tujuh Kesan / Francois Best "MIDI.h" untuk disusun! (Terima kasih banyak kepada orang-orang ini: tanpa usaha mereka, projek ini tidak akan dapat dilaksanakan!).

Saya akan menganggap anda sudah siap Arduino IDE di PC anda dan anda tahu bagaimana memuatkan lakaran ke papan Arduino anda.

Saya bukan pengekod dalam kehidupan sebenar, jadi kemungkinan lakaran itu dapat ditulis dengan cara yang lebih baik. Saya terbuka untuk cadangan (saya selalu belajar sesuatu melihat kod pengekod;))

Nota tambahan ditulis dalam kod di bawah. Pasang dua perpustakaan, buka kod terlampir di IDE anda, sambungkan papan anda, pilih jenis papan dan muat naik.

Langkah 6: Penyelesaian masalah

Walaupun projeknya tahap rendah, terdapat banyak perkara yang boleh menjadi salah. Sekiranya anda mengalami masalah semasa cuba membuat kotak MIDI ke CV anda sendiri, ikuti langkah berikut:

1. Pastikan bahawa Arduino menerima mesej MIDI dengan betul

Periksa saluran output pada papan kekunci anda atau DAW atau Sequencer yang mengeluarkan mesej MIDI. Arduino secara automatik mendengar saluran 1. Muat naik "TEST_MIDI_IN.ino" untuk membaca mesej noteON masuk.

2. Periksa semula pendawaian anda

… atau lebih baik lagi: periksa tiga kali ganda! Simpan masa anda untuk ini.

3. Periksa alamat dan keluaran DAC

DAC dapat diatur untuk menerima data pada alamat yang berbeda dari yang saya tetapkan dalam sketsa. Periksa alamat dengan menjalankan "I2C_scanner.ino". Sekiranya ralat "tiada peranti dijumpai" berlaku, periksa pendawaian DAC anda (input SDA dan SCL berbeza pada papan Arduino yang berbeza!). Sekiranya anda mempunyai osiloskop (walaupun osiloskop digital 15 euro itu bagus … dan menyeronokkan untuk bermain!) Anda boleh memeriksa output DAC anda dengan memuat naik contoh penjana gelombang segitiga yang disertakan dengan pemasangan perpustakaan DAC.

Ingat bahawa apabila optocoupler disambungkan ke input RX papan arduino anda, anda tidak akan dapat memuat naik lakaran baru !! Letakkan suis (mungkin pelompat sederhana) sebelum pin RX.

Sebilangan besar lakaran ujian ini bukan milik saya atau sekurang-kurangnya berdasarkan bahan dalam talian yang ada.

Perkara ini kedengaran tidak sesuai dengan saya !?

Ini bukan masalah sebenar: persamaan yang diperoleh untuk kawalan Hz / V adalah "ideal". Sebilangan arus dari tingkah laku yang ideal boleh meningkat dari + 5V yang anda berikan bukan 5.000V, dari DAC dan dari instrumen itu sendiri. Untuk menyelesaikannya, anda mesti menggunakan potentiometer synth tune / fine tune dan "voilà" kawalan MIDI yang diselaraskan dengan sempurna;)

Langkah 7: Pautan Berguna

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~suits/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specifications/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/en/PWMtool.php

Disyorkan: