Taula de continguts:

Seqüenciador de seccions de ritme MIDI Arduino: 8 passos (amb imatges)
Seqüenciador de seccions de ritme MIDI Arduino: 8 passos (amb imatges)

Vídeo: Seqüenciador de seccions de ritme MIDI Arduino: 8 passos (amb imatges)

Vídeo: Seqüenciador de seccions de ritme MIDI Arduino: 8 passos (amb imatges)
Vídeo: Еще один барабанный секвенсор Arduino с минимальным аппаратным обеспечением drumseq81212 2024, Juliol
Anonim
Seqüenciador de la secció de ritme MIDI Arduino
Seqüenciador de la secció de ritme MIDI Arduino
Seqüenciador de seccions de ritme MIDI Arduino
Seqüenciador de seccions de ritme MIDI Arduino
Seqüenciador de la secció de ritme MIDI Arduino
Seqüenciador de la secció de ritme MIDI Arduino

Tenir una bona bateria de programari és fàcil i barat avui en dia, però fer servir el ratolí em mola la diversió. És per això que em vaig adonar del que inicialment es pretenia com a seqüenciador de bateria MIDI de 64 passos pur de maquinari capaç de desencadenar fins a 12 diferents elements de bateria (parts), però després vaig evolucionar en un seqüenciador de seccions de ritme …

… allà anem!

Pas 1: Com funciona

Aquest maquinari no pot generar sons per si sol, sinó només seqüenciar maquinari extern mitjançant MIDI. Això vol dir que necessitareu un generador de so dels vostres sons de bateria (un sampler o un sintetitzador de bateria o un PC amb el vostre programari de bateria preferit o el que preferiu) que pugui ser activat per missatges de nota MIDI.

Es compon principalment d’una matriu de botons de 4 x 4 (amb LED), un per a cada pas d’una barra. Tota la seqüència de 64 passos es compon de 16 passos multiplicats per 4 barres. Cada pas és 1/16 d'una nota.

Hi ha dos modes de funcionament: el mode en directe i el mode d’edició.

Al mode d'edició, podeu editar la seqüència pas a pas definint quin tambor tocarà a cada pas.

El vostre instrument de maquinari extern ("bateria") s'activa enviant un missatge MIDI "nota a" per a diferents "números de notes MIDI" al número de canal "10". Per defecte, aquests números de nota són

tambor núm. 1 (és a dir, puntada) -> Número de nota MIDI "60"

tambor núm. 2 (és a dir, trampa) -> número de nota MIDI "62"

tambor núm. 3 (és a dir, clap) -> número de nota MIDI "64"

tambor núm. 4 (és a dir, Hihat) -> número de nota MIDI "65"

bateria núm. 5 -> número de nota MIDI "67"

bateria núm. 6 -> número de nota MIDI "69"

bateria núm. 7 -> número de nota MIDI "71"

bateria núm. 8 -> número de nota MIDI "72"

tambor núm. 9 -> Nota MIDI número "74"

bateria núm. 10 -> número MIDI "76"

bateria núm. 11 -> número MIDI "77"

bateria núm. 12 -> número MIDI "79"

Podeu canviar aquests valors (i el canal MIDI) a l'esbós si ho preferiu.

En el mode en directe prement els botons de pas, podeu reproduir en directe les bateries associades a cada pas enviant missatges MIDI per sèrie. Podeu gravar en directe les pulsacions de botons i / o els missatges MIDI entrants.

Tant en el mode en directe com en el mode d'edició, podeu silenciar (o deixar de silenciar) un tambor, "tocar" el tambor actiu actualment i "fer girar" la vostra seqüència.

Secció de ritme?

La majoria dels seqüenciadors de bateria són activadors de peces de bateria purament MIDI, amb un número de nota MIDI fix per a cada so de bateria. En aquest cas, tenim un "seqüenciador de seccions de ritme" més que un "seqüenciador de bateria" pur, fins i tot podeu fer seqüències de sintetitzadors.

Llegiu la GUIA D'INICIACIÓ RÀPIDA per obtenir més detalls i una llista completa de funcions.

Pas 2: maquinari

Maquinari
Maquinari
Maquinari
Maquinari
Maquinari
Maquinari

Aquest projecte es realitza al voltant d’una placa Arduino DUE. Vaig intentar que el maquinari fos el més senzill possible, és a dir, evitant l’ús de controladors LED. És probable que Arduino DUE no sigui la placa més adequada per manejar un munt de LEDs sense controlador de LED a causa dels seus límits de corrent de sortida (de 5 mA a 15 mA, depenent del pin), però és el Arduino més ràpid i el temps és tot quan es tracta amb seqüenciadors. Per tant, tingueu en compte que aquesta configuració de maquinari probablement empènyerà el vostre Arduino DUE als seus límits i podria danyar-lo a llarg termini.

Dit això, el maquinari és principalment de 16 botons, 16 LED (un per cada pas) seqüenciador amb 5 botons addicionals per a funcions i 3 potenciòmetres. També he afegit un LED vermell després d’afegir una funció de gravació en directe.

Aquí teniu la llista de materials:

- 1x Arduino DUE

- 16x botons instantanis i sense tancament amb LEDs integrats (podeu utilitzar LEDs externs si ho preferiu, però recordeu d'utilitzar LEDs de baixa potència !!)

1x LED vermell (poca potència!)

- 5x botons instantanis, sense tancament

- Potenciòmetres lineals de 3x 10K de torn simple

- Presa mono jack femella de 6 x 6 mm

- 1x caixa de plàstic (he utilitzat una caixa de 190x140x70 mm)

- Connector de presa de muntatge de panell femella DIN de 2 pins de 5 pins (MIDI)

1x tauler de perfils de doble cara de 70x90 mm

- Tira de capçal de 2 files masculina de 2 pins de 40 pins (2,54 mm), millor si està xapada en or

- 1 optoacoblador H11L1

- 1x díode 1N4148

- Resistències de 23x 1000 ohm

- Resistències de 3x 220 ohm

- 2x transistors pnp BC547

… fil de soldadura, alguns cables, estació de soldadura, una eina de perforació … i temps lliure:)

Tingueu en compte que els botons de les imatges s’han substituït per un altre tipus de botons (fins i tot més econòmics …) a causa del rebot escandalós …

Temps necessari per completar el projecte: de 8 a 10 hores

AVÍS: SEMPRE porteu ulleres i guants de protecció durant la perforació. Es poden projectar cops de material calent als vostres ulls o entrar en contacte amb la pell i causar cremades o danys encara més greus a vosaltres o a les persones que us envolten

Pas 3: cablejats

Cablatges
Cablatges
Cablatges
Cablatges
Cablatges
Cablatges

Els botons de pas es connecten directament als pins Arduino del 22 (pas 1) al 37 (pas 16). La terra dels botons està encadenada en margarida i està connectada a la terra Arduino DUE. No és necessari que hi hagi resistències de tracció o desplegable, ja que les resistències de tracció integrades Arduino estan habilitades per programari (vegeu l’esbós).

El mateix passa amb els 5 botons addicionals (pins Arduino 2, 3, 4, 5 i 6), que s’utilitzen per a funcions diferents dels passos. També he col·locat un connector femella de 6,5 mm en paral·lel amb el botó "Inici" per poder reproduir i aturar les meves seqüències de forma remota.

Els LED estan connectats a la terra (cadena de margarida) i als pins DUE d'Arduino des del 38 (pas # 1) fins al 53 (pas # 16) en sèrie amb una resistència d'1K ohm cadascun per limitar el drenatge de corrent i preservar el microcontrolador.

Els potenciòmetres estan connectats tal com es mostra a la imatge adjunta. Tingueu en compte que la tensió de referència és de 3,3 V i no de 5 V. Les entrades utilitzades són A0, A1 i A2.

També vaig implementar dues sortides de disparador per a senyals d’arpegi, com les necessàries per arpegiar el sintetitzador vell dels anys 80, com el Korg Polysix i el Roland Juno 6/60. Estan connectats als pins A3 i A4, però podeu utilitzar pins digitals si preferiu ser senyals digitals. En cas que aneu a seqüenciar un sintetitzador compatible amb senyals V-Trig (activador de tensió), serà suficient una resistència de la sèrie d'1 k ohm per reduir el drenatge de corrent; en cas d’un sintetitzador S-Trig (switch trigger), necessitareu un circuit senzill de commutador de pnp (vegeu l’esquema adjunt).

Els circuits MIDI IN i OUT estan esquematitzats a les imatges adjuntes. Fixeu-vos que, contràriament a la majoria d’arduinos, Rx1 i Tx1 s’utilitzen per defecte a les plaques DUE en lloc de Rx0 i Tx0. Això és fantàstic perquè podeu penjar el vostre esbós sense necessitat de desconnectar Rx cada vegada. Tingueu en compte també que he utilitzat un optoacoblador H11L1 perquè no he estat capaç d'executar com hauria de ser un 6N138 comú dins del límit Arduino DUE 3.3V.

Pas 4: programari

L'esbós s'ha escrit dins de l'IDE Arduino i s'ha de penjar a la vostra placa Arduino DUE. No entraré en detalls sobre com penjar l'esbós al vostre arduino DUE. Si aquesta és la vostra primera experiència amb Arduino DUE, llegiu-ho. Si aquesta és la vostra primera experiència amb arduino IDE, llegiu-ho també.

Podeu descarregar el firmware actualitzat AQUÍ (enllaç github).

L’esbós es basa en l’excel·lent biblioteca MIDI FortySevenEffects. Haureu d’instal·lar la biblioteca al vostre IDE arduino.

Les notes de sortida MIDI assignades a cada bateria estan definides per la variable drumNote [STEPS_NUM] de l’esbós. Podeu canviar-les segons vulgueu.

El número de canal de sortida MIDI per a bateria està definit per defecte en "10".

No sóc un programador a la vida real i segur que hi ha millors maneres de codificar allò que necessitem aquí. Si sou un codificador amb algun suggeriment, us convidem! Envieu-me qualsevol variació que pugui augmentar l’eficiència / eficàcia del codi i l’inclouré a l’esbós principal (citant el col·laborador, òbviament!).

Pas 5: Guia d'inici ràpid

TAMBORS: SEQUENCIACIÓ PAS A PAS

Tan bon punt engegueu el seqüenciador (o el reinicieu), es carregarà una seqüència buida. El seqüenciador arrenca en mode d’edició, amb la primera barra mantinguda / bloquejada i el primer tambor (és a dir, kick) seleccionat. Això vol dir que, prement qualsevol botó de pas, assignareu immediatament "kick" a aquests passos. El volum que activarà el tambor es defineix per la posició del potenciòmetre de "volum" quan s'assigna el tambor al pas. En tornar a prémer un botó de pas assignat prèviament, desassignareu el tambor actual en aquest pas.

Si premeu el botó "Inici", veureu que els LEDs funcionen d'esquerra a dreta, de dalt a baix, jugant a "puntada" cada vegada que es creua un pas de puntada.

Si manteniu premut el botó "majúscula", veureu el LED del primer pas de la primera fila encès (és a dir, que es selecciona el primer tambor) i el LED del primer pas de la quarta fila (és a dir, que esteu bloquejat a la primera barra). Ara podeu canviar el tambor que voleu seqüenciar prement un altre botó de pas mentre manteniu premut "Maj". Després de seleccionar el nou tambor, deixeu anar "shift". Tots els LED s’apagaran (perquè no heu assignat el nou tambor a cap pas) i podeu començar a assignar el nou tambor a passos. Repetiu-ho per tots els tambors que necessiteu (fins a 12).

Ara que heu creat un bon patró, manteniu premut "majúscules" i desactiveu el pas més alt de la fila inferior (hauria de ser el primer pas de la quarta fila si heu adoptat el mateix disseny que he utilitzat): només teniu " s'ha desbloquejat "la seqüència que ara s'executarà sobre les 4 barres. Els LED bruts inferiors començaran a "moure", indicant quina barra s'està reproduint actualment (progressió de la barra). Notareu que només quan es reprodueix una seqüència a la primera barra, sense que els altres 3 compassos generin sons. Això es deu al fet que només heu assignat tambors a la primera barra, quedant els altres en blanc. Podeu omplir-los a mà (seleccioneu una barra nova prement un dels darrers 4 botons de pas mentre es manté premut "majúscula", seleccioneu un dels tambors, empleneu els passos, etc.) o copieu i enganxeu la seqüència de barres que heu creat a totes les barres entrant al mode d'edició (torneu a bloquejar a la primera barra) i premeu "gravar" (que ara assumeix la funció "enganxa") mentre es manté premut "majúscula". Més fàcil de fer del que es va dir.

TAMBORS: MODE DE REPRODUCCIÓ EN DIRECTE

En iniciar el seqüenciador es troba en mode d'edició. Per sortir del mode d'edició, heu de mantenir premut "Maj" i prémer el botó de barra actualment mantingut / bloquejat (el botó de pas de la 4a fila està activat). Això apagarà el LED de la barra bloquejada prèviament i desbloquejarà la seqüència. Ara esteu en mode de reproducció en directe.

En mode de reproducció en directe, en prémer qualsevol botó de pas s'activarà el tambor associat a aquest botó.

Si voleu gravar en directe la seqüència, comenceu la seqüència prement "reproduir" i, a continuació, premeu el botó "gravar" (només en mode de reproducció en directe). S'encendrà un LED vermell. Es gravarà la reproducció a la matriu del tauler de control del seqüenciador de bateria o qualsevol missatge de nota MIDI entrant (és a dir, des d’un teclat MIDI extern).

Altres funcions

Prement el botó "roll", es tocarà el tambor actiu a cada pas (en un roll). Funciona tant en els modes "pas a pas" com "reproducció en directe".

En prémer qualsevol botó de pas mentre es manté premut el botó "silenciar", el tambor associat a aquest pas es silenciarà (o no activarà). Funciona tant en els modes "pas a pas" com "reproducció en directe".

Podeu esborrar una seqüència de tambor específica prement el botó de pas relatiu mantenint premut el botó "REC".

Podeu esborrar tota la seqüència (restabliment suau) mantenint presionat el botó "Inici" durant més de 3 segons.

Podeu "balancejar" la vostra seqüència girant el potenciòmetre "swing".

Podeu desactivar / habilitar el ressò MIDI prement el botó "silenciar" mentre es manté premut el botó "Maj". Quan el ressò MIDI està activat (per defecte), la informació que hi hagi a la presa MIDI INPUT s’enviarà a la presa MIDI OUTPUT (només es fan ressò de la nota MIDI activada, desactivada, de la curvatura del pit, del retoc posterior i del canvi de control).

Tant l’entrada com la sortida del rellotge MIDI s’implementen i s’activen per defecte. En cas que no es rebi cap entrada de rellotge, el tempo s’estableix amb el potenciòmetre dedicat. En cas que es rebi una entrada de rellotge MIDI, el tempo es calcula a partir d’aquest i el potenciòmetre de tempo no respondrà. El rellotge MIDI sempre s’envia a la sortida MIDI.

Pas 6: Secció de ritme

La idea original era un seqüenciador de bateria MIDI de 64 passos "pur" per seqüenciar fins a 12 parts de bateria independents. Després d'algunes proves, em vaig adonar que també hauria estat bo controlar una línia de baix i vaig assignar la característica d'un to per pas variable només a la bateria més recent. Després d'això, vaig tornar a modificar el codi per poder canviar el to de cada bateria i controlar fins a 12 sintetitzadors. Una revisió més tard vaig afegir polifonia (polifonia per sintetitzador limitada a 3 per defecte).

Per concloure:

- mentre estigueu en mode LIVE, si s’activa la gravació LIVE i s’inicia la seqüència, podeu gravar polifònicament els missatges MIDI entrants entrants. La informació de parcel·la i volum s’emmagatzemarà. Es perden les dades sobre el pitch bend i aftertoutch. S’emmagatzemaran els missatges MIDI Control Change. Tingueu en compte que només teniu una ranura CC per canal, per pas.

- Si s'atura la seqüència, podeu enregistrar fins a 3 valors de to (acord) en un pas específic d'una barra específica mantenint premut el botó de pas de destinació i prement (al mateix temps o una per una) les tecles desitjades a la teclat connectat al port MIDI IN.

Adona't que:

- la nota desencadenada en un esglaó es "mata" al següent pas. Per augmentar la durada de la nota, actueu sobre el paràmetre VCA "release" del sintetitzador.

- al contrari que la bateria, les notes no es poden reproduir en un rodatge prement el botó "rodar".

- En gravar EN DIRECTE, les dades del canal MIDI entrants s’emmagatzemen al pas relatiu de "bateria" (canal MIDI núm. 1 -> "bateria" núm. 1, etc.).

Podeu esborrar una seqüència de sintetitzador específica prement el botó de pas "tambor" relatiu mantenint premut el botó "REC". Si torneu a prémer-la, també s’esborrarà la seqüència del tambor. Si es va enregistrar una seqüència CC, aquesta serà la primera a esborrar-se, seguint l'ordre CC -> Synth -> Tambor

Pas 7: desencadenants d'arpegi

Els sintetitzadors pre-MIDI dels primers anys 80 sovint estan equipats amb una entrada anomenada "disparador d'arpegi". En enviar un senyal trig de 2,5 a 5,0 V (V-trig o "activador de tensió") o posant a terra l'entrada de disparador d'arpegi (S-Trig o "activador de commutació"), podeu dir al sintetitzador que avanci un pas en una seqüència d'arpegi. Això podria ser difícil de gestionar amb un seqüenciador sense un gatell dedicat (de vegades sona "rimshot" des d'una sortida dedicada on / s'utilitza com a convenient per als sintetitzadors V-trig), però amb una placa de microcontrolador podeu gestionar fàcilment aquest senyal i control el vostre arpegi de sintetitzador tal i com ho volia dir la fàbrica.

Aquest seqüenciador de seccions rítmiques inclou la possibilitat d’activar l’arpegiador de dos sintetitzadors diferents, independentment.

L'ús és molt senzill: seleccioneu el tambor 11 o 12 (premeu el pas 11 o 12 mentre premeu "majúscules") i activeu els passos que voleu que l'arpegiador es mogui d'un pas. D'aquesta manera, podeu "programar" 1/16 d'una nota molt ajustada que dura arpegis regulars activant tots els passos, o 1/8 activant tots els altres passos. A més, podeu programar arpegis més complexos activant passos seguint un camí poc habitual.

Depenent del tipus de senyal d’activació admès pel sintetitzador que vulgueu controlar, necessitareu una senzilla modificació de maquinari: en cas de V-trig (és a dir, sintetitzadors Roland), col·loqueu una resistència d’1 Kohm en sèrie amb sortida de disparador arduino. En cas d'un S-trig (és a dir, sintetitzadors Korg), utilitzeu el diagrama esquemàtic connectat al pas "cablejat" per activar un interruptor de seguretat.

Pas 8: si les coses no funcionen …

Fins i tot un projecte relativament senzill com aquest probablement no funcionarà al 100% la primera vegada que l’engegueu. Aquí, per exemple, la correspondència entre botons i LED és crucial, i un cablejat sense igual farà que el seqüenciador sigui inútil.

Per tal de provar tots els diferents components que formen el seqüenciador de passos, vaig escriure un esbós de prova senzill (vegeu l’adjunt).

Podeu descarregar el firmware més recent de la prova AQUÍ (enllaç GitHub).

L’esbós de la prova funciona de la següent manera:

- Premeu un botó de pas: el LED corresponent hauria d’encendre’s i s’enviarà una nota MIDI al canal 10 a la sortida MIDI.

- Premeu un botó de funció: s'encendrà un dels primers 5 LED.

- gireu un potenciòmetre: els LEDS s’encendran en conseqüència (primera olla -> primera fila de LEDs, segona olla -> segona fila de LEDs, tercera olla -> tercera fila de LEDs).

- si es rep una nota MIDI activada, el primer LED parpellejarà.

Tingueu en compte que l’eco MIDI està habilitat per defecte. Això significa que si teniu un bucle MIDI entre un sintetitzador i MRSS, això podria causar problemes (he experimentat una nota doble previsible que s’activa la majoria de les vegades, però també s’han activat notes molt baixes i un teclat integrat generalment que no respon amb sintetitzadors amb MIDI actuant com MIDI Throu … depèn del sintetitzador). Si aquest és el cas, desactiveu el ressò MIDI prement el botó "silenciar" mantenint premut el botó "majúscula".

Recomanat: