Table des matières:

Séquenceur de section rythmique Arduino MIDI : 8 étapes (avec images)
Séquenceur de section rythmique Arduino MIDI : 8 étapes (avec images)

Vidéo: Séquenceur de section rythmique Arduino MIDI : 8 étapes (avec images)

Vidéo: Séquenceur de section rythmique Arduino MIDI : 8 étapes (avec images)
Vidéo: NOUVEAU - INSTRUMENT DE MUSIQUE ELECTRONIQUE MIDI - ABLETON LIVE + ARDUINO/TEENSY - DEMO 8 2024, Novembre
Anonim
Séquenceur de section rythmique Arduino MIDI
Séquenceur de section rythmique Arduino MIDI
Séquenceur de section rythmique Arduino MIDI
Séquenceur de section rythmique Arduino MIDI
Séquenceur de section rythmique Arduino MIDI
Séquenceur de section rythmique Arduino MIDI

Avoir une bonne boîte à rythmes logicielle est facile et bon marché aujourd'hui, mais l'utilisation d'une souris tue le plaisir pour moi. C'est pourquoi j'ai réalisé ce qui était initialement conçu comme un pur séquenceur de batterie MIDI matériel de 64 pas capable de déclencher jusqu'à 12 éléments de batterie (parties) différents, mais a ensuite évolué dans un séquenceur de section rythmique…

… c'est parti !

Étape 1: Comment ça marche

Ce matériel ne peut pas générer de sons par lui-même, mais séquence uniquement du matériel externe via MIDI. Cela signifie que vous aurez besoin d'un générateur de sons de vos sons de batterie (un échantillonneur ou un synthétiseur de batterie ou un PC avec votre logiciel de batterie préféré ou ce que vous préférez) capable d'être déclenché par des messages de note MIDI.

Il est principalement composé d'une matrice de 4 x 4 boutons (avec LEDs), un pour chaque pas d'une barre. L'ensemble de la séquence de 64 pas est composé de 16 pas multipliés par 4 mesures. Chaque pas correspond à 1/16e de note.

Il existe deux modes de fonctionnement: le mode direct et le mode édition.

En mode d'édition, vous pouvez réellement éditer votre séquence étape par étape en définissant quelle batterie jouera dans chaque étape.

Votre instrument matériel externe ("batterie") est déclenché en envoyant un message MIDI "note on" pour différents "numéros de note MIDI" sur le canal numéro "10". Par défaut, ces numéros de note sont

tambour #1 (c'est-à-dire kick) -> numéro de note MIDI "60"

tambour #2 (c'est-à-dire caisse claire) -> numéro de note MIDI "62"

tambour #3 (c'est-à-dire clap) -> numéro de note MIDI "64"

tambour n°4 (c'est-à-dire charleston) -> numéro de note MIDI "65"

tambour #5 -> numéro de note MIDI "67"

tambour #6 -> numéro de note MIDI "69"

tambour #7 -> numéro de note MIDI "71"

tambour #8 -> numéro de note MIDI "72"

tambour #9 -> numéro de note MIDI "74"

tambour #10 -> numéro de note MIDI "76"

tambour #11 -> numéro de note MIDI "77"

tambour #12 -> numéro de note MIDI "79"

Vous pouvez modifier ces valeurs (et le canal MIDI) dans le sketch si vous préférez.

En mode live, en appuyant sur les boutons de pas, vous pouvez jouer en direct de la batterie associée à chaque pas en envoyant des messages MIDI par série. Vous pouvez enregistrer en direct vos pressions sur les boutons et/ou les messages MIDI entrants.

Tant en mode live qu'en mode édition, vous pouvez couper (ou rétablir) une batterie, "rouler la lecture" de la batterie actuellement active et "swing" votre séquence.

Section rythmique ?

La plupart des séquenceurs de batterie sont des déclencheurs de parties de batterie purement MIDI, avec un numéro de note MIDI fixe pour chaque son de batterie. Dans ce cas, nous avons un "séquenceur de section rythmique" plus qu'un pur "séquenceur de batterie" car on peut même séquencer des synthétiseurs.

Lisez le GUIDE DE DÉMARRAGE RAPIDE pour plus de détails et une liste complète des fonctionnalités.

Étape 2: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

Ce projet est réalisé autour d'une carte Arduino DUE. J'ai essayé de garder le matériel aussi simple que possible, c'est-à-dire en évitant l'utilisation de pilotes LED. Arduino DUE n'est probablement pas la carte la plus appropriée pour gérer un tas de LED sans pilote de LED en raison de ses limites de courant de sortie (de 5 mA à 15 mA, selon la broche), mais c'est l'Arduino le plus rapide et le timing est tout en traitant avec des séquenceurs. Donc, gardez à l'esprit que CETTE configuration matérielle pousse probablement votre Arduino DUE à ses limites et pourrait l'endommager à long terme.

Ceci étant dit, le hardware est principalement un séquenceur de 16 boutons, 16 LEDs (une pour chaque pas) avec 5 boutons supplémentaires pour les fonctions et 3 potentiomètres. J'ai également ajouté une LED rouge après avoir ajouté une fonction d'enregistrement en direct.

Voici la nomenclature:

- 1x Arduino DUE

- 16x boutons poussoirs momentanés non verrouillables avec LED intégrées (vous pouvez utiliser des LED externes si vous préférez, mais n'oubliez pas d'utiliser des LED de faible puissance !!)

- 1x LED rouge (faible puissance !)

- 5x boutons poussoirs momentanés non verrouillables

- 3x 10K monotour, linéaires, potentiomètres

- 3x 6,5 mm mono jack femelle à montage sur panneau

- 1x boîtier en plastique (j'ai utilisé un boîtier de 190x140x70 mm)

- 2x connecteur femelle DIN 5 broches à montage sur panneau (MIDI)

- 1x planche perforée double face 70x90 mm

- 2x barrettes mâles 40 broches à une rangée (2,54 mm), mieux si plaqué or

- 1x optocoupleur H11L1

- 1x diode 1N4148

- 23 résistances de 1000 ohms

- 3 résistances 220 ohms

- 2x transistors BC547 pnp

… du fil à souder, des câbles, une station de soudure, un outil de perçage… et du temps libre:)

Veuillez noter que les boutons sur les photos ont été remplacés par un autre type de boutons poussoirs (encore moins chers…) à cause du rebond scandaleux…

Temps requis pour terminer le projet: 8 - 10 heures

AVERTISSEMENT: TOUJOURS porter des lunettes et des gants de protection pendant le perçage ! Des flocons de matières chaudes peuvent être projetés dans vos yeux ou entrer en contact avec votre peau et provoquer des brûlures ou des dommages encore plus graves à vous ou aux personnes qui vous entourent

Étape 3: Câblages

Câblages
Câblages
Câblages
Câblages
Câblages
Câblages

Les boutons de pas sont directement connectés aux broches Arduino de 22 (étape 1) à 37 (étape 16). La masse des boutons est connectée en guirlande et connectée à la masse Arduino DUE. Il n'y a pas besoin de résistances pullup ou pulldown étant que les résistances pullup intégrées Arduino sont activées par logiciel (voir le croquis).

Il en est de même pour les 5 boutons supplémentaires (broches Arduino 2, 3, 4, 5 et 6), utilisés pour des fonctions autres que les étapes. J'ai également placé un connecteur jack femelle 6,5 mm en parallèle du bouton "start" afin de pouvoir jouer et arrêter mes séquences à distance.

Les LED sont connectées à la terre (en guirlande) et aux broches Arduino DUE de 38 (étape 1) à 53 (étape 16) en série avec une résistance de 1K ohm chacune pour limiter la consommation de courant et préserver le microcontrôleur.

Les potentiomètres sont connectés comme indiqué sur l'image ci-jointe. Notez que la tension de référence est de 3,3 V et non de 5 V. Les entrées utilisées sont A0, A1 et A2.

J'ai également implémenté deux sorties de déclenchement pour les signaux d'arpège, comme celles nécessaires pour arpèger les vieux synthés des années 80 comme le Korg Polysix et le Roland Juno 6/60. Ils sont connectés aux broches A3 et A4, mais vous pouvez utiliser des broches numériques si vous préférez être des signaux numériques. Dans le cas où vous allez séquencer un synthé compatible avec les signaux V-Trig (voltage trigger), une résistance série 1k ohm pour réduire le drain de courant sera suffisante; dans le cas d'un synthé S-Trig (switch trigger), vous aurez besoin d'un simple circuit de commutation pnp (voir schéma ci-joint).

Les circuits MIDI IN et OUT sont schématisés dans les images jointes. Notez que, contrairement à la plupart des arduinos, Rx1 et Tx1 sont utilisés par défaut sur les cartes DUE au lieu de Rx0 et Tx0. C'est génial car vous pouvez télécharger votre croquis sans avoir besoin de déconnecter Rx à chaque fois. Notez également que j'ai utilisé un optocoupleur H11L1 car je n'ai pas pu faire fonctionner comme il se doit un 6N138 commun dans la limite Arduino DUE 3,3V.

Étape 4: Logiciel

Le croquis a été écrit dans l'IDE Arduino et doit être téléchargé sur votre carte Arduino DUE. Je n'entrerai pas dans les détails sur la façon de télécharger le croquis sur votre arduino DUE. Si c'est votre première expérience avec Arduino DUE, lisez ceci. S'il s'agit de votre première expérience avec arduino IDE, veuillez également lire ceci.

Vous pouvez télécharger le firmware mis à jour ICI (lien github).

L'esquisse s'appuie sur l'excellente bibliothèque MIDI FortySevenEffects. Vous devrez installer la bibliothèque dans votre IDE arduino.

Les notes de sortie MIDI attribuées à chaque batterie sont définies par la variable drumNote[STEPS_NUM] dans le sketch. Vous pouvez les changer à votre guise.

Le numéro de canal de sortie MIDI pour la batterie est réglé sur "10" par défaut.

Je ne suis pas un codeur dans la vraie vie et il existe certainement de meilleures façons de coder ce dont nous avons besoin ici. Si vous êtes un codeur avec une suggestion, vous êtes le bienvenu ! Veuillez m'envoyer toute variation pouvant augmenter l'efficacité/l'efficacité du code et je l'inclurai dans l'esquisse principale (en citant le contributeur évidemment !).

Étape 5: Guide de démarrage rapide

BATTERIE: SÉQUENÇAGE ÉTAPE PAR ÉTAPE

Dès que vous allumez votre séquenceur (ou le réinitialisez), une séquence vide sera chargée. Le séquenceur démarre en mode d'édition, avec la première mesure maintenue/verrouillée et la première batterie (c'est-à-dire le coup de pied) sélectionnée. Cela signifie qu'en appuyant sur n'importe quel bouton de pas, vous affecterez immédiatement un "coup de pied" à ces pas. Le volume de déclenchement de la batterie est défini par la position du potentiomètre "volume" lors de l'affectation de la batterie au pas. En appuyant à nouveau sur un bouton de pas précédemment affecté, vous désaffecterez la batterie actuelle sur ce pas.

Si vous appuyez sur le bouton "start", vous voyez vos LED courir de gauche à droite, de haut en bas, jouer "kick" à chaque fois qu'une étape de kick est franchie.

En maintenant le bouton "shift" enfoncé, vous verrez la LED du 1er pas sur la 1ère rangée allumée (ce qui signifie que le premier tambour est sélectionné) et la LED du premier pas sur la quatrième rangée (ce qui signifie que vous êtes verrouillé sur la première mesure). Vous pouvez maintenant changer le tambour que vous souhaitez séquencer en appuyant sur un autre bouton de pas tout en maintenant la touche "shift" enfoncée. Après avoir sélectionné le nouveau tambour, relâchez "shift". Toutes les LED s'éteignent (parce que vous n'avez assigné la nouvelle batterie à aucun pas) et vous pouvez commencer à assigner la nouvelle batterie aux pas. Répétez l'opération pour tous les tambours dont vous avez besoin (jusqu'à 12).

Maintenant que vous avez créé un joli motif, maintenez la touche "shift" enfoncée et désactivez l'étape en surbrillance sur la rangée du bas (ce devrait être la 1ère étape de la 4ème rangée si vous avez adopté la même mise en page que j'ai utilisée): vous avez juste " déverrouillé" la séquence qui s'étendra désormais sur les 4 barres. Les LED brutes du bas commenceront à "se déplacer", indiquant quelle mesure est actuellement jouée (progression de la mesure). Vous remarquerez que ce n'est que dans la première mesure qu'une séquence sera jouée, les 3 autres mesures ne générant aucun son. C'est parce que vous n'avez affecté de batterie qu'à la première mesure, les autres étant laissées vides. Vous pouvez les remplir à la main (sélectionner une nouvelle mesure en appuyant sur l'un des 4 derniers boutons de pas tout en maintenant enfoncé "shift", sélectionner une des batteries, remplir les pas etc. etc.) ou copier et coller la séquence de mesures que vous avez créée à toutes les mesures en entrant en mode édition (reverrouillage à la première mesure) et en appuyant sur "record" (qui assume désormais la fonction "coller") tout en maintenant enfoncé "shift". Plus facile à faire qu'à dire.

BATTERIE: MODE DE JEU EN DIRECT

Au démarrage, le séquenceur est en mode édition. Pour quitter le mode d'édition, vous devez maintenir la touche "shift" enfoncée et appuyer sur le bouton de la barre actuellement maintenu/verrouillé (le bouton de pas sur la 4ème rangée est allumé). Cela éteindra la LED de la barre précédemment verrouillée et déverrouillera la séquence. Vous êtes maintenant en mode de jeu en direct.

En mode de jeu en direct, en appuyant sur n'importe quel bouton de pas, la batterie associée à ce bouton sera déclenchée.

Si vous souhaitez enregistrer en direct votre séquence, démarrez la séquence en appuyant sur "play", puis appuyez sur le bouton "record" (uniquement en mode live play). Une LED rouge s'allumera. Votre jeu sur la matrice du panneau de contrôle du séquenceur de batterie ou tout message d'activation de note MIDI entrant (c'est-à-dire provenant d'un clavier MIDI externe) sera enregistré.

Autres fonctions

En appuyant sur le bouton "roll", la batterie actuellement active sera jouée à chaque pas (dans un roulement). Cela fonctionne à la fois dans les modes "pas à pas" et "live-play".

En appuyant sur n'importe quel bouton de pas tout en maintenant enfoncé le bouton "mute", la batterie associée à ce pas sera coupée (ou rétablie). Cela fonctionne à la fois dans les modes "pas à pas" et "live-play".

Vous pouvez effacer une séquence de batterie spécifique en appuyant sur le bouton de pas relatif tout en maintenant enfoncé le bouton "REC".

Vous pouvez effacer toute la séquence (soft reset) en maintenant enfoncé le bouton "start" pendant plus de 3 secondes.

Vous pouvez « swinguer » votre séquence en tournant le potentiomètre « swing ».

Vous pouvez désactiver/activer l'écho MIDI en appuyant sur le bouton "mute" tout en maintenant enfoncé le bouton "shift". Lorsque l'écho MIDI est activé (par défaut), toutes les informations présentes sur la prise MIDI INPUT seront envoyées à la prise MIDI OUTPUT (seules les notes MIDI activées, les notes désactivées, le pitch bend, l'aftertouch et les changements de contrôle sont renvoyés).

L'entrée et la sortie d'horloge MIDI sont implémentées et activées par défaut. Si aucune entrée d'horloge n'est reçue, le tempo est réglé avec le potentiomètre dédié. Dans le cas où une entrée d'horloge MIDI est reçue, le tempo est calculé à partir de celle-ci et le potentiomètre de tempo ne répondra pas. L'horloge MIDI est toujours envoyée à la sortie MIDI.

Étape 6: Section rythmique

L'idée originale était un séquenceur de batterie MIDI "pur" à 64 pas pour séquencer jusqu'à 12 parties de batterie indépendantes. Après quelques tests, j'ai remarqué qu'il aurait été agréable de contrôler une ligne de basse aussi, et j'ai attribué la fonction de hauteur variable par pas à la dernière batterie uniquement. Après cela, j'ai à nouveau modifié le code pour pouvoir changer la hauteur de chaque batterie et contrôler jusqu'à 12 synthétiseurs. Une révision plus tard j'ai ajouté la polyphonie (polyphonie par synthé limitée à 3 par défaut).

Pour résumer:

- en mode LIVE, si l'enregistrement LIVE est engagé et la séquence démarrée, vous pouvez enregistrer les messages d'activation de note MIDI entrants, de manière polyphonique. Les informations sur la hauteur et le volume seront stockées. Les informations de pitch bend et aftertoutch sont perdues. Les messages de changement de commande MIDI seront stockés. Gardez à l'esprit que vous n'avez qu'un seul emplacement CC par canal, par étape.

- Si la séquence est arrêtée, vous pouvez enregistrer jusqu'à 3 valeurs de hauteur (accord) à un pas spécifique d'une mesure spécifique en maintenant enfoncé le bouton de pas de destination et en appuyant (en même temps ou une par une) les touches souhaitées sur le clavier connecté au port MIDI IN.

Remarquerez que:

- la note déclenchée sur un pas est "tuée" sur le pas suivant. Pour augmenter la longueur de note, agissez sur le paramètre VCA "release" de votre synthétiseur.

- contrairement à la batterie, les notes ne peuvent pas être jouées en rouleau en appuyant sur le bouton "rouler".

- Lors d'un enregistrement LIVE, les données du canal MIDI entrant sont stockées dans l'étape "drum" relative (canal MIDI #1 -> "drum" #1 et ainsi de suite).

Vous pouvez effacer une séquence de synthé spécifique en appuyant sur le bouton de pas "drum" relatif tout en maintenant enfoncé le bouton "REC". Appuyez à nouveau dessus pour effacer également la séquence de batterie. Si une séquence CC a été enregistrée, elle sera la première à être effacée, puis en suivant l'ordre CC -> Synth -> Drum

Étape 7: Déclencheurs d'arpèges

Les synthés pré-MIDI du début des années 80 sont souvent équipés d'une "entrée de déclenchement d'arpège". En envoyant un signal de déclenchement de 2,5 à 5,0 V (V-trig ou "voltage trigger") ou en mettant à la terre l'entrée de déclenchement d'arpège (S-Trig ou "switch trigger"), vous pouvez indiquer au synthétiseur d'avancer d'un pas sur une séquence d'arpèges. Cela pourrait être difficile à gérer avec un séquenceur sans sortie de déclenchement dédiée (parfois des sons "rimshot" d'une sortie dédiée où / sont utilisés comme un expédient pour les synthés V-trig) mais avec une carte de microcontrôleur, vous pouvez facilement gérer ce signal et ce contrôle votre arpège de synthé comme prévu par l'usine.

Ce séquenceur de section rythmique inclut la possibilité de déclencher l'arpégiateur de deux synthétiseurs différents, indépendamment.

L'utilisation est très simple: sélectionnez la batterie 11 ou 12 (appuyez sur le pas 11 ou 12 tout en appuyant sur "shift") et activez les pas que vous souhaitez que l'arpégiateur déplace d'un pas. De cette façon, vous pouvez "programmer" des arpèges réguliers de 1/16e de note très serrés en activant tous les pas, ou 1/8e en activant un pas sur deux. De plus, vous pouvez programmer des arpèges plus complexes en activant des pas suivant un chemin irrégulier.

Selon le type de signal de déclenchement pris en charge par le synthé que vous souhaitez contrôler, vous aurez besoin d'une simple modification matérielle: dans le cas d'un V-trig (c'est-à-dire des synthés Roland), placez une résistance de 1 Kohm en série avec la sortie de déclenchement arduino. Dans le cas d'un S-trig (c'est-à-dire des synthés Korg), utilisez le schéma attaché à l'étape de « câblage » pour un déclencheur de commutation sûr.

Étape 8: Si les choses ne fonctionnent pas…

Même un projet relativement simple comme celui-ci ne fonctionnera probablement pas à 100% la première fois que vous l'allumerez. Ici, par exemple, la correspondance entre les boutons et les leds est cruciale, et un câblage non adapté rendra le séquenceur inutile.

Afin de tester tous les différents composants qui composent le séquenceur pas à pas, j'ai écrit un croquis de test simple (voir pièce jointe).

Vous pouvez télécharger le dernier firmware de test ICI (lien GitHub).

L'esquisse de test fonctionne comme suit:

- appuyez sur un bouton de pas: la LED correspondante doit s'allumer et une note MIDI sur le canal 10 sera envoyée sur la sortie MIDI.

- appuyez sur un bouton de fonction: une des 5 premières LED s'allumera.

- tourner un potentiomètre: les LED s'allumeront en conséquence (premier pot -> première rangée de LED, deuxième pot -> deuxième rangée de LED, troisième pot -> troisième rangée de LED).

- si une note MIDI on est reçue, la première LED clignotera.

Gardez à l'esprit que l'écho MIDI est activé par défaut. Cela signifie que si vous avez une boucle MIDI entre un synthé et MRSS, cela pourrait causer des problèmes (j'ai rencontré un déclenchement prévisible de double note la plupart du temps, mais aussi des notes très basses déclenchées et un clavier intégré généralement insensible avec des synthés avec MIDI agissant en tant que MIDI Throu… cela dépend du synthé). Si c'est le cas, désactivez l'écho MIDI en appuyant sur le bouton "mute" tout en maintenant enfoncé le bouton "shift".

Conseillé: