L’alphabet

Préliminaires

L’alphabet d’ORCA est en cours de développement. ORCA ne dispose que de 26 fonctions, chacune correspondant à une lettre de l’alphabet. Il reste difficile de prédire, à ce stade du développement, quelles seront les fonctions amenées à rester et les fonctions qui seront soumises à des changements.

Neauoire m’a expliqué que son ambition pour ORCA est de créer une structure proche d’une Machine LISP. De ce point, nous pouvons déduire qu’environ 5-8 fonctions peuvent être considérées comme stables. Les fonctions logiques ou liées à l’arithmétique et à la combinatoire des opérateurs sont les fonctions les plus stables et les plus essentielles à la création des patchs ORCA. Toute fonction musicale ou ayant trait à la communication réseau est suceptible de recevoir à l’avenir un comportement nouveau.

Je ne pourrai par conséquent vous donner avec une entière honnêteté une typologie précise et stable des opérateurs d’ORCA. Je vais toutefois faire l’effort de présenter l’alphabet du mieux que je peux afin que vous puissiez avoir un aperçu des possibilités.

Valeurs et variables

Avant même de commencer à parler de l’alphabet, un détour s’impose pour expliciter la notation des données et des valeurs numériques dans ORCA. La notation numérique est la plus simple à comprendre. Elle se fait sur une base 36 :


0 1 2 3 4 5 6 7 8 9 10 11 12 || 0 1 2 3 4 5 6 7 8 9 a b c

13 14 15 16 17 18 19 20 21 22 23 || d e f g h i j k l m n

24 25 26 27 28 29 30 31 32 33 34 35 36 || o p q r s t u v w x y z


Pour faire simple : comptez de 0 à 9 puis de a à z.

L’opérateur MIDI d’ORCA fonctionne également avec un système de transposition. Nous y reviendrons plus tard.

Fonctions arithmétiques et logiques

Commençons par comprendre la logique des opérateurs en observant les deux fonctions les plus simples : l’addition et la multiplication.

Ces opérateurs sont symbolisés par la lettre A (add) et M (multiply) sur fond vert. Ils reçoivent deux entrées, deux nombres à additionner ou à multiplier : a + b / a * b. Un nombre pris dans un opérateur change de couleur (du gris au vert ou au blanc) pour indiquer qu’il est pris dans un processus logique ou arithmétique.

Les nombres sont donc placés sur l’input et l’output de l’opérateur. Le résulté généré en sortie est toujours présenté au bas de l’opérateur, sur fond blanc. Vous le devinez, ce nombre peut à son tour être récupéré par un autre opérateur, et caetera.

Combinatoire : une addition sur une addition sur une addition. On récupère la valeur de sortie sur un emplacement réservé à une valeur d’entrée.

 

Tout les opérateurs mathématiques manipulent des valeurs. Il existe toutefois une catégorie d’opérateurs logiques, qui retournent non pas une valeur mais un booléen : vrai ou faux. Ces booléens ont un pouvoir d’activation. Placés face à certains autres opérateurs, ils ont le pouvoir de l’activer ou non. Voici un exemple de l’opérateur logique le plus simple : IF (si).

Logique élémentaire : si A correspond à B, alors vrai. Sinon faux.

 

Cet opérateur IF, symbolisé par la lettre F, reçoit également une entrée et une sortie. Si la valeur d’entrée correspond à la valeur de sortie, alors l’opérateur émet un bang ( * ). C’est avec ces bangs que nous allons séquencer des notes et des actions musicales.

Fonctions énergétiques

Le bang représente le nerf de la guerre pour ORCA. Toutes les séquences musicales sont le résultat de l’activation d’un opérateur par un bang. Ceux-ci ne peuvent avoir lieu qu’au moment précis d’une pulsation ou sur une frame donnée. J’appelle toute opérateur ayant le pouvoir de créer un bang une fonction énergétique.

Les plus graphiques et les plus drôles sont certainement les opérateurs agissant sur des points cardinaux :

  • E : se dirige vers l’est. Se détruit à la rencontre d’un opérateur.
  • N : se dirige vers le nord. //
  • S : se dirige vers le sud.
  • W : se dirige vers l’ouest.

Votre curseur est un canon à bang. Vous ne disposez que de deux pouvoirs : 1) créer des opérateurs 2) créer des bangs. Vous disposez même d’une touche spéciale pour créer un bang sous votre curseur : Cmd + B (command bang).

S’ils sont mobiles, alors les bangs seront représentés par une des lettres correspondant aux points cardinaux. Sinon, ils sont représentés par l’astérisque : *.

L’un de mes opérateurs préférés, désormais retiré d’ORCA, permettait de faire rebondir à la manière d’un flipper plusieurs opérateurs énergétiques cardinaux et de créer des trains de bangs tout autour du patch.

Ces opérateurs énergétiques sont conçus pour être reçus par une autre catégorie d’opérateurs passifs, ceux en charge de la génération d’une note ou d’une donnée envoyée ensuite en dehors d’ORCA par les protocoles MIDI, UDP ou OSC.

Fonctions spatiales

Certaines fonctions servent à la manipulation de la grille ou au déplacement de certaines valeurs. Elles permettent de transporter ou téléporter des valeurs, ou de récupérer la valeur d’une case particulière. En soi, ces fonctions sont inutiles tant qu’elles ne sont pas excitées par d’autres données.

Voici un exemple très utile pour créer un séquenceur mélodique :

Clock + Track : x valeurs sont disposées sur une ligne. Chaque pulsation fait avancer le curseur d’une valeur sur cette ligne et récupère la valeur qui y est inscrite.

Il s’agit donc d’un simple séquenceur mélodique à x steps, comme l’on peut retrouver sur toutes les boîtes à rythme du monde. Remplacez C et E (Do et Mi) par * et * pour en faire un séquenceur rythmique. L’opérateur C appartient ici à la catégorie suivante des fonctions temporelles.

L’opérateur T que je viens d’utiliser, Track, représente une piste linéaire de valeurs. Chaque case située à droite de l’opérateur est donc une case de stockage pour une donnée.

Voici un autre exemple plus graphique et plus hypnotique :

Clock + Generator : la clock me sert ici à déplacer la case de sortie sur l’axe vertical et à activer l’opérateur. Recevant E en entrée, il produit en sortie une cascade de bangs fonçant vers l’est.

 

Il existe des fonctions plus complexes et plus avancées que nous aurons l’occasion de rencontrer au cours des articles suivants.

Fonctions temporelles

ORCA fonctionne toujours en réaction à un tempo sous-jacent. Certaines fonctions sont donc essentiellement rythmiques. Clock produit, à titre d’exemple, une valeur par frame. Il s’agit d’un opérateur qui compte de x à x, en incrémentant puis revenant à l’origine dès qu’il atteint le plafond de valeur.

J’aimerai pourtant donner comme exemple le nouvel opérateur U, un séquenceur euclidien :

U : un séquenceur euclidien. Consultez cet article de Godfried Toussaint pour en apprendre plus sur le sujet. Orca divise une mesure en 5 (right-input) et bang pour chaque division de cette mesure en 1, 2, 3 ou 4.

Cet opérateur est un exemple de la précision rythmique qu’il est possible d’obtenir avec ORCA. Sans créer de système complexe, il est déjà possible d’obtenir X valeurs rythmiques précises.

De manière générale, tout est rythmique dans ORCA. Certaines lettres de l’alphabet, certaines combinaisons, se prêteront mieux à la manipulation rythmique. Puisqu’ORCA divise le temps en frames, il est possible de diviser le temps suivant ce principe, sur une base 36.

 

Fonctions réseau