Bonjour tout le monde!
Alors voilà l'idée:
J'ai:
* un MPX 8 de chez Akai
* un Raspberry pi 3
Je voudrais utiliser le MPX 8 pour déclencher la lecture de samples sur le RPi. La latence n'est pas un soucis. C'est pour un spectacle vivant dans lequel le déclenchement des samples n'a pas besoin d'être calé ni sur une grille ou une partition, ni sur un top précis au quart de seconde.
Il faudrait aussi que le RPi démarre sans écran et lance la config SonicPi et connections MIDI au démarrage sans intervention extérieure.
Donc j'avais pensé à utiliser Sonic-Pi, puisque maintenant on peut utiliser du MIDI dedans.
Mais... je me dis qu'il y a peut-être plus simple que de passer par Sonic-Pi...
Donc, dans un premier temps ma question est la suivante: est-ce que quelqu'un.e a une autre idée pour déclencher des samples sur un RPi en MIDI autre que Sonic-Pi?
Et oui, je vois déjà les réponses avec Pure Data arriver...
Merci d'avance à vous!
Hors ligne
Alors...
Avec PureData, cela fonctionnait comme je voulais. Sauf que: la distribution que je voulais utiliser sur le RPi ne bootait pas en mode graphique (PatchboxOs) dans sa dernière version.
Le projet ayant légèrement changé en cours de route, je me retrouve avec les contraintes suivantes:
* lorsqu'un bouton (normalement ouvert) relié à un GPIO (et à la masse aussi...) est pressé, cela déclenche la lecture d'un fichier audio associé à ce GPIO
* lorsque que l'on presse un autre bouton, ou le même, lui aussi relié à un GPIO, cela arrête la lecture en cours et déclenche la lecture du fichier associé au bouton qui vient d'être pressé.
J'ai trouvé un script ( https://stackoverflow.com/questions/742 … lternative) qui m'a permis de faire ce qui suit et qui fonctionne!
citation :
#Always comment your code like a violent psychopath will be maintaining it and they know where you live
from pygame import mixer #importe la classe Mixer depuis le module "pygame" pour gérer les fichiers son
from gpiozero import Button #importe que l'élément "Button"depuis la bibliothèque GPIOzero
ChasetheDevil = Button(13) #désigne la broche GPIO 13, l'active et lui donne un nom
President = Button(21) #désigne la broche GPIO 21, l'active et lui donne un nom
mixer.init() #créé une instance de la classe "mixer" de la bibliothèque "Pygame"
def chase(): #déclare une fonction pour gérer l'arrêt du morceau en cours, son volume, son chargement et sa lecture
mixer.music.stop() #stoppe le fichier actuellement en lecture
mixer.music.set_volume(1.0) #règle le volume
mixer.music.load('/home/waxmonde/samples/ChasetheDevil.wav') #charge le fichier son en indiquant le chemin entier pour pouvoir démarrer le script depuis n'importe où, sinon il faudrait placer le fichier dans le même dossier que le script et bon...hein...
mixer.music.play() #trouve les bons numéros du loto de hier
def pres(): #déclare une fonction pour gérer l'arrêt du morceau en cours, son volume, son chargement et sa lecture
mixer.music.stop() #stoppe le fichier actuellement en lecture
mixer.music.set_volume(1.0) #règle le volume
mixer.music.load('/home/waxmonde/samples/President.wav') #charge le fichier son en indiquant le chemin entier pour pouvoir démarrer le script depuis n'importe où, sinon il faudrait placer le fichier dans le même dossier que le script et bon...hein...
mixer.music.play() #répare ta gazinière
while True: #initialise une boucle "while" (conditionnelle)
ChasetheDevil.when_pressed = chase #lorsque le boutton auquel est assigné ChasetheDevil est pressé, cela lance la fonction "chase"
President.when_pressed = pres #lorsque le boutton auquel est assigné President est pressé, cela lance la fonction "pres"
pause()
NB: vu que les balises "code" ne fonctionnent pas ici, j'ai mis des "quote " à la place.
Sur ce, je retourne écouter du Lee Scratch Perry!
Dernière modification par Sri_Raoul (2025-05-16 20:09:53)
Hors ligne
Pages: 1