Isi kandungan:

Urutan Bahagian Arduino MIDI Rhythm: 8 Langkah (dengan Gambar)
Urutan Bahagian Arduino MIDI Rhythm: 8 Langkah (dengan Gambar)

Video: Urutan Bahagian Arduino MIDI Rhythm: 8 Langkah (dengan Gambar)

Video: Urutan Bahagian Arduino MIDI Rhythm: 8 Langkah (dengan Gambar)
Video: “Duduk Macam Lelaki” – Netizen Terkejut Lihat Rupa Terkini Anak Perempuan Sharifah Shahira 2024, Julai
Anonim
Pengatur Seksyen Arduino MIDI Rhythm
Pengatur Seksyen Arduino MIDI Rhythm
Pengatur Seksyen Arduino MIDI Rhythm
Pengatur Seksyen Arduino MIDI Rhythm
Pengatur Seksyen Arduino MIDI Rhythm
Pengatur Seksyen Arduino MIDI Rhythm

Mempunyai mesin dram perisian yang baik adalah mudah dan murah hari ini tetapi menggunakan tetikus membunuh keseronokan bagi saya. Inilah sebabnya mengapa saya menyedari apa yang pada awalnya dimaksudkan sebagai pengatur drum MIDI perkakasan 64 langkah yang murni yang mampu mencetuskan hingga 12 elemen drum (bahagian) yang berbeza, tetapi kemudian berkembang dalam sekuens bahagian irama…

… di sana kita pergi!

Langkah 1: Bagaimana Ia Berfungsi

Perkakasan ini tidak dapat menghasilkan bunyi dengan sendirinya, tetapi hanya urutan perkakasan luaran melalui MIDI. Ini bermakna anda memerlukan penjana bunyi bunyi drum anda (sampler atau drum synthesizer atau PC dengan perisian drum kegemaran anda atau apa sahaja yang anda mahukan) yang boleh dicetuskan oleh pesanan nota MIDI.

Ia terdiri daripada matriks 4 x 4 butang (dengan LED), satu untuk setiap langkah bar. Keseluruhan urutan 64 langkah terdiri daripada 16 langkah dikalikan 4 bar. Setiap langkah adalah 1/16 nota.

Terdapat dua mod operasi: mod langsung dan mod edit.

Dalam mod edit, anda sebenarnya dapat mengedit urutan anda secara bertahap dengan menentukan drum mana yang akan dimainkan di setiap langkah.

Instrumen perkakasan luaran anda ("drum") dipicu dengan menghantar mesej MIDI "note on" untuk "nombor nota MIDI" yang berbeza pada nombor saluran "10". Secara lalai nombor nota ini adalah

drum # 1 (iaitu tendangan) -> Nota nota MIDI "60"

drum # 2 (iaitu snare) -> Nombor nota MIDI "62"

drum # 3 (iaitu tepukan) -> Nota nota MIDI "64"

drum # 4 (iaitu Hihat) -> Nota nota MIDI "65"

drum # 5 -> Nombor nota MIDI "67"

drum # 6 -> Nota nota MIDI "69"

drum # 7 -> Nombor nota MIDI "71"

drum # 8 -> Nota nota MIDI "72"

drum # 9 -> Nota nota MIDI "74"

drum # 10 -> Nota nota MIDI "76"

drum # 11 -> Nota nota MIDI "77"

drum # 12 -> Nombor nota MIDI "79"

Anda boleh mengubah nilai-nilai ini (dan saluran MIDI) dalam lakaran jika anda mahu.

Dalam mod langsung dengan menekan butang langkah, anda boleh memainkan drum langsung yang berkaitan dengan setiap langkah dengan menghantar mesej MIDI melalui siri. Anda boleh terus merakam penekanan butang dan / atau mesej MIDI yang masuk.

Dalam mod langsung dan mod suntingan, anda boleh membisukan (atau membisukan) drum, "memutar permainan" drum yang sedang aktif dan "mengayunkan" urutan anda.

Bahagian irama?

Sebilangan besar penyusun drum adalah pencetus bahagian dram MIDI semata-mata, dengan nombor nota MIDI tetap untuk setiap bunyi drum. Dalam kes ini, kami mempunyai "urutan bahagian irama" lebih daripada "pengatur urutan drum" yang tulen kerana anda bahkan dapat menyintesis urutan.

Baca PANDUAN MULAI CEPAT untuk keterangan lebih lanjut dan senarai lengkap ciri.

Langkah 2: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan

Projek ini dilaksanakan di sekitar papan Arduino DUE. Saya cuba menjaga perkakasan semudah mungkin, dengan mengelakkan penggunaan pemacu LED. Arduino DUE mungkin bukan papan yang paling sesuai untuk mengendalikan sekumpulan LED tanpa pemacu LED kerana had arus keluarannya (dari 5 mA hingga 15 mA, bergantung pada pin), tetapi Arduino dan masa yang paling cepat adalah segalanya ketika berurusan dengan penjujukan. Oleh itu, perlu diingat bahawa konfigurasi perkakasan INI kemungkinan mendorong Arduino DUE anda ke hadnya dan boleh merosakkannya dalam jangka masa panjang.

Oleh yang demikian, perkakasan ini terutama terdiri daripada 16 butang, 16 LED (satu untuk setiap langkah) penjujukan dengan 5 butang tambahan untuk fungsi dan 3 potensiometer. Saya juga menambah LED merah setelah menambahkan fungsi rakaman langsung.

Berikut adalah bil bahan:

- 1x Arduino SEPANJANG

- Tombol tekan 16x sesaat tanpa kait dengan LED bersepadu (anda boleh menggunakan LED luaran jika anda mahu, tetapi ingat untuk menggunakan LED kuasa rendah !!)

- 1x LED merah (kuasa rendah!)

- Tombol tekan 5x sesaat, tanpa selak

- 3x giliran tunggal, linear, potensiometer

- Pemasangan panel mono jack 3x6.5 mm untuk wanita

- Kotak plastik 1x (saya menggunakan sarung 190x140x70 mm)

- Penyambung soket pemasangan panel wanita 2x 5-pin DIN (MIDI)

- Papan perf 1x dua sisi 70x90 mm

- Jalur header pin baris tunggal lelaki 2x 40 pin (2.54 mm), lebih baik jika berlapis emas

- 1x H11L1 optocoupler

- 1x 1N4148 diod

- Perintang 23x1000 ohm

- Perintang 3x 220 ohm

- 2x transistor BC547 pnp

… wayar solder, beberapa kabel, stesen solder, alat penggerudian … dan masa lapang:)

Harap perhatikan bahawa butang dalam gambar telah diganti dengan jenis butang tekan (yang lebih murah lagi …) kerana memantul yang keterlaluan …

Masa yang diperlukan untuk menyelesaikan projek: 8 - 10 jam

PERINGATAN: SELALU memakai cermin mata dan sarung tangan pelindung semasa menggerudi! Flackes bahan panas boleh diproyeksikan ke mata anda atau bersentuhan dengan kulit anda dan menyebabkan luka bakar atau kerosakan yang lebih serius kepada anda atau orang di sekitar anda

Langkah 3: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Butang langkah dihubungkan terus ke pin Arduino dari 22 (langkah 1) hingga 37 (langkah16). Ground Buttons dirantai daisy dan disambungkan ke tanah Arduino DUE. Tidak ada keperluan untuk resistor pullup atau pulldown kerana resistor pullup bersepadu Arduino diaktifkan perisian (lihat lakaran).

Perkara yang sama berlaku untuk 5 butang tambahan (pin Arduino 2, 3, 4, 5 dan 6), yang digunakan untuk fungsi selain langkah. Saya juga meletakkan penyambung jack wanita 6.5 mm selari dengan butang "start" agar dapat memainkan dan menghentikan urutan saya dari jauh.

LED disambungkan ke ground (rantai daisy) dan pin Arduino DUE dari 38 (langkah # 1) hingga 53 (langkah # 16) secara bersiri dengan perintang 1K ohm masing-masing untuk mengehadkan saliran semasa dan memelihara mikrokontroler.

Potensiometer disambungkan seperti yang ditunjukkan dalam gambar yang dilampirkan. Perhatikan bahawa voltan rujukan adalah 3.3V, bukan 5V. Input yang digunakan adalah A0, A1 dan A2.

Saya juga melaksanakan dua output pencetus untuk isyarat arpeggio, seperti yang diperlukan untuk arpegiate synth 80-an lama seperti Korg Polysix dan Roland Juno 6/60. Mereka disambungkan ke pin A3 dan A4, tetapi anda boleh menggunakan pin digital jika anda lebih suka menjadi isyarat digital. Sekiranya anda akan menyusun sintetik yang serasi dengan isyarat V-Trig (pemicu voltan), perintang siri 1k ohm untuk mengurangkan saliran semasa akan mencukupi; sekiranya terdapat S-Trig (switch trigger) synth, anda memerlukan litar suis pnp sederhana (lihat skema yang dilampirkan).

Litar MIDI IN dan OUT dibuat skema dalam gambar yang dilampirkan. Perhatikan bahawa, bertentangan dengan kebanyakan arduino, Rx1 dan Tx1 digunakan secara lalai pada papan DUE dan bukannya Rx0 dan Tx0. Ini bagus kerana anda boleh memuat naik lakaran anda tanpa perlu memutuskan sambungan Rx setiap masa. Perhatikan juga bahawa saya telah menggunakan optocoupler H11L1 kerana saya tidak dapat berjalan sebagaimana mestinya 6N138 biasa dalam had Arduino DUE 3.3V.

Langkah 4: Perisian

Sketsa telah ditulis dalam Arduino IDE dan mesti dimuat naik ke papan Arduino DUE anda. Saya tidak akan menerangkan secara terperinci mengenai cara memuat naik lakaran ke arduino DUE anda. Sekiranya ini adalah pengalaman pertama anda dengan Arduino DUE baca ini. Sekiranya ini adalah pengalaman pertama anda dengan arduino IDE, baca juga ini.

Anda boleh memuat turun firmware yang dikemas kini DI SINI (pautan github).

Lakarannya bergantung pada perpustakaan FortySevenEffects MIDI yang sangat baik. Anda perlu memasang perpustakaan di arduino IDE anda.

Nota keluar MIDI yang diberikan kepada setiap drum ditentukan oleh pemboleh ubah drumNote [STEPS_NUM] dalam lakaran. Anda boleh menukarnya sesuka hati.

Nombor saluran keluar MIDI untuk drum ditetapkan ke "10" secara lalai.

Saya bukan pengekod dalam kehidupan sebenar dan pasti ada cara yang lebih baik untuk membuat kod apa yang kita perlukan di sini. Sekiranya anda seorang pengekod dengan sebarang cadangan, anda dipersilakan! Tolong hantarkan saya variasi yang dapat meningkatkan kecekapan / keberkesanan kod dan saya akan memasukkannya ke lakaran utama (jelas Penyumbang!).

Langkah 5: Panduan Mula Pantas

DRUM: PENGAMBILAN LANGKAH-LANGKAH

Sebaik sahaja anda menghidupkan penjujukan anda (atau menetapkannya semula), urutan kosong akan dimuat. Penjujukan akan naik dalam mod edit, dengan bar pertama ditahan / dikunci dan drum pertama (iaitu tendangan) dipilih. Ini bermaksud dengan menekan butang langkah apa pun, anda akan segera memberikan "tendangan" pada langkah-langkah tersebut. Volume yang akan dipicu oleh drum diatur oleh posisi potensiometer "volume" ketika menetapkan drum ke langkah. Dengan menekan semula butang langkah yang telah ditetapkan sebelumnya, anda akan mengalihkan drum semasa pada langkah tersebut.

Sekiranya anda menekan butang "mula", anda akan melihat LED anda berjalan dari kiri ke kanan, atas ke bawah, bermain "tendangan" bila-bila masa langkah tendangan dilintasi.

Dengan terus menekan butang "shift", anda akan melihat LED langkah pertama pada baris pertama dihidupkan (bermaksud dram pertama dipilih) dan LED langkah pertama pada baris keempat (bermaksud bahawa anda terkunci pada bar pertama). Anda kini boleh menukar drum yang ingin anda urutkan dengan menekan butang langkah lain sambil terus menekan "shift". Setelah memilih drum baru, lepaskan "shift". Semua LED akan mati (kerana anda belum memberikan drum baru ke langkah lain) dan anda boleh mula menetapkan drum baru ke langkah. Ulangi untuk semua gendang yang anda perlukan (hingga 12).

Sekarang setelah anda membuat corak yang bagus, terus tekan "shift" dan matikan langkah highligted di baris bawah (ia harus menjadi langkah pertama dari baris ke-4 jika anda telah menggunakan susun atur yang sama yang saya gunakan): anda baru saja " membuka kunci "urutan yang kini akan berjalan di semua 4 bar. LED mentah bawah akan mula "bergerak", menunjukkan bar mana yang sedang dimainkan (bar bar). Anda akan melihat bahawa hanya ketika di bar pertama urutan akan dimainkan, dengan 3 bar lain tidak menghasilkan bunyi. Ini kerana anda telah menetapkan gendang hanya pada bar pertama, yang lain dibiarkan kosong. Anda boleh mengisinya dengan tangan (pilih bar baru dengan menekan salah satu butang 4 langkah terakhir sambil terus menekan "shift", pilih salah satu drum, isi langkah-langkah dll. Dll) atau salin dan tampal urutan bar yang anda buat ke semua bar dengan memasuki mod edit (kunci kembali ke bar pertama) dan menekan "rakam" (yang kini menganggap fungsi "tampal") sambil terus menekan "shift". Lebih mudah dilakukan daripada yang dikatakan.

DRUM: MOD Main LIVE

Semasa memulakan, sequencer berada dalam mod edit. Untuk keluar dari mod edit, anda mesti terus menekan "shift" dan tekan butang bar yang sedang dipegang / dikunci (butang langkah pada baris ke-4 dihidupkan). Ini akan mematikan LED bar yang sebelumnya terkunci dan membuka urutannya. Anda kini berada dalam mod main langsung.

Dalam mod main langsung, dengan menekan sebarang butang langkah, drum yang berkaitan dengan butang itu akan dipicu.

Sekiranya anda ingin merakam secara langsung urutan anda, mulakan urutan dengan menekan "mainkan", kemudian tekan butang "rakam" (hanya dalam mod main langsung). LED merah akan menyala. Mainan anda pada matriks panel kawalan urutan drum atau sebarang pesanan nota MIDI masuk (iaitu dari papan kekunci MIDI luaran) akan dirakam.

Fungsi lain

Dengan menekan butang "roll", drum yang sedang aktif akan dimainkan pada setiap langkah (dalam gulungan). Ini berfungsi dalam mod "langkah demi langkah" dan "main-main".

Dengan menekan butang langkah apa pun sambil terus menekan butang "bisu", dram yang berkaitan dengan langkah itu akan disenyapkan (atau tidak disenyapkan). Ini berfungsi dalam mod "langkah demi langkah" dan "main-main".

Anda boleh membersihkan urutan drum tertentu dengan menekan butang langkah relatif sambil terus menekan butang "REKAM".

Anda boleh membersihkan keseluruhan urutan (soft reset) dengan terus menekan butang "start" selama lebih dari 3 saat.

Anda boleh "mengayunkan" urutan anda dengan memutarkan potensiometer "ayunan".

Anda boleh mematikan / mengaktifkan gema MIDI dengan menekan butang "bisu" sambil terus menekan butang "shift". Apabila gema MIDI diaktifkan (lalai), maklumat apa pun yang terdapat pada bicu MIDI INPUT akan dihantar ke bicu MIDI OUTPUT (hanya nota MIDI yang dihidupkan, nota, nada bengkok, perubahan sentuhan, dan perubahan kawalan digema).

Input dan output jam MIDI dilaksanakan dan diaktifkan secara lalai. Sekiranya tidak ada input jam yang diterima, tempo diatur dengan potensiometer khusus. Sekiranya input jam MIDI diterima, tempo dihitung dari itu dan potensiometer tempo tidak akan bertindak balas. Jam MIDI selalu dihantar ke MIDI keluar.

Langkah 6: Bahagian Irama

Idea asalnya adalah "langkah murni" 64 langkah penyusun drum MIDI untuk menyusun hingga 12 bahagian dram bebas. Selepas beberapa ujian, saya dapati mengawal garis bass juga bagus, dan saya memberikan ciri nada per langkah yang berubah-ubah hanya pada drum terbaru. Selepas itu, saya mengubah kodnya lagi supaya saya dapat mengubah nada di setiap drum dan mengawal sehingga 12 synthesizer. Semakan kemudian saya menambah polyphony (polyphony per-synth terhad kepada 3 secara lalai).

Ringkasnya:

- semasa dalam mod LIVE, jika rakaman LIVE terlibat dan urutannya dimulakan, anda boleh merakam mesej nota MIDI yang masuk, secara polifonik. Maklumat pitch dan volume akan disimpan. Pitch bend dan maklumat aftertoutch hilang. MIDI Control Change message akan disimpan. Perlu diingat bahawa anda hanya mempunyai satu slot CC setiap saluran, setiap langkah.

- Sekiranya urutan dihentikan, anda boleh merakam hingga 3 nilai nada (kord) ke langkah tertentu bar tertentu dengan terus menekan butang langkah tujuan dan menekan (pada masa yang sama atau satu persatu) kekunci yang diinginkan pada papan kekunci disambungkan ke port MIDI IN.

Perhatikan bahawa:

- nota yang dicetuskan pada langkah "dibunuh" pada langkah seterusnya. Untuk meningkatkan panjang nota, bertindak pada parameter "lepaskan" VCA synthesizer anda.

- bertentangan dengan drum, nota tidak dapat dimainkan secara bergulir dengan menekan butang "roll".

- Semasa merakam LIVE, data saluran MIDI yang masuk disimpan dalam langkah "drum" relatif (saluran MIDI # 1 -> "drum" # 1 dan seterusnya).

Anda boleh membersihkan urutan synth tertentu dengan menekan butang langkah "drum" relatif sambil terus menekan butang "REKAM". Menekannya sekali lagi akan membersihkan urutan drum juga. Sekiranya urutan CC dirakam, itu akan menjadi yang pertama yang akan dipadamkan, kemudian mengikut urutan CC -> Synth -> Drum

Langkah 7: Pencetus Arpeggio

Synth pra-MIDI awal tahun 80-an sering dilengkapi dengan "input pemicu arpeggio" yang kadang-kadang disebut. Dengan menghantar isyarat trig 2.5 hingga 5.0 V (V-trig atau "pemicu voltan") atau dengan membumikan input pemicu arpeggio (S-Trig atau "pemicu suis"), anda dapat memberitahu synthesizer untuk memajukan satu langkah pada urutan arpeggio. Ini mungkin sukar untuk dikendalikan dengan penjujukan tanpa pencetus khusus (kadang-kadang bunyi "rimshot" dari tempat khusus / digunakan sebagai kaedah untuk sintesis V-trig) tetapi dengan papan mikrokontroler anda dapat dengan mudah menguruskan isyarat dan kawalan tersebut synth arpeggio anda seperti yang dimaksudkan oleh kilang.

Pengatur bahagian irama ini merangkumi kemungkinan untuk mencetuskan arpeggiator dua synthesizer berbeza, secara bebas.

Penggunaannya sangat mudah: pilih drum 11 atau 12 (tekan langkah 11 atau 12 sambil menekan "shift") dan aktifkan langkah-langkah yang anda mahu arpeggiator bergerak satu langkah. Dengan cara ini anda dapat "memprogram" arpeggio biasa 1/16 dari panjang nota dengan mengaktifkan semua langkah, atau 1/8 dengan mengaktifkan setiap langkah yang lain. Di samping itu, anda boleh memprogram arpeggios yang lebih kompleks dengan mengaktifkan langkah-langkah mengikuti jalan yang tidak biasa.

Bergantung pada jenis isyarat pencetus yang disokong oleh synth yang ingin anda kendalikan, anda memerlukan modifikasi perkakasan yang mudah: sekiranya V-trig (iaitu Roland synths) letakkan perintang 1 Kohm secara bersiri dengan output pemicu arduino. Sekiranya S-trig (mis. Korg synths) gunakan skematik yang terpasang pada langkah "pendawaian" untuk pencetus suis selamat.

Langkah 8: Sekiranya Perkara Tidak Berfungsi …

Walaupun projek yang agak mudah seperti ini kemungkinan besar tidak akan berfungsi 100% pada kali pertama anda menghidupkannya. Di sini, Sebagai contoh, kesesuaian antara butang dan LED sangat penting, dan pendawaian yang tidak dipasang akan menjadikan jujukan tidak berguna.

Untuk menguji semua komponen yang berlainan yang membentuk step sequencer, saya menulis lakaran ujian ringkas (lihat lampiran).

Anda boleh memuat turun firmware ujian terkini di SINI (pautan GitHub).

Lakaran ujian berfungsi seperti berikut:

- tekan butang langkah: LED yang sesuai harus menyala dan nota MIDI pada saluran 10 akan dihantar ke output MIDI.

- tekan butang fungsi: salah satu daripada 5 LED pertama akan menyala.

- putar potensiometer: LEDS akan menyala dengan sewajarnya (periuk pertama -> baris LED pertama, periuk kedua -> baris LED kedua, periuk ketiga -> baris LED ketiga).

- jika nota MIDI dihidupkan, LED pertama akan berkelip.

Perlu diingat bahawa gema MIDI diaktifkan secara lalai. Ini bermaksud bahawa jika anda mempunyai gelung MIDI antara synth dan MRSS, ini boleh menyebabkan masalah (Saya mengalami catatan berganda yang boleh dicetuskan pada kebanyakan masa, tetapi juga nota yang sangat rendah dicetuskan dan papan kekunci terbina dalam yang umumnya tidak responsif dengan synth dengan MIDI bertindak sebagai MIDI Throu … ia bergantung pada synth). Jika demikian, nonaktifkan MIDI echo dengan menekan butang "bisu" sambil terus menekan butang "shift".

Disyorkan: