{{tag> musique livecoding vcv-rack em}} ====== Orca ====== Orca est un langage ésotérique de création de séquenceurs, capable d'envoyer des informations de contrôle en MIDI, OSC ou UDP à des logiciels musicaux ou audiovisuels. Il permet de construire des séquences complexes par un langage spécifique composé d'instructions réduites à une lettre. C'est un environnement de création pour le livecoding audio-visuel, qui ressemble à un croisement entre l'[[https://fr.wikipedia.org/wiki/Assembleur|assembleur]] et le [[https://fr.wikipedia.org/wiki/Jeu_de_la_vie|jeu de la vie de Conway]] * https://hundredrabbits.itch.io/orca * https://github.com/hundredrabbits/Orca ===== Comment l'utiliser ===== {{:ressource:logiciel:orca:orca_interface.png?direct&600|}} En démarrant Orca, on se retrouve devant une interface minimale composée d'une grille avec des petits points et de quelques lignes de console au bas de cette grille qui affichent des informations : dimensions, position, nombre de frames écoulées, informations sur les instructions. Sur chaque petit point de cette grille, on peut placer un caractère qui représente une instruction du séquenceur (comme une fonction d'un langage d'un programmation). Chacune de ces instructions peut être modifiée selon plusieurs paramètres représentés par les points autour de la l'instruction. En plaçant le curseur sur ces points de modulation, leur rôle est indiqué sur la console. Les notes sont représentées selon la notation anglaise. {{:ressource:logiciel:orca:musique_notation_francaise_anglophone_orca.png?direct&600|}} ==== exemple avec l'instruction D (Delay) ==== {{:ressource:logiciel:orca:orca_exemple_d.gif?direct|}} L'instruction **D** (comme Delay), déclenche un «bang» quand le modulo de la frame vaut zéro. Ce bang, symbolisé par un astérisque, permet de déclencher d'autres évènements. \\ En plaçant le curseur sur le D, le nom de la fonction s'affichera sur la console au bas de la fenêtre, en le plaçant à gauche ou à droite du D sur les points colorés, c'est le nom des paramètres qui s'affichera sur la console. ==== exemple d'une séquence de 16 notes envoyées en MIDI ==== {{:ressource:logiciel:orca:orca_exemple_sequence.gif?direct|}} L'instruction **T** permet de définir un motif de x notes, ici il y en a 16 que l'on voit à droite de **T**. Ce nombre est défini à gauche (g), encore plus à gauche on a la position actuelle. La position actuelle dans le motif est définie par la sortie de l'instruction **C** qui boucle sur 16 valeurs (g, à droite). La sortie de **T** est reportée dans un message MIDI (:13x) déclenché par un bang, le message est envoyé sur le canal MIDI 1, et envoie la note du motif sur l'octave 3! **J** sert uniquement à reporter son entrée (en haut) sur sa sortie (en bas). ==== exemple de séquenceur à 8 pas ==== {{:ressource:logiciel:orca:orca_exemple_sequenceur_melodie.gif?direct|}} Chaque pas envoie une note midi différente sur le même canal (on pourrait aussi varier la vélocité et la durée des notes). Les pas sont lus en une boucle dont la taille varie de temps en temps, c'est le rôle du petit module en haut à gauche de définir le nombre de pas lus! ==== exemple avec des générateurs de bang ==== {{:ressource:logiciel:orca:orca_exemple_generateur.gif?direct|}} ===== Petites infos utiles ===== Orca fonctionne en base 36! Ecriture des notes : C (majuscule) représente un DO , c (minuscule), un DO# (1/2 ton au dessus) Chaque lettre de l'alphabet correspond à une commande différente, en minuscule elle sera déclenchée sur demande par un «bang», en majuscule à chaque «frame». CTRL + G : **afficher la liste des instructions** \\ ESPACE : play/pause sur le déroulement = arrêt du compteur de frame \\ CTRL + K : activer la ligne de commande, ce qui permet de rentrer ce type de commande * play * stop * run (jouer uniquement une frame) * bpm:180 * apm:180 : amener le BPM à la valeur demandée * et bien d'autres : [[https://github.com/hundredrabbits/Orca/blob/master/desktop/sources/scripts/commander.js|liste complète]] CTRL + : : (dé)commenter un bloc après l'avoir sélectionné au clavier ou à la souris \\ CTRL + I : basculer entre mode caractère unique / mode texte (pour écrire des commentaires, par exemple) \\ ==== Gammes ==== ^ Gamme ^ Notes ^ Séquence Orca ^ | Chromatic | C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B, C | CcDdEFfGgAaBC | | Aeolian | C, D, Eb, F, G, Ab, Bb, C | CDdFGgaC | {{:ressource:logiciel:orca:gammes_musicales.png?direct&800|}} ===== Installation sur Linux ===== Télécharger le fichier depuis https://hundredrabbits.itch.io/orca # debian 9.5 stretch @ kirin # décompresser le fichier téléchargé, ici dans /home/emoc/orca-7.1.12 cd /home/emoc/orca-7.1.12 sudo chown root:root ./chrome-sandbox # il est nécessaire que root soit propriétaire de ce fichier sudo chmod -R 4755 ./chrome-sandbox # et qu'il ait tous les droits nécessaires # debian 10 buster @ diatoma (CL22) # décompresser le fichier téléchargé, ici dans /home/xor/orca-8.5.3 su - # Entrer le mot de passe root, les clients légers n'ont pas de sudo cd /home/xor/orca-8.5.3/ chown root:root ./chrome-sandbox # il est nécessaire que root soit propriétaire de ce fichier chmod -R 4755 ./chrome-sandbox # et qu'il ait tous les droits nécessaires exit Ensuite, on peut démarrer Orca en ligne de commande avec ./Orca & # Éperluette optionnelle! On peut également installer [[ressource:logiciel:pilot|Pilot]], un synthé qui communique en OSC avec Orca ===== Configuration Orca + VCV Rack sur Linux ===== **Code pour orca** {{:ressource:logiciel:orca:orca_exemple_sequence_aleatoire.gif?direct|}} **patch VCVRack** {{:ressource:logiciel:orca:midi_avec_orca_reception_vcv_rack.png?direct&400|}} {{ :ressource:logiciel:orca:exemple_orca_vcv.vcv |}} Pour cet exemple Orca est utilisé avec le "Midi Through Port-0" pour envoyer ses messages MIDI. \\ Une fois Orca démarré avec le code ci-dessus, on peut vérifier que les messages sont bien transmis aseqdump -l # affiche la liste des ports MIDI disponibles, 14:0 est le "Midi Through Port-0" utilisé par Orca aseqdump -p 14:0 # affiche les infos MIDI qui transitent sur ce port (trouvé précédemment) Dans VCVRack, régler le module MIDI-CV avec les caractéristiques suivantes * MIDI Driver : ALSA * MIDI Device : Midi Through Port-0 14:0 * MIDI Channel : 1, 2, 3 selon l'instrument ===== Ressources ===== **ORCA Cheat Sheet (réalisée pendant Mortel Modulaire, 29/10/2023)** : {{ :ressource:logiciel:orca:orca_cheat_sheet.pdf |ORCA cheat sheet}} **tutoriel interactif bien bien : https://metasyn.srht.site/learn-orca/** \\ D'autres exemples : https://git.sr.ht/~rabbits/orca-examples \\ vidéo de présentation en français : https://www.youtube.com/watch?v=ihFidWCWu9Y \\ vidéo d'initiation en anglais : https://www.youtube.com/watch?v=RaI_TuISSJE \\ fil de discussion sur le forum lines : https://llllllll.co/t/orca-livecoding-tool/17689/ \\ interview de Devine Lu Linvega, auteur d'Orca : https://futureofcoding.org/episodes/045 \\ «c'est encore en vidéo dont on se rend le mieux compte du truc» : [[https://www.youtube.com/watch?v=KzUQlmQvtjI|tunnellers]] * [[https://www.youtube.com/watch?v=1h7vQFH9xFM|dunes]] * [[https://www.youtube.com/watch?v=N-CzNpa5Apk|pong]] * [[https://www.youtube.com/watch?v=XXNKZrWMAAc|convey]] * [[https://www.youtube.com/watch?v=tdunjIiroao|delay with animated velocity]] * [[https://www.youtube.com/watch?v=BcqBlGxWmtQ|dub hotel lounge]] * [[https://www.youtube.com/watch?v=DHYL9hojUTQ|armadillidiids]] * [[https://www.youtube.com/watch?v=6ezSUk5pvIw|overload]] * [[https://www.youtube.com/watch?v=w9do-qFNAmQ|time crystal]] * [[https://www.youtube.com/watch?v=niUe0M8fZnw|invaders]] * [[https://www.youtube.com/watch?v=niUe0M8fZnw|invaders]] * [[https://www.youtube.com/watch?v=gSFrBFBd7vY|15092019]] * [[https://www.youtube.com/watch?v=4ig84_4RF5E|cascade modulo sequencing]] * [[https://www.youtube.com/watch?v=sH5GaVU0ed8|shift registrer melodies]] * [[https://www.youtube.com/watch?v=vMJ9duZVTko|glitch]]