< Back to IRCAM Forum

Inversus variable

chers OMers

je vous faire des inversus dans des sets de compos, tout ceci est facile, c’est même abordé dans le cours OM niveau 1 mais :

  • je voudrais le faire avec des midi files et surtout, je voudrais le faire de façon dynamique en choisissant la note de rotation et le temps ou elle est efficiente dans des tuples.

please help !!

……………………………………………………………… jerome

Cher JErome,

Peut-on avoir qq chose de plus explicite? Ta description par rapport au renversement est non seulement vague, mais carrement flou.

Le probleme dus midifile, est en premier lieu. Il faut pour faire quoique ce soit significatif par rapport aux intervales trouver le transfert midifile->chord-seq

Est-ce que tese midifiles sont :

-Polyphoniques ?
-Muktichannels ?
-Quantifiables (ou c’est juste les notes)

  • c’est quoi ton histoire des tuples (veux-tu dire que c’est des tuplets ?) dans ce cas, c’est pas du midifile que tu causes…

STP sois plus explicite.

Amities
K

Hello Karim

en effet, je me suis très mal exprimé :

  • L’histoire des tuplets n’a, en effet, aucun sens car en fait, ce sont les données de bases que je veux soumettre ( la durée en ms et la note de rotation en mc )

  • je veux utiliser des midifiles monophoniques à la base non quantifiables mais vu que je veux “attaqué” un voice (et pour finir un om-lily) et peut-être jouer sur la temporisation, donc des données plus musicales, pourquoi pas ? :slight_smile:

Voila, je reste dispo si je ne suis pas clair

Amitiés

………………………………………………………………… Jerome

c clair,
un petit exemple ne fera pas de mal…
Peux-tu envoyer un patch d’exemple ?
pour ne pas faire tout de 0 ?

k

voila L’embryon de ce que je recherche :

c’est un vieux truc qui vient de 2005 (thx Mikhail)

comme tu peux voir il y a des CHORD là ou je veux adapté autre chose…

j’ai un gros problème de traitement des évènements

merci d’avance

renversement.omp (3.6 KB)

Jerome my friend,

Voila probablement (?) ce que tu veux faire (?) a savoir un mvt contraire (inversement des intervales) a partir d’une note pivaot de la serie (dans l’exemple c’est la 5eme et a droite c’est a partir de ton exemple).

Apres pour les durees, c’est autre choses, et d’ailleurs dans l’objet chord il n’y a pas de “rythme” c’est un accord.
Si tu veux appliquer des transformations sur les durees, c’est autre choses
Amities
K

inversion_nth_pivot.omp (19.3 KB)

merci beaucoup, on y est presque !!

je voulais intégrer des midifiles (MIDI FILE & SAVE-AS-MIDI) afin d’améliorer de import/export avec des DAW et relier le rythme vers un VOICE (sans que ce rythme soit modifié )

pour finir, pour une raison de prise en main, j’aurais voulu choisir ma note d’inversus dans un objet NOTE

Dernière chose, j’aurais voulu une sortie vers un OM-LILY pour verifier

Voila, je suis désolé de te faire tant de misère avec ma médiocrité et mes demandes de newbie mais, promis, je vais potasser !

Encore mille mercis,

Amitiés,

…………………………………………… jerome

PS : si je touche aux (-1) je faire du scaling ???

No problemo,

qq reponses :

je voulais intégrer des midifiles (MIDI FILE & SAVE-AS-MIDI) afin d’améliorer de >import/export avec des DAW et relier le rythme vers un VOICE (sans que ce rythme soit >modifié )

La il me faut aussi des exemples si possible, car je ne vois pas ou est le probleme.

pour finir, pour une raison de prise en main, j’aurais voulu choisir ma note d’inversus dans >un objet NOTE

c.f patch, par contre attention, cela ne marche qu’a la seule condition qu’il s’agit d’une serie, c-a-d sans note repetee. Car si tu as un stream de notes 50 notes par ex,., il faut absolument privilegier la position au lieu de la note. C’est pour quoi il faut d’abord poser son probleme bien le definir AVANt de se lancer dans l’ecriture de programmes. SInon on peut avoir des surprises. Pour ma part j’essayes de faire le plus generique possible. (des fois ce n’est pas possible…!)

Dernière chose, j’aurais voulu une sortie vers un OM-LILY pour verifier

Il n’y a qu’a utiliser omlily ici :
http://karim.haddad.free.fr/pages/downloads.html
Ceci reseemble bcq a la premiere question…

PS : si je touche aux (-1) je faire du scaling ???

NON on ne touche pas les -1 Grrrrrr!!!, c’est juste pour l’inversion. Sinon on a tout faux!
[la multiplication en -1 : le premier a gauche est pour l’inversion, le 2eme est pour retrouver l’etat initial de la serie , c-a-d la 1ere note]

Amuses toi bien!

K

mem-pos-inv.omp (14.1 KB)

je voulais intégrer des midifiles (MIDI FILE & SAVE-AS-MIDI) afin d’améliorer de >import/export avec des DAW et relier le rythme vers un VOICE (sans que ce rythme soit >modifié )

La il me faut aussi des exemples si possible, car je ne vois pas ou est le problème.
___________________ dans un chord-seq, y’a pas de rythme alors que je veux retrouver la hauteur, traité par le patch et garder le rythme du midi file

pour finir, pour une raison de prise en main, j’aurais voulu choisir ma note d’inversus dans >un objet NOTE

c.f patch, par contre attention, cela ne marche qu’a la seule condition qu’il s’agit d’une serie, c-a-d sans note repetee. Car si tu as un stream de notes 50 notes par ex,., il faut absolument privilegier la position au lieu de la note. C’est pour quoi il faut d’abord poser son probleme bien le definir AVANt de se lancer dans l’ecriture de programmes. SInon on peut avoir des surprises. Pour ma part j’essayes de faire le plus generique possible. (des fois ce n’est pas possible…!)
_________ je vais donc utiliser les deux patches !! sinon, sur le premier patch, a propos du nombre de podsition, quel est la valeur pour le do central et quelle est l’echelle de transpo quant je change ce pivot de 1 ?

sinon, on va mettre au placard mon idée de base qui était de rentrer une liste de durée pour chaque point de pivot

Pour le premier patch :

Le nombre representatn la position, est LA position de la note de la serie. c-a-d , 0 etant la premiere note, 1 2eme note, etc… Cette note est la note pivot sur laquelle on va faire le renversement. Quelle qu’elle soit, la serie va etre renversee pareille. Apres ce n’est qu’une histoire de transposition a partir de cette note. [J’espere que c’est clair?]

Sinon, la liste de duree c’est pas mal c’est tres faisable, Mais il me faut un exemple…
comme cela je peux te montrer comment sortir un .ly un voice, etc…

Amities
K

Pour le premier patch :

Le nombre representatn la position, est LA position de la note de la serie. c-a-d , 0 etant la premiere note, 1 2eme note, etc… Cette note est la note pivot sur laquelle on va faire le renversement. Quelle qu’elle soit, la serie va etre renversee pareille. Apres ce n’est qu’une histoire de transposition a partir de cette note. [J’espere que c’est clair?]

__________oui !!! :slight_smile:

Sinon, la liste de duree c’est pas mal c’est tres faisable, Mais il me faut un exemple….
comme cela je peux te montrer comment sortir un .ly un voice, etc…

____________ j’ai pas d’exemple précis, mon idée est très abstraite, je voulais faire une liste de notes pivotS (ça on l’a presque !) et une liste de durée ( en ms mais je préférerais des paramètres plus musicaux adaptés à un ce que nécessite un voice) de l’efficiance des notes pivots.

je voulais donc prendre/rendre les données d’un midifile (hauteur et placement/durée de le temps)

c’est pour ça que j’insiste sur l’idée de l’utilisation du midi !

j’espere être clair à mon tour

Jerome,

Yes tu es clair, … obscur… Ca c’est bien … c’est Webernien … :slight_smile:

Pour le presque je te l’envoie… (cf attachment)

Pour l’obscur, et la, je dois dire que je ne suis pas tres en accord avec toi, plutot inversus :-)…
Le midifile, cela peut-etre n’importe quoi … tu oublies la polyphonie, les channels, les controls changes, c’est un peu tchernobyl de la partoche ! Attention aux radiations…
SAUF , si c’est des midifiles specifiques. Donc oublies OU soit plus explicite. De quel genre de midifile tu parles ? Exemple… ou essayes de voir ce dont tu as besoin toi.

K

inversion_nth_pivot_liste.omp (23.5 KB)

Karim,

Je crois que je suis du coté obscur du patching :-), desolé si j’ai pas les mots !! On va oublier le midi, je vais potasser pour te proposer quelque chose de compréhensible… Donc, à suivre !!! Sinon, revenons au premier patch qui est celui qui me plais le plus. quand aux autres paramètres midi, je ne veux pas les traiter dans OM…… Dans un premier temps !!!

Sinon, la liste de durée c’est pas mal c’est tres faisable, Mais il me faut un exemple….
comme cela je peux te montrer comment sortir un .ly un voice, etc…

ce serait super car j’ai besoin de voir comment on utilise un voice : pour commencer je voudrais appliquer une liste de durée avec le résultat des hauteurs qu’on obtiens avec le traitement du premier patch

En fait si on pouvait avoir deux voice à la place des deux chord-seq, ça me permettrais de voir comment on traite les longueurs !

A la mémoire d’Anton !!

……………………………………………… jerome

Bonjour à vous deux,
Question à Karim : Pourquoi utiliser la fonction Lisp-car ?
Car ces histoires d’inversion, de mouvements contraires et différents de l’inversion miroir, m’intéresse beaucoup - je suis en train d’analyser avec les outils de Mathtools actuellement l’opus 22 de Webern - et du coup j’ai regardé le patch proposé par Jérôme et les tiens. Or, pour celui de Jérôme, où Lisp-first est utilisé, il est avantageusement remplacé par Lisp-nth dans la mesure où on peut choisir la hauteur de départ.
De même, j’arrive aux mêmes résultats avec Lisp-nth dans les patchs dans inversion_nth_Pivot sans passer par rotate et Lisp-car, les seules différences sont l’ordre du choix de la hauteur de départ qui est différente et l’octave qui est une octave plus haut. C’est pareil aussi avec inversion_nth_pivot_liste via l’Om-loop qui m’a bien intéressé et sur lequel - om-loop - je ne suis pas très performant. J’ai bien noté l’utilisation de forloop et là, effectivement de la nécessité de passer par rotate. En revanche, j’ai substitué dans un premier temps Lisp-car par Lisp-nth, et ça fonctionne mais avec des résultats différents. Puis, partant de cette base, où Lisp-nth est placé en sortie de forloop pour entrer dans dx->x pour le choix de la hauteur de note mais qui du coup n’est limité qu’à une seule hauteur, et n’étant pas satisfait sur ce point là, j’ai remarqué que Lisp-nth pouvait-être indépendant et qu’on pouvait ainsi lui indiquer via une seconde entrée dans l’om-loop le choix de la hauteur de départ pour l’inversion. Et là, j’ai exactement les mêmes résultats que ton patch sur la première position mais avec l’avantage de pouvoir décliner différentes inversions. D’ailleurs, c’est intéressant à examiner car selon les hauteurs différentes j’ai des répétitions de hauteurs, avec une différence d’octave ou non, dont le nombre est différent…
Donc, concernant Lisp-car, si je comprends bien sa fonction est similaire à Lisp-first ? Pour ma part, j’ai pris l’habitude d’utiliser Lisp-nth car je le trouve plus souple, d’autant qu’on peut effectuer des choix aléatoires si on le souhaite grâce à ses deux entrées.
En tout cas, ce que je trouve intéressant avec OM, c’est la possibilité de passer aussi par des chemins différents pour arriver à un même résultat.
Bien entendu, je peux vous envoyer les fichiers avec une explication avec copies d’écran sur ce que j’ai modifié.

PS : Je travaille aussi, dans une sorte de va-et-vient très instructif, avec Opusmodus, le soft de CAO développé par Janusz Podrazik bien connu pour son implémentation des outils de la Set Theory en Lisp et dans lequel il y a une fonction dédiée pour cette inversion avec une hauteur de départ spécifiée :
(setf renversement (pitch-invert-start 'eb4 '(eb4 b4 bb4 d4 cs4 c4 fs4 e4 g4 f4 a4 gs4))) ===> (eb4 g3 gs3 e4 f4 fs4 c4 d4 b3 cs4 a3 bb3)
(setf renversement (pitch-invert-start 'fs4 '(eb4 b4 bb4 d4 cs4 c4 fs4 e4 g4 f4 a4 gs4))) ===> (a4 cs4 d4 bb4 b4 c5 fs4 gs4 f4 g4 eb4 e4)
L’intérêt, c’est qu’on peut dans la ligne de script insérer les durées (ici deux tuplets, un de 5 pour une noire et un de 7 pour une noire), les nuances de dynamiques et les articulations, avec une traduction en partition en notation standard très aisée:
(setf renversInteg (pitch-invert-start 'eb4 '(5q eb4 sfz stacc+gliss b4 p stacc bb4 mp stacc q d4 stacs+marc cs4 ppp marc+stacc 7q c4 mf h fs4 ten+marc e4 f ped+gliss g4 f4 pp e a4 fermata gs4 p)))
====> (5q eb4 sfz stacc+gliss g3 p stacc gs3 mp stacc q e4 stacs+marc f4 ppp marc+stacc 7q fs4 mf h c4 ten+marc d4 f ped+gliss b3 cs4 pp e a3 fermata bb3 p)
Une autre fonction, de transposition, pitch-transpose-start, s’apparente à la fonction Zn-transp-comp très utile pour calculer les modes à transposition limitées, la multiplication d’accords et le carré de transposition de Structure Ia, de Pierre Boulez.

Cher Didier,

Pour repondre a propos de la fonction car:
[Version Longue]
En lisp c’est une des toutes premieres fonctions a l’origine de ce langage. en LISt Processing tout est liste. Bon, ca on a compris. Apres la naissance de la liste a cote de l’atome (ce qui n’est pas une liste), vient le processing de la liste, a savoir, les CAR et le CDR de la liste. Le CAR c’est la tete de liste (donc ce qui revient au First), et le CDR c’est le peuple, c-a-d le reste de la liste sans la tete de liste… etc…

[Version Courte]
Le car revient strictement au first de la liste…

Maintenant quand a nth :

nth permet effectivement de prendre le nieme elt d’une liste.

Et voila…

tout les chemins menent a Rome…

Amities
K

Merci Karim pour ta réponse. Amitiés à toi aussi.

ExInversionmiroir.omp (17.3 KB)

Re-bonjour Karim,

Merci pour ta réponse. J’en profite pour insérer les fichiers en pièces jointes.
Amitiés.
Didier

ExInversionmiroir.omp (17.3 KB)