Table des matières:

Boîte à rythmes Raspberry Pi : 5 étapes
Boîte à rythmes Raspberry Pi : 5 étapes

Vidéo: Boîte à rythmes Raspberry Pi : 5 étapes

Vidéo: Boîte à rythmes Raspberry Pi : 5 étapes
Vidéo: Que faire avec un Raspberry Pi ? 2024, Novembre
Anonim
Boîte à rythmes Framboise Pi
Boîte à rythmes Framboise Pi

Exemple de séquenceur, via un Raspberry Pi + Python.

Le séquenceur a 4 polyphonies et permet à l'utilisateur de stocker et de sélectionner 6 séquences différentes qu'il peut alterner en temps réel, et prend en charge la possibilité de changer entre différents échantillons.

J'ai écrit le script d'une manière totalement utilisable avec n'importe quel contrôleur et son MIDI. J'utilise 18 banques de sons différentes, 16 échantillons chacune, mais ajouter ou soustraire des banques et des échantillons est facile et ne nécessite pas beaucoup de modifications. Si vous avez des problèmes, envoyez-moi un email: [email protected]

Trouvez le code sur GitHub à l'adresse:

N'hésitez pas à me dire si vous l'utilisez, et surtout si vous faites une vidéo avec !

Étape 1: Dépendances

Ce programme nécessite les modules Python (non intégrés) suivants:

mido

pygame

numpy

Cependant, Mido pose quelques complications car Mido lui-même nécessite quelques dépendances. Afin de vous assurer qu'ils sont tous installés, tapez simplement les commandes suivantes dans le terminal de votre Raspberry Pi (en omettant le '$') et tout ira bien. Les autres modules peuvent être installés normalement.

$ sudo apt-get update

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev ou libasound2-dev

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get install python-pip

$ sudo apt-get install python-dev

$ sudo pip installer python-rtmidi

$ sudo pip installer mido

Étape 2: Configurer les valeurs d'entrée Midi

Configurer les valeurs d'entrée Midi
Configurer les valeurs d'entrée Midi

Dans le script Python principal, il existe un tableau appelé noteList qui est composé de 16 entiers (ligne 165.) Ce sont les valeurs de note MIDI que notre contrôleur envoie au Pi pour déclencher les sons. Cependant, chaque contrôleur midi est différent, donc à moins que vous n'ayez également un Akai LPD8, vous devrez probablement modifier ces valeurs pour qu'elles correspondent à votre appareil.

Le référentiel Github comprend également un autre script appelé "midihelp.py" spécialement conçu à cet effet ! Tout ce qu'il fait est d'imprimer les valeurs d'entrée du premier contrôleur MIDI reconnu par l'ordinateur sur la console. Tout ce que vous aurez à faire est de remplacer ces valeurs dans le tableau si elles diffèrent de celles incluses dans noteList.

L'ordre des notes est également en corrélation avec l'effet sonore joué par dossier, alors gardez cela à l'esprit également.

Étape 3: ajouter des dossiers supplémentaires avec des exemples

Les kits d'échantillons dans le script sont stockés via des dossiers dans le même répertoire, configurés exactement comme le kit 808 se trouve dans le fichier GitHub. De cette façon, je peux avoir toutes sortes d'ensembles d'échantillons différents stockés dans des dossiers qui sont facilement organisés et remplacés.

La seule chose à changer dans le script lui-même est la variable foldNum qui indique simplement au script combien de dossiers d'échantillons il y a. Actuellement, le script a foldNum défini sur un car il n'y a qu'un seul sous-dossier dans le même répertoire (le kit 808.) Le maximum de dossiers que le script peut gérer pour le moment est de 18, c'est le nombre que j'utilise, mais c'est assez trivial à modifiez cela, faites-moi savoir si vous avez besoin d'aide.

Les noms des dossiers n'ont pas vraiment d'importance (tant qu'ils sont tous différents) car le script lit simplement le nombre de dossiers dans le même répertoire et saisit les chemins de cette façon. Les noms des fichiers eux-mêmes sont cependant importants, plus à ce sujet à l'étape suivante.

Étape 4: ajouter et configurer des échantillons supplémentaires dans de nouveaux dossiers

Ajouter et configurer des échantillons supplémentaires dans de nouveaux dossiers
Ajouter et configurer des échantillons supplémentaires dans de nouveaux dossiers

Les sons sont chargés dans l'échantillonneur via des dossiers dans le même répertoire contenant des fichiers.wav avec des noms numérotés entre 0 et 15. Voir le dossier 808 inclus pour un exemple de ceci. CHAQUE sous-dossier contenant des échantillons doit être identique les uns aux autres.

L'index des entrées MIDI dans le tableau noteList correspond exactement au nom du fichier.wav.

Par exemple:

  • lorsque vous déclenchez la note MIDI stockée dans noteList[0], le fichier wav 0.wav est lu.
  • lorsque vous déclenchez la note MIDI stockée dans noteList[8], le fichier wav 8.wav est lu.

J'ai fait cela en partie pour que chaque contrôleur MIDI puisse être configuré facilement pour fonctionner avec le script, et aussi pour que je puisse facilement étendre ou limiter le nombre d'échantillons et d'entrées, ainsi que pour organiser les fichiers et le script de manière à ce que la grosse caisse les sons, par exemple, seraient toujours sauvegardés en tant que 0.wav et seraient déclenchés par la première note MIDI.

J'ai choisi 16 valeurs un peu arbitrairement pour correspondre aux 16 entrées de mon contrôleur, donc si vous préférez faire un séquenceur avec seulement 1 échantillon, ou avec beaucoup plus, tout ce que vous auriez à faire est de numéroter les fichiers audio en conséquence et soustrayez ou ajoutez les nombres stockés dans le tableau noteList pour qu'ils correspondent.

Si le kit 808 inclus fonctionne correctement mais que vous avez des problèmes avec vos propres échantillons, la solution serait très probablement de modifier la fréquence d'échantillonnage des fichiers pour qu'elle corresponde à la fréquence d'échantillonnage de 22 050 kHz et à la profondeur de 16 bits de PyGame. Vous pouvez le faire dans Audacity ou tout autre logiciel d'édition audio. Ils devraient fonctionner parfaitement à partir de là !

Étape 5: Référence du pavé numérique

D'accord, il se passe beaucoup de choses dans le séquenceur, plus que ce que j'avais en tête au départ, alors je me suis entassé un peu sur un pavé numérique pour correspondre à la fonctionnalité accrue. Ceci en tête, l'Astérisque* et le Point. les deux fonctionnent comme des touches de fonction.

RÉFÉRENCE

FONCTIONS PRINCIPALES

[8] - Activer et désactiver le métronome

[9] - Activer et désactiver le mode d'enregistrement

[Entrée] - Séquence Lecture/Pause

[0] - Supprimer la note actuelle dans la séquence

[Num Lock et *] - Arrêter

[Note MIDI et.] - Ne pas quantifier sur des nombres pairs

FONCTIONS TEMPO

[+] - Accélération du cours BPM

[-] - Course Ralentir BPM

[+ et *] - Accélérer rapidement le BPM

[- et *] - Ralentissement rapide du BPM

[+ et.] - Accélération fine du BPM

[- et.] - Fin ralentir BPM

FONCTIONS DE SÉQUENCE

[1-6] Séquence de rappel 1-6

[1-6 et.] Mémoriser la séquence 1-6

[0 et.] Effacer la séquence actuelle

CHANGEMENT DE DOSSIERS D'ÉCHANTILLONS

[1-9 et *] - Passer au pack d'échantillons dans les dossiers 1-9

[1-9 et * et.] - Passer au pack d'échantillons dans les dossiers 10-18

CONSEILS POUR LA SÉQUENCE:

-Effacez la séquence actuelle [0 et.] et stockez-la dans toutes les séquences que vous souhaitez effacer de la mémoire.

-Rappeler une séquence et la stocker sous un numéro différent pour la copier.

Conseillé: