Table des matières:

Keytar Hero (Utiliser une manette de guitare Wii comme synthétiseur) : 7 étapes (avec photos)
Keytar Hero (Utiliser une manette de guitare Wii comme synthétiseur) : 7 étapes (avec photos)

Vidéo: Keytar Hero (Utiliser une manette de guitare Wii comme synthétiseur) : 7 étapes (avec photos)

Vidéo: Keytar Hero (Utiliser une manette de guitare Wii comme synthétiseur) : 7 étapes (avec photos)
Vidéo: Двойной комплект рок-группы на Garageband 2024, Juillet
Anonim
Image
Image
Étape 1: Raspberry Pi (configuration initiale)
Étape 1: Raspberry Pi (configuration initiale)

Les jeux Guitar Hero étaient à la mode il y a une douzaine d'années, il y a donc forcément beaucoup de vieux contrôleurs de guitare qui traînent et prennent la poussière. Ils ont beaucoup de boutons, de boutons et de leviers, alors pourquoi ne pas les réutiliser à bon escient ? Le contrôleur de guitare ne produit normalement aucun son tout seul, mais dans ce tutoriel, je vais vous montrer comment convertir un contrôleur Wii Guitar Hero pour qu'il puisse être joué comme un synthétiseur.

Fournitures

  • Manette Guitar Hero Wii
  • Planche de dérivation Nunchucky (disponible sur Adafruit ici)
  • 4 fils de cavalier (femelle à femelle)
  • 2 connecteurs à sertir (facultatif)
  • Raspberry Pi (3 B+ ou 4 de préférence)
  • Carte MicroSD de 16 Go

Étape 1: Étape 1: Raspberry Pi (configuration initiale)

Un Raspberry Pi est le cerveau et les muscles de ce projet, donc la première chose que nous devrons faire est d'en configurer un pour notre projet. J'ai essayé ce projet sur un Raspberry Pi 3 B+ et un 4, et ils semblent tous les deux bien fonctionner.

Les Raspberry Pi sont des micro-ordinateurs qui stockent tout sur une carte microSD au lieu d'un disque dur… y compris le système d'exploitation. La façon typique de les utiliser est de télécharger le dernier système d'exploitation et de graver une image de celui-ci sur une carte microSD comme suit:

  • Sur un PC ou un ordinateur portable séparé, accédez à
  • Téléchargez le dernier système d'exploitation Raspbian. (Buster au moment d'écrire ces lignes). Il existe plusieurs versions disponibles sur la page qui donnent plus ou moins de logiciels inclus selon vos préférences. Ils devraient tous fonctionner correctement, mais j'aime utiliser l'option "Raspbian Buster avec le bureau et les logiciels recommandés", car elle comprend des IDE de programmation et d'autres applications pratiques. Le moyen le plus simple est de télécharger la version zip.
  • Gravez l'image Raspbian sur la carte microSD. Il existe de nombreuses applications que vous pouvez utiliser pour graver l'image Raspbian sur votre carte microSD, mais j'ai utilisé le programme balenaEtcher que vous pouvez obtenir ici. Insérez la carte microSD dans votre ordinateur et lancez balenaEtcher. Pour l'image disque, sélectionnez le fichier zip que vous avez téléchargé, puis sélectionnez votre carte SD et appuyez sur flash. L'outil décompressera les fichiers d'image disque et les gravera sur la carte SD. IMPORTANT: assurez-vous que le lecteur que vous sélectionnez est la carte microSD… l'outil écrasera le lecteur que vous spécifiez, alors assurez-vous d'avoir choisi le bon.
  • Allumez votre Raspberry Pi. Insérez la carte microSD dans votre Raspberry Pi. Connectez votre alimentation, votre souris, votre clavier et vos haut-parleurs. Si vous suivez les instructions, c'est assez explicite… définissez votre emplacement/heure, définissez un mot de passe et connectez le WiFi.

Il s'agit d'une configuration standard pour un Raspberry Pi, donc si vous avez besoin de plus de détails, vous pouvez les trouver ici. Nous ferons le reste de nos étapes sur le Raspberry Pi.

Étape 2: Étape 2: Activer I2c

Étape 2: Activer I2c
Étape 2: Activer I2c

Le contrôleur Guitar Hero utilise i2c pour communiquer (i2c est un protocole assez courant utilisé par les appareils électroniques pour communiquer entre eux), nous devons donc activer cette fonctionnalité sur le Raspberry Pi:

  • Installez les bibliothèques pour i2c. Les bibliothèques i2c semblent maintenant faire partie de la version standard de Buster, mais juste au cas où, nous exécuterons le programme d'installation pour elles. Ouvrez un shell (il y a une icône correspondante dans la barre des tâches en haut) et tapez ce qui suit:

    • sudo apt-get install -y python-smbus
    • sudo apt-get install -y i2c-tools
  • Activez i2c sur Raspberry Pi. Dans votre shell, tapez: sudo raspi-config. Cela fera apparaître votre fenêtre de configuration. Flèche vers le bas jusqu'à InterfacingOptions->I2C pour activer i2c pour l'appareil. Pour sortir de la fenêtre, flèche droite vers Retour puis vers Terminer pour enregistrer les paramètres.
  • Redémarrez. Dans votre shell, tapez: sudo reboot
  • Définissez des paramètres i2c personnalisés. Le débit en bauds par défaut de l'i2c (100k) semble parfois dérouter la guitare, nous allons donc le ralentir à 50k comme suit:

    • Dans un shell tapez: sudo nano /boot/config.txt
    • Cela ouvrira votre fichier de configuration dans un éditeur de texte. Flèche vers le bas et trouvez la ligne qui dit dtparam=i2c_arm=on. S'il est commenté, décommentez-le. Si vous n'avez pas cette ligne, ajoutez-la. Au-dessous de cette ligne, ajoutez également les éléments suivants:

      • dtparam=i2c1=on
      • dtparam=i2c1_baudrate=50000
    • Appuyez sur Ctrl + O pour enregistrer le fichier de configuration, puis appuyez sur Ctrl + X pour quitter.
  • Redémarrez. Dans votre shell, tapez: sudo reboot

Étape 3: Étape 3: Installer Pure Data

Étape 3: Installez Pure Data
Étape 3: Installez Pure Data
Étape 3: Installez Pure Data
Étape 3: Installez Pure Data

Pour les sons de synthétiseur, nous utiliserons un programme appelé Pure Data. Il s'agit d'un outil d'affichage sonore et interactif génératif qui existe depuis un certain temps. Il possède quelques fonctionnalités qui le rendent idéal pour ce projet… il possède une interface utilisateur basée sur des nœuds qui est assez facile à utiliser, et il peut recevoir des signaux de sources externes telles que des scripts python.

  • Installez Pure Data. Dans un shell de type: sudo apt-get install puredata
    • Cela devrait installer le logiciel sur votre Raspberry Pi, mais s'il se plaint dans le shell de ne pas pouvoir localiser tous les fichiers dont il a besoin, essayez ceci:

      • sudo apt-get mise à jour
      • Ensuite, exécutez à nouveau la commande d'installation: sudo apt-get install puredata
    • Pendant l'installation, il vous demandera si vous souhaitez créer des répertoires pour les extensions, vous pouvez dire Oui.
  • Lancez Pure Data. S'il est installé correctement, vous devriez voir le programme répertorié dans le menu Démarrer du bureau sous Son et vidéo. Exécutez-le pour vous assurer qu'il se lance.
  • Configurez l'audio Pure Data. L'audio dans Pure Data n'est généralement pas activé par défaut, vous devrez donc l'activer.

    • Réglez la sortie audio sur ALSA. Lorsque Pure Data se lance, vous devriez voir sa fenêtre de console. Allez dans le menu Média et sélectionnez ALSA comme sortie. Vous pouvez voir des messages d'avertissement dans le shell de la console indiquant qu'il ne peut pas trouver certains fichiers, mais vous pouvez l'ignorer.
    • Activez l'audio DSP. Dans la fenêtre de la console, cochez la case indiquant DSP.
  • Testez la sortie audio. Dans la fenêtre de la console Pure Data, accédez à Media->Test Audio & MIDI. Cela ouvrira un fichier de test que nous pouvons utiliser pour nous assurer que Pure Data fonctionne et que nous pouvons entendre l'audio. Allumez vos haut-parleurs mais maintenez-les à un volume faible au début (parfois, le son peut être très fort par défaut). Dans le fichier de test, sur le côté gauche, vous devriez voir une section intitulée Test Tones. Cliquez d'abord sur la case qui dit 60 et voyez si vous entendez un son de vos haut-parleurs. Sinon, essayez de cliquer sur la case 80, puis montez vos haut-parleurs jusqu'à ce que vous entendiez du son. Si vous entendez un son, essayez de faire glisser la case qui dit Pitch à droite des tonalités de test où vous pouvez modifier la fréquence des tonalités et voir ce qui se passe.

Si vous parvenez à lancer Pure Data et à entendre un son provenant du patch de test, vous êtes prêt à passer à l'étape suivante. Mais Pure Data peut être un peu difficile à propos de la sortie audio la première fois, donc si vous n'obtenez toujours pas de son, essayez ce qui suit:

  • Il est possible que le son soit acheminé via le câble HDMI, donc pour le forcer à utiliser la prise casque:

    • Dans un shell de type: sudo raspi-config
    • Allez dans Options avancées-> Audio-> Forcer la prise 3,5 mm (« casque »)
  • Essayez de redémarrer. Parfois, cela fait l'affaire.
  • Vérifiez vos haut-parleurs et votre connexion au Raspberry Pi.

Étape 4: Étape 4: Connecter la guitare

Étape 4: Connecter la guitare
Étape 4: Connecter la guitare
Étape 4: Connecter la guitare
Étape 4: Connecter la guitare
Étape 4: Connecter la guitare
Étape 4: Connecter la guitare

Le moyen le plus simple de connecter le contrôleur de guitare au Raspberry Pi est d'utiliser une carte de dérivation peu coûteuse telle que le Nunchucky*. Cette carte vous permet d'accéder au signal provenant de la guitare sans couper la prise ni casser la guitare. D'un côté de la planche se trouvent des traces plates conçues pour s'insérer parfaitement dans la prise provenant de la guitare. Il y a aussi deux petites encoches qui permettent au bouchon de s'enclencher en l'empêchant ainsi de se desserrer. Les traces mènent à quatre broches d'en-tête sur le côté opposé de la carte.

Remarque: le Nunchucky est livré avec des broches d'en-tête, mais elles ne sont pas soudées, vous devrez donc le faire vous-même. Pour le mien, j'ai utilisé des broches d'en-tête à 90 degrés à la place, ce qui lui permet de rester à plat dans le projet final.

Vous aurez besoin de quatre fils pour connecter le Nunchucky au Raspberry Pi. Connectez les fils des broches de l'en-tête Nunchucky aux broches GPIO du Raspberry Pi comme suit:

  • 3.3v -> Broche 1
  • Données -> Broche 3
  • Clique -> Broche 5
  • Gnd -> Broche 9

Dans mon projet, j'ai utilisé des connecteurs à sertir pour les fils afin qu'ils ne se retirent pas aussi facilement. Mais si vous n'avez pas de connecteurs à sertir, quatre cavaliers individuels femelle-femelle fonctionneront bien. Si vous utilisez les connecteurs à sertir, assurez-vous de faire attention à l'ordre des fils sur les broches d'en-tête et les broches GPIO. Notez également que sur les broches GPIO, nous sautons la broche 7. Pour en tenir compte, j'ai utilisé un connecteur à sertir à cinq fils à une extrémité et sauté un emplacement.

Pour vérifier que votre Raspberry Pi peut détecter le contrôleur de guitare, ouvrez un shell et tapez: sudo i2cdetect -y 1

Il devrait imprimer une grille dans le shell avec principalement des doubles tirets. Si l'ordinateur peut détecter la guitare, vous devriez voir l'ID n° 52 de la guitare dans l'un des emplacements… sur ma machine, il apparaît dans la colonne 2, rangée 5… mais peu importe lequel, tant que vous voyez le numéro 52 quelque part là-dedans.

Si l'ordinateur ne peut pas le détecter, voici quelques choses à essayer:

  • Assurez-vous que vos fils sont bien connectés.
  • Assurez-vous que tout est connecté aux bonnes broches.
  • Retournez la prise Guitare. Le Nunchucky ne vous empêche pas de brancher la fiche à l'envers, elle pourrait donc être inversée.
  • Assurez-vous que i2c est activé sur le Raspberry Pi (comme indiqué à l'étape 2)

*Si la prise de la manette de guitare vous semble familière, c'est parce qu'elle est la même que la manette Wii Nunchuck standard… d'où le nom Nunchucky ! Cela signifie également que vous pouvez également utiliser cette même carte de dérivation pour vous connecter aux contrôleurs nunchuck.

Étape 5: Étape 5: Tout assembler

Étape 5: Tout assembler
Étape 5: Tout assembler
Étape 5: Tout assembler
Étape 5: Tout assembler

Maintenant que tout est configuré sur le Raspberry Pi, nous avons juste besoin d'un peu de code pour le faire fonctionner. Vous pouvez télécharger le code et les autres fichiers nécessaires comme suit:

  • Pour télécharger le code et d'autres fichiers sur le Raspberry Pi, ouvrez un nouveau shell et tapez la commande suivante (vous devrez peut-être mettre « sudo » avant): git clone
  • Cela créera un répertoire dans votre répertoire personnel appelé keytarHero (c'est-à-dire /home/pi/keytarHero) et téléchargera les fichiers dedans.

Il y a trois fichiers principaux dans ce package:

  • WiiGHController.py: Il s'agit d'un script python qui ouvre une connexion i2c à la guitare et renvoie les valeurs des différents contrôles. Par défaut, il affiche également les valeurs qu'il lit dans le shell afin que vous puissiez voir ce qu'il fait.
  • keytarHero.pd: Il s'agit du fichier de correctif Pure Data que j'ai créé pour créer la musique que vous entendrez. Il est configuré pour lire les valeurs provenant de la guitare et les acheminer vers divers nœuds pour générer les sons. Je discuterai des détails du correctif à l'étape suivante, mais en fin de compte, vous pourrez le modifier pour faire ce que vous voulez à partir d'ici.
  • keytarHero.py: C'est le script qui lance l'ensemble du processus et colle tout ensemble. Il lance Pure Data et ouvre le patch keytarHero.pd. Il ouvre une connexion au patch et transmet les valeurs de la guitare au patch.

Le moment de vérité! Assurez-vous que la guitare est connectée au Raspberry Pi et que vous êtes prêt à partir. Pour le lancer, il vous suffit d'exécuter le script keytarHero.py. Pour faire ça:

  • Ouvrez un nouveau shell et tapez: cd keytarHero
  • Exécutez ensuite la commande: python keytarHero.py

C'est ça! Si tout fonctionne correctement, Pure Data devrait se lancer et commencer à lire le patch. Vous devriez entendre une séquence de notes jouées, et lorsque vous appuyez sur les boutons de la guitare, elle devrait y répondre.

Dépannage

Si cela ne fonctionne pas, voici quelques points à vérifier:

  • Le correctif Pure Data ne se lance pas ou obtient une erreur de non-recherche de fichiers ? Le script keytarHero.py a le chemin d'accès au fichier de correctif Pure Data codé en dur dans '/home/pi/keytarHero/keytarHero.pd'. Si vous avez déplacé votre dossier keytarHero ou ce fichier de correctif ailleurs, vous devrez mettre à jour le script pour utiliser votre chemin à la place. Pour ce faire, ouvrez le fichier keytarHero.py et recherchez la variable appelée PD_PATCH_PATH et modifiez-la pour qu'elle pointe vers le répertoire où réside votre fichier keytarHero.pd. Enregistrez le script et réexécutez-le et vous devriez être prêt à partir.
  • La guitare émet-elle un signal ? Le script doit imprimer le signal qu'il reçoit de la guitare au shell en continu sous la forme d'une chaîne de nombres, chacun représentant la valeur d'un contrôle sur la guitare. Lorsque vous utilisez une commande sur la guitare, ces chiffres devraient changer. Sinon, vérifiez que vous avez correctement effectué la configuration i2c et les connexions de la guitare dans les étapes ci-dessus.
  • L'audio Pure Data est-il activé ? Le correctif Pure Data fourni dans ce package doit activer automatiquement l'audio, mais vérifiez que la case DSP dans la console Pure Data est cochée. Vérifiez également vos paramètres audio comme indiqué à l'étape 3.
  • Pure Data reçoit-il le signal de la guitare ? Dans le coin supérieur droit du patch se trouve un groupe de nœuds chargés de lire le signal de la guitare et de le transmettre au reste du patch. Lorsque vous appuyez sur les boutons de la guitare, les chiffres de cette section devraient également se mettre à jour pour vous indiquer qu'elle reçoit correctement le signal.
  • Initialisation des variables dans le patch. Pure Data peut être un peu pointilleux sur les valeurs du patch qui ne sont pas initialisées. J'ai ajouté des mécanismes pour déclencher des variables lorsqu'il s'ouvre, mais cela vaut peut-être la peine de cliquer sur certaines des boîtes de message (celles qui semblent avoir été mordues). Cela les fait s'initialiser et peut les réveiller.

Étape 6: Visite guidée du correctif Pure Data

Visite guidée du patch Pure Data
Visite guidée du patch Pure Data
Visite guidée du patch Pure Data
Visite guidée du patch Pure Data
Visite guidée du patch Pure Data
Visite guidée du patch Pure Data
Visite guidée du patch Pure Data
Visite guidée du patch Pure Data

La configuration décrite jusqu'à présent dans ce didacticiel fera fonctionner les choses pour vous, mais l'un des avantages de l'utilisation de Pure Data pour ce projet est qu'il peut être personnalisé pour faire ce que vous voulez. Lorsque le patch est ouvert, si vous appuyez sur Ctrl + E, le patch passe en mode Édition et vous pouvez modifier le patch. Les détails de l'utilisation de Pure Data dépassent le cadre de ce didacticiel (il existe de nombreux didacticiels en ligne pour cela) mais il peut être amusant de le bricoler, alors voici une visite générale de ce qui se passe dans le patch keytarHero.pd au cas où vous voulez le personnaliser:

  • Communication guitare: en haut à droite du patch se trouve une arborescence de nœuds chargés de gérer le signal de la guitare. Les valeurs de la guitare sont une longue chaîne, donc ces nœuds divisent la chaîne en valeurs individuelles pour chaque contrôle, les convertissent en nombres, puis les transmettent aux nœuds « d'envoi » (ceux qui commencent par un s). Les nœuds d'envoi reçoivent un nom et émettent le signal pour « recevoir » les nœuds du même nom. Par exemple, le nœud 's whammy' émet les valeurs provenant de la barre whammy de la guitare et le nœud 'r whammy' au milieu du patch reçoit ce signal et utilise ce signal pour arrêter le séquenceur. Les nœuds d'envoi/réception aident à réduire l'encombrement des lignes de connexion dans le patch. Je ne recommande pas de jouer avec cette section car c'est un peu difficile à faire correctement, mais vous pouvez certainement ajouter des nœuds de réception supplémentaires tout au long du patch si nécessaire pour recevoir des signaux de celui-ci au besoin.
  • Section séquenceur: la section centrale du patch contrôle le séquenceur. Sur le côté gauche se trouve une barre avec un carré noir mobile qui vous montre quelle note d'une séquence de 16 notes elle joue. La touche strum contrôle si la séquence est jouée en avant ou en arrière. Les boutons plus/moins augmentent/diminuent la vitesse. Sur le côté droit se trouvent cinq séries de chiffres qui contrôlent les notes jouées pendant chaque étape. Chaque séquence est assignée à jouer lorsque l'un des cinq boutons de la frette est enfoncé. Ces nombres sont des valeurs MIDI et vous pouvez les modifier pour jouer les notes que vous voulez… donnez-leur simplement des valeurs comprises entre 0 et 127.
  • Section Oscillateur/FX: en bas à gauche se trouvent les nœuds d'oscillateur et d'effets qui produisent réellement le son. L'oscillateur primaire est à gauche. Les valeurs midi de la section séquenceur sont converties en fréquences et transmises à l'oscillateur. Il est mixé avec un second oscillateur venant du côté droit. Sa fréquence est également contrôlée par les valeurs midi mais avec un décalage de fréquence supplémentaire piloté par l'axe X du joystick. Cela provoque un effet de désaccord ou de sifflement lorsque vous déplacez le joystick vers la gauche ou la droite. En bas à droite, il y a aussi un nœud de filtre passe-bas dont la fréquence de coupure est liée à l'axe Y du joystick. Un filtre passe-bas détermine la quantité de son haute fréquence qui est supprimée du son. Lorsque le joystick est déplacé vers le bas, il coupe une grande partie des hautes fréquences, ce qui produit un son étouffé. Lorsqu'il est déplacé vers le haut, il laisse passer toutes les fréquences, ce qui donne un son plus brillant.
  • Initialisation: Dans le coin supérieur gauche du patch, il y a une série de nœuds qui initialisent le patch lorsqu'il se lance, comme allumer l'audio et « toucher » divers nœuds pour les réveiller. Encore une fois, vous n'avez probablement pas besoin de jouer avec cette section, mais s'il y a des choses que vous voulez voir se produire lors du lancement du correctif, connectez-les au nœud appelé 'loadbang'.
  • J'ai essayé de documenter le correctif avec des commentaires dans le correctif lui-même, donc j'espère que cela vous donnera suffisamment d'informations pour explorer différentes options à partir d'ici.

Prendre plaisir!

Étape 7: autres choses à essayer

Courir la guitare 'sans tête'

Il devrait être possible d'exécuter ce projet sans être connecté à un moniteur/clavier/souris si vous exécutez votre Raspberry Pi à partir d'une source d'alimentation portable appropriée. Le Raspberry Pi ne rentre pas tout à fait dans l'ouverture à l'arrière de la guitare, mais si vous vous sentez courageux, vous pouvez apporter des modifications à la guitare pour y remédier… ou simplement monter le Pi à l'arrière avec des vis et le faire coller sortir un peu. Il existe de nombreux tutoriels en ligne sur la façon d'exécuter des scripts sur le Raspberry Pi sans tête, mais en gros, vous voudriez exécuter la commande 'python /home/pi/keytarHero/keytarHero.py&' au démarrage. Théoriquement donc, vous auriez une guitare avec un seul câble sortant du haut-parleur… comme une vraie guitare électrique !

Modifications supplémentaires de Pure Data

J'avais d'autres idées sur la façon dont la guitare pouvait contrôler le patch Pure Data, mais je n'ai pas eu le temps d'essayer. Ce seraient des changements dans le patch qui pourraient être amusants à expérimenter:

  • Barre de whammy: Dans le patch actuel, la barre de whammy arrête simplement la lecture de la séquence, mais je pense qu'il serait préférable que la barre de whammy augmente également la fréquence en même temps, comme le ferait une vraie barre de whammy. J'ai essayé de le faire fonctionner pendant un moment, mais c'était plus compliqué que je ne le pensais. Je pense qu'il s'agit peut-être simplement d'ajouter une expression dans la section de l'oscillateur qui ajoute une fréquence un peu plus élevée à l'oscillateur en fonction de la valeur provenant de la barre whammy.
  • Barre de strum: actuellement, la barre de strum joue la séquence vers l'avant lorsqu'elle est enfoncée et vers l'arrière lorsqu'elle est enfoncée, mais il peut être préférable de la faire parcourir différentes options de séquençage telles que le pas aléatoire, etc.
  • Boutons plus/moins: Les boutons plus/moins changent les battements par minute, mais c'est un peu décevant à moins que vous ne les appuyiez plusieurs fois. Il serait peut-être bon de l'augmenter d'un montant plus important à chaque fois. Ou peut-être faites-le basculer le séquenceur entre la lecture à 16 temps, 8 temps, 4 temps, triolet.

Conseillé: