Chargement...
 
Skip to main content

Historique: Script mididings pour Seq64 dans Carla

Aperçu de cette version: 5



Cette page présente les étapes à suivre pour mettre en place un script Mididings dans une configuration de boucles Midi avec Sequencer64, Carla et un synthétiseur virtuel.

 attention
Page en cours d'écriture
Dernier edit par Zigmhount le 8/04/202



Introduction


Dans une configuration de séquenceur en looping (live ou non), le logiciel propriétaire Ableton Live a une fonctionnalité appelée Random Follow expliquée par exemple dans cette vidéo, et qui consiste à préparer plusieurs boucles pour la même séquence que le logiciel va choisir aléatoirement, résultant en une suite aléatoire de ces boucles. Ceci peut donner par exemple de la variété dans une séquence de percussions, avec quelques coups supplémentaires de caisse ou de hi-hat, ou dans une ligne de basse, pour éviter que ce soit trop répétitif et devienne lassant.

Mon looper libre de prélidection, Sequencer64, ne présente pas cette fonction. Je n'ai pas trouvé non plus de plugin LV2 qui fasse ceci (il existe par contre PSI Random MIDI pour remplacer une note par une autre note choisie aléatoirement dans une certaine bande). Je me suis donc tourné vers Mididings pour randomiser les séquences.


Organisation de la session

Pour ce tuto j'utilise Ray Session et Carla, mais c'est bien sûr transposable sur d'autres outils.
Seq64 est lancé depuis Ray Session, et des synthétiseurs virtuels tels que Fluidsynth ou Helm sont lancés dans Carla en tant que plugins lv2.

 note
TODO: Ajouter une image de Carla


Le script mididings

Idée et réflexions préalables

 note
TODO: trigger sur CC#119, nombre de ports, utiliser des scènes activées aléatoirement

Entrées et sorties

 note
TODO: config(), fonction buildportsarray(), NPORTS

Copy to clipboard
# The maximum number of input ports (in addition to ctrl_in) NPORTS=5 # Build an array of input ports after the ctrl input def buildportsarray(np): portsarray=["ctrl_in"] for p in xrange(0,np): portsarray.append("in_%d" %p) return portsarray # Define input and output ports config( #backend='jack-rt', client_name = 'mdd-RandomFollowSeq', in_ports = buildportsarray(NPORTS), out_ports = [ 'out', ] )

Préparer les scènes

 note
TODO: expliquer

Copy to clipboard
# Returns a dictionnary of Scenes, one per input port minus the control (first) port def routing_scenes(ports): return dict( (p, Scene("Port %d" % (p+1), PortFilter(p+1) >> Port(1) )) for p in range(1, ports+1) )

Fonctions pour activer une scène aléatoire

 note
TODO: expliquer

Copy to clipboard
# Global variable for the scenes that are active, i.e. the ports on which there is a midi signal ACTIVESCENES=set() ACTIVESCENES.add(1) # Activate scenes only once a CC119 is detected def activatescene(ev): newscene=ev.port-1 if 1 <= newscene <= NPORTS+1: if newscene not in ACTIVESCENES: ACTIVESCENES.add(newscene) print("activated scene %d" %newscene + " for port %d" %ev.port) # Picks a random scene in the set of active scenes def randscene(ev): # ev.port=randint(1,NPORTS) pickedscene=sample(ACTIVESCENES,1)[0] switch_scene(pickedscene) return ev

Le coeur du script

 note
TODO: expliquer

Copy to clipboard
run( # Create scenes for each port scenes=routing_scenes(NPORTS), control = [ # activate a scene once CC119 is detected CtrlFilter(119) >> Call(activatescene), # Call random scene when the control port detects a CC119 PortFilter(1) >> CtrlFilter(119) >> Call(randscene) ] )

Intégration dans Carla et Ray Session

Lancer le script dans le terminal et tester dans Carla

 note
TODO: lancer le script à la main, tester avec aseqdump

Intégrer à Ray Session

[note message="TODO: script bash, receive SIGTERM, user defined application shortcut in Ray"}

Liens et commentaires

Historique

Avancé
Information Version
Samedi 23 mai 2020 16:20 olinuxx + 1 alias 18
Afficher
Samedi 23 mai 2020 16:16 olinuxx + page intégrée 17
Afficher
Samedi 23 mai 2020 16:09 olinuxx + min/MAJ + anglicismes + coquilles + drapeau EN + ponctuations + mise en page / cohérence wiki + CODE + lien interne 16
Afficher
Lundi 13 avril 2020 21:09 olinuxx + drapeau EN 15
Afficher
Lundi 13 avril 2020 21:08 olinuxx + drapeau EN 14
Afficher
Lundi 13 avril 2020 21:07 olinuxx + drapeau EN + pnctuation 13
Afficher
Lundi 13 avril 2020 21:05 olinuxx + mise en page / cohérence wiki + coquille + drapeau EN + anglicisme 12
Afficher
Lundi 13 avril 2020 21:02 olinuxx + lien-forum plus court + drapeau EN 11
Afficher
Dimanche 12 avril 2020 20:05 zigmhount Image de connexions Carla à la fin, enlevé le commentaire "En cours d'édition" du début 10
Afficher
Dimanche 12 avril 2020 20:00 zigmhount ajouté le lien vers le fil de forum initiateur 9
Afficher
Dimanche 12 avril 2020 19:53 zigmhount Instructions pour tout le reste! 8
Afficher
Dimanche 12 avril 2020 18:42 zigmhount Explications de la configuration du script mididings 7
Afficher
Jeudi 09 avril 2020 19:14 olinuxx + titre de la page + suppression de la balise HTML (2ème page) 6
Afficher
Mercredi 08 avril 2020 23:17 zigmhount premier jet 5
Afficher
Mercredi 08 avril 2020 23:15 zigmhount 4
Afficher
Mercredi 08 avril 2020 22:50 zigmhount Première rédaction de l'introduction; 3
Afficher
Mercredi 08 avril 2020 22:39 zigmhount Création de la page et phrase d'intro 2
Afficher
Mercredi 08 avril 2020 22:29 zigmhount 1
Afficher