Table des matières:

Synthétiseur arpégiateur (Mosquito I): 6 étapes
Synthétiseur arpégiateur (Mosquito I): 6 étapes

Vidéo: Synthétiseur arpégiateur (Mosquito I): 6 étapes

Vidéo: Synthétiseur arpégiateur (Mosquito I): 6 étapes
Vidéo: The Wiggler II 2024, Novembre
Anonim
Synthétiseur arpégiateur (Mosquito I)
Synthétiseur arpégiateur (Mosquito I)

Mosquito I est un petit synthétiseur arpégiateur qui utilise un Arduino Nano et la bibliothèque de synthèse sonore Mozzi. Il peut jouer plus de vingt séquences de 8 pas, mais vous pouvez ajouter autant de séquences personnalisées que vous le souhaitez. Il est relativement simple à mettre en place et ne nécessite pas beaucoup de pièces.

Fournitures:

  • Arduino Nano (ou n'importe quel Arduino devrait vraiment fonctionner)
  • 5 potentiomètres (linéaire 10K)
  • 2 boutons poussoirs
  • 1 LED
  • 1 résistance (330 ohms)
  • 2 ea Résistance (1K)
  • 1 résistance (2K)
  • 1 condensateur électrolytique (100 uF)
  • 1 condensateur en céramique (33 nF)
  • 1 prise stéréo
  • Brancher le fil
  • Planche à pain

Étape 1: Configuration de l'Arduino

Configuration de l'Arduino
Configuration de l'Arduino
Configuration de l'Arduino
Configuration de l'Arduino

Tout d'abord, plaçons le Nano sur la maquette et configurons notre puissance:

  1. Placez le Nano sur la planche à pain. Placez comme indiqué dans l'image ci-dessus. Il doit chevaucher le canal central de la planche à pain. Vous voudrez qu'il soit situé vers une extrémité de la planche à pain, avec le port USB faisant face à ce côté. De cette façon, le câble ne gênera pas lorsque nous le brancherons. Si vous utilisez un Arduino plus grand tel que Uno ou Mega, vous ne le monterez pas sur la maquette bien sûr.
  2. Connectez les rails d'alimentation à Arduino. Connectez l'un des rails positifs (rouges) de votre maquette à la broche 5V de l'Arduino à l'aide d'un fil ou de cavaliers. Connectez ensuite l'un des rails négatifs (bleus) à l'une des broches GND du Nano.
  3. Connectez les rails d'alimentation les uns aux autres. Pour alimenter les rails des deux côtés de la planche à pain, connectez les rails de chaque côté de la planche à pain les uns aux autres en faisant passer un fil du rail positif d'un côté au rail positif de l'autre côté. Répétez cette opération avec les rails négatifs.

Étape 2: Ajout des contrôles

Ajout des contrôles
Ajout des contrôles

Mosquito I utilise cinq potentiomètres et deux boutons pour les commandes.

Potentiomètres:

  1. Placez les pots sur la planche à pain. Placez les pots de manière à ce que chaque épingle soit sur sa propre rangée.
  2. Connectez les pots aux rails d'alimentation. Connectez la broche du côté gauche de chaque pot (si vous regardez du côté du bouton) à l'un des rails négatifs de la planche à pain. Connectez la broche du côté droit de chaque pot à l'un des rails positifs de la planche à pain.
  3. Connectez les pots à Arduino. Connectez la broche centrale de chaque pot à l'une des broches analogiques de l'Arduino. La broche centrale du premier pot se connecte à A0, le deuxième pot à A1 et ainsi de suite, le dernier pot étant connecté à A4.

Boutons poussoir:

  1. Placez les boutons sur la planche à pain. Placez les deux boutons poussoirs sur la planche à pain de manière à ce qu'ils chevauchent le canal central.
  2. Connectez les côtés positifs. Sur un côté de la planche à pain, connectez l'une des broches du bouton-poussoir au rail positif.
  3. Connectez les côtés négatifs. Placez l'une des résistances 1K sur la maquette de sorte qu'une extrémité soit connectée à la broche inutilisée du bouton-poussoir et que l'autre côté de la résistance se connecte au rail négatif.
  4. Bouton de connexion à Arduino. Faites passer un fil sur la rangée qui relie le bouton au rail négatif à la broche D2. Faites de même avec l'autre bouton mais connectez-le à D3.

Étape 3: Ajout de sorties

Ajout de sorties
Ajout de sorties

Nous émettons l'audio à partir de la broche 9 et faisons clignoter une LED à la première étape de chaque séquence. Voici comment configurer le matériel pour cela.

LED

  1. Placez une LED dans un espace vide sur la planche à pain.
  2. Connectez la branche négative (courte) de la LED au rail négatif.
  3. Placer une résistance de limitation de courant. Connectez un côté d'une résistance de 330 ohms à la branche positive (longue) de la LED. Connectez l'autre côté de la résistance à la broche D4 de l'Arduino.

Sortie audio

  1. Placez le réseau RC. Le signal de sortie de l'Arduino provient de la broche 9 mais le signal peut être un peu plus chaud que ce que certains haut-parleurs peuvent gérer. Pour le ramener à quelque chose de plus proche du niveau de la ligne, j'ai ajouté un réseau RC (basé sur un design de Notes & Volts). Placez les condensateurs 33nF et 100uF, ainsi que la résistance 2K comme indiqué sur l'image/le schéma. Assurez-vous que le condensateur électrolytique 100uF est connecté avec la bonne polarité (la branche positive/longue allant à la broche 9 sur l'Arduino et la branche négative/courte connectée à la prise).
  2. Connectez le côté négatif de la prise audio à la terre. Les connexions jack audio varient légèrement en fonction du type que vous utilisez, mais elles fonctionnent généralement toutes de la même manière. Nous devons connecter le manchon du jack à la terre. Ceci est parfois marqué d'un symbole moins ou étiqueté comme « manche », « anneau » ou « gnd ». S'il n'y a pas d'étiquettes sur votre prise audio, vous devrez peut-être consulter la fiche technique ou simplement inspecter attentivement la prise et voir si vous pouvez déterminer quelle broche est connectée au manchon ou à la bague extérieure de la prise.
  3. Connectez le côté positif de la prise audio au côté négatif du condensateur 100uF. Notre signal audio circule maintenant de la broche 9 de l'Arduino à travers le réseau RC et émerge du côté négatif du condensateur 100uF. Nous allons le connecter au côté positif de notre prise audio. Ceci est généralement marqué d'un symbole plus ou peut être étiqueté "pourboire". Encore une fois, s'il n'est pas étiqueté, vous devrez peut-être l'inspecter pour déterminer quelle broche se connectera à la pointe de la prise. De plus, si vous utilisez une prise stéréo, il peut y avoir une connexion L tip et R tip. Étant donné que nous émettons un signal mono, vous pouvez simplement vous connecter à l'une des connexions de pointe.

Important: si vous trouvez que l'audio est trop silencieux, vous pourrez peut-être éliminer le réseau RC à l'étape 1 et vous connecter directement à l'audio à partir de la broche 9 de l'Arduino. Cela devrait être correct si vous connectez l'audio à quelque chose avec un préampli comme des haut-parleurs d'ordinateur externes où vous avez un bouton de volume, mais je ne le recommanderais pas pour des choses comme des écouteurs, des écouteurs ou un câblage direct vers un haut-parleur. Si vous décidez d'éliminer le réseau RC, je vous suggère de baisser complètement le volume de vos haut-parleurs avant de démarrer l'Arduino, puis d'augmenter progressivement le volume pour éviter de souffler vos haut-parleurs.

Une fois que vous avez tout configuré, vérifiez que toutes les connexions sont correctes et correspondent à l'image et au schéma ci-dessus.

Étape 4: Téléchargement du code

Maintenant que le matériel est entièrement configuré, nous sommes prêts à nous attaquer au côté logiciel:

  1. Lancez l'IDE Arduino. Sur votre ordinateur, lancez l'IDE Arduino (si vous ne l'avez pas, vous pouvez le télécharger depuis
  2. Téléchargez la bibliothèque Mozzi. La bibliothèque Mozzi est ce qui nous permet d'utiliser notre Arduino comme synthétiseur. Pour obtenir cette bibliothèque dans votre IDE, accédez à la page Mozzi github https://sensorium.github.io/Mozzi/download/. Cliquez sur le bouton vert "Code" et choisissez Télécharger ZIP.
  3. Installez la bibliothèque Mozzi à partir du fichier zip. Dans l'IDE Arduino, accédez à Sketch-> Inclure la bibliothèque-> Ajouter une bibliothèque. ZIP… Accédez au fichier zip que vous avez téléchargé pour l'ajouter. Vous devriez maintenant voir Mozzi répertorié dans la section Sketch->Include Library.
  4. Téléchargez le code Mosquito I Arduino. Vous pouvez l'obtenir sur mon site github https://github.com/analogsketchbook/mosquito_one. (Notez que les schémas y sont également disponibles si vous en avez besoin pour référence de câblage.
  5. Connectez l'Arduino à l'ordinateur et téléchargez le code.

Étape 5: s'amuser

C'est ça. Vous devriez pouvoir connecter vos haut-parleurs à la prise audio et entendre le doux son de la synthèse arpégée de cet ittybitty Nano ! Si vous n'entendez rien au début, essayez de centrer les boutons sur tous les potentiomètres pour vous assurer que vous obtenez des valeurs de départ décentes.

Voici à quoi servent les contrôles:

Pots:

Rate: contrôle la vitesse de lecture du séquenceur. Le baisser joue des notes discrètes en séquence. En le tournant vers le haut, les notes se mélangent pour créer de toutes nouvelles formes d'onde.

Legato: Le deuxième potentiomètre contrôle la longueur du legato ou de la note. Le tourner davantage vers la gauche produit des notes courtes et sticatto, tandis que le tourner vers la droite produit des notes plus longues.

Pitch: Ceci définit le pitch de base pour la séquence. Le contrôle de hauteur définit des valeurs MIDI, il augmente/diminue donc la hauteur en demi-tons plutôt qu'un changement de hauteur continu.

Phase: Tourner ce bouton vers la droite introduit un subtil effet de phase. Techniquement parlant, cela provoque un léger désaccord des deux oscillateurs du Mosquito I, ce qui provoque la mise en phase. Cependant, ce n'est pas un suivi avec la hauteur, donc l'effet de phasage est probablement plus perceptible sur les notes de hauteur inférieure.

Filter: ce bouton contrôle la fréquence de coupure d'un filtre passe-bas. Le tourner vers la gauche coupe les hautes fréquences produisant un son plus étouffé, tandis que le tourner vers la droite produit un son plus brillant.

Boutons:

Mosquito a plus de vingt séquences différentes qu'il peut jouer par défaut. Les boutons poussoirs vous permettent de sélectionner la séquence en cours de lecture. Un bouton vous déplace vers le haut dans la liste des séquences et l'autre vers le bas de la liste.

Étape 6: personnalisation

Personnalisation
Personnalisation

J'ai ajouté un tas de séquences par défaut, principalement des gammes différentes, mais vous pouvez personnaliser le code assez facilement pour modifier la séquence de notes jouées, en ajouter de nouvelles ou modifier le nombre de notes dans une séquence. Vous trouverez ci-dessous les détails de la procédure au cas où vous souhaiteriez le personnaliser.

Modification des notes dans la séquence existante

Les séquences sont stockées dans un tableau de tableaux appelé NOTES. Chaque note est stockée en tant que valeur de note MIDI, donc si vous souhaitez modifier les notes dans une séquence particulière, changez simplement les numéros de note MIDI pour cette séquence. La configuration par défaut consiste à jouer 8 pas par séquence, vous ne pouvez donc avoir que 8 valeurs MIDI dans une séquence (voir ci-dessous si vous souhaitez avoir des longueurs de séquence différentes).

Une chose à noter, le bouton de hauteur ajoute un décalage de note aux valeurs MIDI spécifiées dans le tableau NOTES. Lorsque le bouton est centré, il joue les notes MIDI indiquées dans le tableau, mais lorsque vous tournez le bouton de hauteur, il ajoute ou soustrait un demi-ton aux notes jouées.

Ajout de nouvelles séquences

Vous pouvez ajouter de nouvelles séquences au tableau NOTES en ajoutant simplement un nouveau tableau de 8 notes à la fin de la liste. Si vous faites cela, vous devrez également modifier la valeur de la variable numSequences pour qu'elle corresponde au nouveau nombre de séquences. Par exemple, le tableau NOTES a 21 séquences par défaut, donc la variable numSequences est définie sur 21. Si vous ajoutez une nouvelle séquence, vous devrez remplacer la variable numSequences par 22.

Vous pouvez ajouter autant de nouvelles séquences que vous le souhaitez.

Modification de la longueur de la séquence

Si vous souhaitez modifier la longueur de vos séquences (si vous voulez dire une séquence de 4 ou 16 étapes), vous pouvez le faire, mais le seul inconvénient est que toutes les séquences doivent avoir la même longueur. Vous devrez également définir la variable numNotes pour qu'elle corresponde à la longueur de vos séquences.

Autres changements

Il existe un certain nombre d'autres personnalisations possibles, telles que le changement de type de forme d'onde, les paramètres/valeurs de filtre, qui dépassent le cadre de ce didacticiel. Comprendre le code Mozzi peut être un peu difficile au début, mais j'ai essayé de documenter le code autant que possible pour montrer ce que font les différentes parties du code.

Il y a quelques parties principales du code de Mozzi qui ont des utilisations assez spécifiques et je les ai énumérées ci-dessous pour vous donner une idée de leur utilisation:

  • setup() - Si vous avez programmé pour Arduinos avant de vous familiariser avec cette fonction et qu'elle est à peu près utilisée de la même manière dans Mozzi. Nous l'utilisons principalement pour configurer les paramètres par défaut des oscillateurs, des filtres, etc.
  • updateControl() - C'est là que la part du lion du code Mozzi fait son travail. C'est là que nous lisons les valeurs des potentiomètres et des boutons, mappons et transformons ces valeurs pour alimenter le synthétiseur, et où le séquençage est effectué.
  • updateAudio() - Ceci est la sortie finale de la bibliothèque Mozzi. Typiquement, le code ici est très petit et maigre, car cette fonction est utilisée par Mozzi pour maximiser tous les cycles d'horloge qu'il peut. Comme vous pouvez le voir dans le code du moustique, cela peut être un peu énigmatique, mais tout ce que nous faisons essentiellement en combinant/multipliant nos différentes formes d'onde, puis en les décalant pour s'adapter à une plage de nombres spécifique. Il est préférable de garder cette fonction très légère (pas d'appels série ou de lecture de broches) et de placer la plupart des éléments dans la fonction controlUpdate() à la place. La documentation de Mozzi détaille cela plus en détail.

Conseillé: