OscPocketO – Un synthétiseur et boîte à rythmes Arduino compact
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino UNO | 1 |
| Prise jack audio (femelle, 3,5 mm) | 1 |
| Fils de connexion femelle/femelle | 2 |
| Fils de connexion mâle/mâle | 2 |
Outils et machines nécessaires
- Fer à souder (générique)
À propos du projet
Téléchargez le code le plus récent et les instructions de construction : oscillator.se/arduino
Inspiré par d'autres machines de création musicale portables, j'ai étudié l'excellente bibliothèque Mozzi. Ne serait-il pas utile de pouvoir réaliser plusieurs synthétiseurs et boîtes à rythmes et les synchroniser en tempo ? C'est ainsi qu'est né OscPocketO : un studio musical portable utilisant uniquement un Arduino et un clavier LCD !
Contrôles de base
L'OscPocketO est contrôlé en changeant de mode avec le bouton SELECT. Utilisez UP pour augmenter une valeur, DOWN pour la diminuer, et LEFT/RIGHT pour déplacer le curseur.
La LED intégrée de l'Arduino clignote à chaque note jouée par l'OscPocketO.
Attention : connecter l'OscPocketO directement à votre chaîne hi-fi risque de la surcharger ! Utilisez un casque ou une table de mixage.
Si l'affichage LCD bug, appuyez répétitivement sur SELECT pour passer par le menu Tools – le LCD sera réinitialisé.
OscPocketO Synth
Modes disponibles
- START : Démarre/arrête le séquenceur.
- SYNC : Définit le mode de synchronisation.
- NONE : Aucun signal de synchronisation reçu ou émis.
- INT (Interne) : L'horloge interne est utilisée et les signaux de sync sont envoyés (mode Chef d'orchestre).
- EXT (Externe) : Le séquenceur est contrôlé par un signal externe, mais les signaux de sync sont toujours émis (mode Musicien).
- PATTERN : Sélectionne le pattern actuel.
- EDIT : Édite le pattern en cours. Les notes sont stockées sous forme de valeurs MIDI sur une mesure (16 x doubles-croches).
- STATE : Édite l'état des notes : X = activée, O = désactivée.
- TEMPO : Définit le tempo du séquenceur.
- GATE : Définit la durée de porte des notes jouées (en % d'une double-croche).
- SHIFT : Transpose (UP/DOWN) et décale la séquence (LEFT/RIGHT).
- WAVEFORM : Forme d'onde de l'oscillateur principal : SIN (sinus), TRI (triangle), SAW (dent de scie), SQUARE (carré).
- ATTACK : Temps d'attaque en ms.
- RELEASE : Temps de relâchement en ms.
- FILTERMODE : L'OscPocketO possède un filtre passe-bas dont la coupure peut être modulée :
- FIXED : Pas de modulation, utilise les valeurs Cutoff et Resonance.
- RANDOM : Modulation aléatoire de 0 à la valeur Cutoff.
- SLOW : Modulation sur ~4 mesures de 0 à 255.
- FAST : Modulation sur ~1 mesure de 0 à 255.
- CUTOFF : Fréquence de coupure du filtre (0-255).
- RESONANCE : Résonance du filtre (0-255).
- WAVEFORM2 : Active et définit la forme d'onde du second oscillateur : NONE (éteint), SIN, TRI, SAW, SQUARE.
- DETUNE2 : Désaccorde le second oscillateur par rapport au premier (valeur en Hz ajoutée à la fréquence).
- PLAY : Mode clavier. Le séquenceur s'arrête et les 4 premières notes du pattern sont mappées sur LEFT, UP, DOWN, RIGHT.
- TOOLS : Utilitaires (activer avec UP) :
- S : Sauvegarde les réglages et patterns en EEPROM.
- L : Charge depuis l'EEPROM.
- R : Crée un pattern aléatoire.
- B : Crée une ligne de basse basée sur la note courante.
- C : Copie le pattern courant vers la position suivante.
OscPocketO Drums
L'OscPocketO Drums peut jouer 5 sons simultanés, tous créés par synthèse analogique virtuelle grâce à la bibliothèque Mozzi : Kick, Snare, Hihat, Clap et Crash.
Modes
- START, SYNC, PATTERN : Identiques au synthé.
- EDIT : Édite le pattern. Les valeurs de notes sont construites en additionnant les valeurs correspondant aux sons :
- Kick = 1
- Snare = 2
- Hihat = 4
- Clap = 8
- Crash = 16
- Tom = 32
Exemple : Une valeur de 17 = Kick (1) + Crash (16).
- TEMPO, GATE : Identiques au synthé.
- EDITKICK : Fréquence du kick, temps de relâchement et pente (vitesse de chute de fréquence).
- EDITSNARE : Fréquence du snare, relâchement, pente.
- EDITHIHAT : Fréquence par paliers et temps de relâchement.
- EDITCLAP : Temps de relâchement.
- EDITCRASH : Temps de relâchement.
- EDITTOM : Fréquence du tom, relâchement, pente.
- PLAY : Mode solo. LEFT = Kick, UP = Snare, DOWN = Tom, RIGHT = Crash.
- TOOLS : S (sauvegarder), L (charger), R (aléatoire), B (pattern répétitif), C (copier).
Synchroniser plusieurs machines OscPocketO
Une machine doit être le Chef d'orchestre (Conductor) : elle envoie les données de synchronisation aux autres machines appelées Musiciens (Players).
1. Configuration
- Connectez les GND de toutes les machines OscPocketO ensemble (voir instructions de construction pour le câble).
- Chef d'orchestre : Start = Stop. Sync = Internal.
- Musiciens : Start = Stop. Sync = External. Start = Play. (L'ordre est important.)
- Connectez SYNC OUT du Chef vers SYNC IN du premier Musicien.
- Pour plusieurs Musiciens : chaînez SYNC OUT → SYNC IN en cascade.
2. Jouer
- Chef d'orchestre : Start = Play.
- Vous pouvez modifier les sons et changer de pattern sur toutes les machines. Le tempo ne se change que sur le Chef.
Construction du matériel
1. Shield LCD Keypad
Avant de fixer le shield, il faut s'assurer qu'il n'est pas connecté à la broche 10 (D10) de l'Arduino. D10 sert normalement à contrôler le rétroéclairage du LCD, mais nous l'utiliserons pour la sortie audio.
Pliez le broche du shield qui va dans D10 à 90°.
Une fois le shield fixé, les connexions sont :
- LCD : D4, D5, D6, D7, D8, D9
- Boutons : A1
Le bouton RST réinitialise l'Arduino et n'est pas utilisé par le logiciel.
2. Prise jack audio
La prise jack se connecte à D10 et GND. La bibliothèque Mozzi utilise par défaut D9, mais comme cette broche est occupée par le shield LCD, nous devons modifier la bibliothèque (voir section Logiciel).
Soudez un fil coloré sur le « tip » (signal) et un fil noir sur la sleeve (GND). Connectez le fil coloré à D10 (sur la soudure au dos de l'Arduino, puisque le shield est déjà en place) et le fil noir au GND du shield.
3. Entrée et sortie de synchronisation
Coupez les câbles femelle/femelle en deux et soudez une moitié sur D11 (SYNC IN), une sur D12 (SYNC OUT) et une sur GND.
4. Boîtier
Pour la durabilité, placez l'OscPocketO dans un boîtier et fixez les câbles et la prise jack.
5. Câble de synchronisation/masse
Prenez un long câble mâle/mâle, retirez l'isolation au milieu, et soudez un morceau de câble mâle coupé. Les trois (ou plus) broches de fin sont maintenant connectées ensemble.
Installation du logiciel
Connectez votre Arduino à l'ordinateur avec l'IDE Arduino.
Installer et configurer la bibliothèque Mozzi
- Téléchargez et installez Mozzi selon les instructions : sensorium.github.io/Mozzi/download
- Par défaut, Mozzi sort sur D9. Changez-le pour D10 :
- Dans le dossier des bibliothèques Mozzi, ouvrez
AudioConfigStandardPlus.hdans un éditeur de texte. - Modifiez les 4 lignes suivantes en échangeant A et B :
// Used internally. If there was a channel2, it would be OCR1B.
#define AUDIO_CHANNEL_1_OUTPUT_REGISTER OCR1B
#define AUDIO_CHANNEL_2_OUTPUT_REGISTER OCR1A
(...)
#define AUDIO_CHANNEL_1_PIN TIMER1_B_PIN //defined in TimerOne/config/known_16bit_timers.h
#define AUDIO_CHANNEL_2_PIN TIMER1_A_PIN
Installer le sketch OscPocketO
Choisissez la version Synth ou Drums. Ouvrez code_synth/code_synth.ino ou code_drums/code_drums.ino dans l'IDE Arduino et téléversez.
Code
- Code pour Synth et Boîte à rythmes.
Pas d'aperçu (téléchargement uniquement).
Schéma
Processus de fabrication
- Guide expert des machines de perçage et taraudage : personnalisation et polyvalence
- Machines à scie à ruban : révolutionner la coupe industrielle des métaux
- Optimisez la coupe métal et bois avec une scie à ruban haute performance
- Usinage 5 axes avancé & multitâche : précision et efficacité
- Comprendre les machines-outils de fraisage : types, fonctions et applications
- Comprendre les machines d'alésage et de fraisage : fonctionnement et applications
- Comprendre les tours et fraiseuses CNC : fonctions, avantages et applications
- Maîtriser les Tours : Types, Classifications et Applications Pratiques
- Perceuses à Avance Manuelle vs Avance Automatique : Guide Complet