♪ - FORUM PRO : L'écriture, l'orchestration, la théorie musicale, les éditeurs de partitions, les techniques, les influences musicales, etc.
   - deb76 -
Membre ♪♪♪♪♪
Messages : 2774
Enregistré le : 07/09/2008 21:18:25
Localisation : Haute-Normandie
Contact :

   

Message  { par deb76

Bonjour,
stephaneboussuge a écrit :
deb76 a écrit : J'ai donc des questions à poser, je peux ?
Bonjour, vous pouvez poser des questions bien entendu mais je pense qu'il serait peut être mieux d'utiliser le Forum [ PUBLICITÉ ABUSIVE ] pour les questions vraiment techniques de façon à ce que tous les utilisateurs de [ SPAM COMMERCIAL ] en profite :-)
Vous pouvez vous exprimer en Français sur le Forum d'[ PUBLICITÉ ABUSIVE ] si vous le souhaitez.
Concernant les opérateurs "de base" :
http://www.cs.cmu.edu/Groups/AI/html/cl ... index.html
SB
Merci, mais ce n'est pas ce que je souhaitais car je ne suis pas programmeur, je ne suis juste qu'un utilisateur . Non, je souhaitais seulement connaître où je pouvais trouver les opérateurs arithmétiques de base (+ - / *) ainsi que ceux permettant d'effectuer les opérations d'addition, de soustraction, de multiplication modulo 12 et "n". Même demande aussi pour effectuer des calculs de tempéraments 2 ^ (1/n), avec si possible une fonction permettant d'obtenir une série arithmétique avec un pas d'incrémentation et tant que j'y suis, la fonction log. Est-ce qu'il y a des exemples de syntaxe dans la documentation. Je me sers du calcul des tempéraments afin de me créer des listes de fréquences, de midicents voire d'entiers (l'Interval vector et Ifunc se prêtent bien pour se repérer dans les classes d'intervalles en microtonalité comme n=24/48/96).

Sinon, oui, je poserais mes questions dans les deux forums.
Concrètement, j'ai fait un premier essai avec [ PUBLICITÉ ABUSIVE ] à partir d'un patch que je me suis créé avec Open Music qui est lui aussi écrit en Lisp. Ce qui m'a permis, d'ailleurs, de pouvoir me repérer dans la documentation des fonctions, on retrouve entre OM et OMP des fonctions similaires même si elles ne portent pas le même nom. Donc, j'ai fait avec OM un patch afin de calculer une multiplication d'accords façon Boulez. Grosso modo (tout est expliqué dans le Pdf joint), j'ai décomposé la série en 5 blocs comme dans l'exemple décrit par Boulez dans Relevé d'apprenti. Puis, à partir de ces 5 blocs/ECH, j'en ai ai extrait deux pour effectuer la multiplication. Je n'ai pas forcément utilisé la bonne méthode, la bonne fonction, car dans le résultat obtenu, les blocs non sélectionnés apparaissent en tant que nil. Mais bon, dans le principe, j'ai quand même l'extraction des deux blocs souhaités.
Ensuite, je n'ai pas trouvé de fonction me permettant comme avec Open Music de calculer directement la multiplication entre deux accords. Est-ce qu'elle existe ? Mais en soi, ce n'est pas grave, car ça se calcule aisément sur papier, et bien entendu sur ordinateur. Mais c'est là que mes opérateurs mathématiques modulo 12 m'ont cruellement fait défaut. Donc, j'ai fait comme si le calcul était fait et j'ai continué avec l'obtention de trois triades qui ont été ramenées en une seule liste sur laquelle j'ai enlevée les doublons à partir de leur position dans la liste (très pratique cette fonction) et finalisée en rendant cette liste de notes en un seul accord. Petite remarque perso, je trouve quand même Open Music plus rapide avec ses connexions d'icônes plutôt que taper du code. Mais bon, il y a aussi un plaisir certain à coder, c'est incontestable.
Toutefois, une chose m'étonne. Dans [ PUBLICITÉ ABUSIVE ], on peut obtenir des graphiques très différents, ce qui est intéressant, mais pourquoi ne pas avoir donné la possibilité d'avoir aussi la représentation circulaire, le fameux "pitch clock" (http://www2.siba.fi/muste1/index.php?id=73&la=en)bien pratique pour visualiser un pc-set ou une structure intervallique ?

Sinon, une fois mis de côté le problème du codage - ça m'a rappelé que je n'étais plus tout jeune - et de se repérer dans la longue liste des fonctions, ma première impression est plutôt positive. L'outil, pour ce que j'e suis en train de découvrir est puissant. Mais sa vaste tessiture, j'entends par là, sa volonté de tout couvrir, me laisse un peu circonspect. Et puis, il y a le prix. Mais bon, je continue mes essais.
Pour la multiplication d'accords, le pdf (remanié) est ici :
http://www.deb8076.eu/pdftutos/Opusmodu ... ccords.pdf

PS : je me suis permis de faire un lien de votre annonce sur audiokeys et codelab. 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
Modifié en dernier par deb76 le 06/08/2014 10:59:24, modifié 1 fois.
   - stephaneboussuge -
Membre ♪♪
Messages : 145
Enregistré le : 30/05/2013 11:46:45
Localisation : Vienne-Autriche

   

Message  { par stephaneboussuge

Bonjour,

pour modulo, utilisez la fonction modus au lieu de modulus.
Je viens de me rendre compte (grâce à vous) que la fonction à été changée mais pas au niveau de la doc Française....

Pour les opérateurs de multiplication etc.. faites un clic droit sur le menu fonction et clichez sur Nombres entiers/Nombre.

Vous trouverez les fonctions a.x,x.y qui peuvent peut être répondre à votre besoin.

Pour les autre questions, je pense que mes collègues sur le Forum [ PUBLICITÉ ABUSIVE ] seront plus à même de répondre :)

Pour ce qui est de la représentation circulaire, c'est une bonne idée et j'en prend bonne note.


SB. 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - stephaneboussuge -
Membre ♪♪
Messages : 145
Enregistré le : 30/05/2013 11:46:45
Localisation : Vienne-Autriche

   

Message  { par stephaneboussuge

Ă  propos de tutoriel, il y a a le guide rapide et surtout le tutoriel en 30 Ă©tapes .

Néanmoins, je note le besoin d'un tuto sur les opérateurs math. de base

SB 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - stephaneboussuge -
Membre ♪♪
Messages : 145
Enregistré le : 30/05/2013 11:46:45
Localisation : Vienne-Autriche

   

Message  { par stephaneboussuge

Cherchez aussi dans le champ de recherche du menu Uilitaires les fonctions:

vector-multiply et aussi multiply-sequences


SB 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - stephaneboussuge -
Membre ♪♪
Messages : 145
Enregistré le : 30/05/2013 11:46:45
Localisation : Vienne-Autriche

   

Message  { par stephaneboussuge

Pour la subdivision de listes, jetez un coup d'oeil Ă  la doc de: Gen-divide.

pour les choix de listes, les fonctions de base first, nth etc... existent toutes bien entendu puisque ce sont des fonctions de base du Lisp et toutes, absolument toutes les fonctions de base du Lisp sont accessibles dans [ SPAM COMMERCIAL ].
Mais on ne peux ajouter toute la doc du Lisp dans [ SPAM COMMERCIAL ], c'est pourquoi elle est disponible dans la zone de doc mais en tant que lien (le même lien que celui que je vous ai donné pour les opérateurs.)

Nous avons déjà prévus d'ajouter des docs sur les éléments Lisp de base mais cela viendra plus tard.

Pour le choix d'éléments (genre first etc..) jetez un oeil à la doc de 1~ 2~ 3~ etc...

SB 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - stephaneboussuge -
Membre ♪♪
Messages : 145
Enregistré le : 30/05/2013 11:46:45
Localisation : Vienne-Autriche

   

Message  { par stephaneboussuge

Ă  titre d'exemples:

(first '(a b c d e f))
=> a

(nth 3 '(a b c d e f))
=> d

(+ 2 2)
=> 4

(* 2 4)
=> 8 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - deb76 -
Membre ♪♪♪♪♪
Messages : 2774
Enregistré le : 07/09/2008 21:18:25
Localisation : Haute-Normandie
Contact :

   

Message  { par deb76

stephaneboussuge a écrit :à titre d'exemples:

(first '(a b c d e f))
=> a

(nth 3 '(a b c d e f))
=> d

(+ 2 2)
=> 4

(* 2 4)
=> 8
Bonjour,
Merci pour vos réponses. J'avais trouvé déjà un début de réponse à partir d'un site tutoriel sur le Lisp et ses fonctions arithmétiques. Ca rejoint ce que vous écrivez ci-dessus et dans les messages précédents. Petite remarque first et nth, ce qui m'intéresse dans le cas présent c'est non pas d'extraire un élément dans une liste mais dans une liste avec cinq sous-listes extraire précisément deux listes. J'ai utilisé - de mémoire car je n'ai pas accès à l'Imac en raison d'une panne générale de courant due à un violent orage - la fonction "remove" mais le résultat est bancal, car si je récupère bien la première et troisième sous-liste, pour les trois autres, j'obtiens des "nils".
Sinon, concernant le lien avec toutes fonctions, certes, effectivement elles sont toutes implantées mais quand on n'a pas l'habitude de programmer en Lisp - je ne suis qu'un utilisateur d'Open Music qui offre l'avantage d'avoir les fonctions converties en icônes et où il ne suffit quà connecter celles-ci entre elles - on se heurte d'une part à la recherche - où chercher ? - et à la syntaxe, j'entends par là non pas (first '(a b c d e f)) mais dans son écriture dans le script avec (setf...)). Au début on se prend des messages d'erreurs quand on teste et ces messages peuvent-être très incitatifs à tout envoyer promener. Ce qui n'est pas mon cas, je précise, je déteste qu'un soft me résiste dans ma découverte :D et c'est devenu un challenge pour mes neurones vieillissantes.
Ainsi, j'ai cherché vainement comment faire ce calcul pour rechercher la fréquence du fa# dans un tempérament de huitième de ton :
2 ^ (1/48) ^ 24 * 261,63 = 370,00 Hz
J'ai trouvé une fonction qui me donne immédiatement le rapport 1/48 mais en revanche pas moyen de trouver la fonction et commenr s'écrit "élevé à la puissance n". Là aussi, j'ai trouvé dans [ PUBLICITÉ ABUSIVE ] une fonction donnant le double de "élevé à la puissance n" mais rien sur juste la fonction ^.
Ceci étant, j'ai bien avancé puisque j'ai réussi à effectuer l'exemple de la multiplication d'accords de Pierre Boulez donné dans son exemple XIII dans "Relevé d'apprenti ", dans son texte "Eventuellement" et ce de A à Z. Ca m'a amené aussi, du coup à comprendre la différence fondamentale entre Open Music et [ PUBLICITÉ ABUSIVE ] concernant l'utilisation des nombres entiers (integers), [ PUBLICITÉ ABUSIVE ] les calcule dans l'absolu - je suppose que c'est dû à leur conversion en midi et en notation standard XML - ce qui donne des notations dépassant 100, alors qu'Open Music les calcule en équiivalence d'octave modulo 12 (0 à 11) et modulo "n" dans cadre microtonal jusqu'au 1/16 de ton en représentation circulaire et notation "partition".
Bref, tout ceci m'amène à penser qu'un petit tuto tout simple expliquant où sont les fonctions arithmétiques de base (addition, soustraction, multiplication, division, racine n, élevé à la puissance "n" et calcul via les logs serait bien utile. Je vais en faire un à partir de ce que j'ai découvert mais il sera, bien entendu incomplet., je pense aux possibilités de calculs matriciel.
Sinon, je vais remanier aussi le pdf pour présenter de A à Z avec [ PUBLICITÉ ABUSIVE ] l'exemple de la multiplication d'accords qui a l'avantage d'effectuer des additions et des soustractions avec les entiers. Et je le posterai dans votre forum en anglais et français.

PS : bizarre ce smilies qui apparaît dans la formule de calcul de fréquence, et qui modifie le rapport, 1/48 et non pas 1/4, j'en insère une seconde en quart de ton et toujours pour obtenir le fa# :
2 ^(1/24) ^ 12 * 261,63 = 370,00 Hz 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - stephaneboussuge -
Membre ♪♪
Messages : 145
Enregistré le : 30/05/2013 11:46:45
Localisation : Vienne-Autriche

   

Message  { par stephaneboussuge

(*(expt (expt 2 1/24) 12) 261.63)

Pour la selection de liste,il y a plein de solutions, jetez un oeil du coté de la doc de position-filter par exemple.

ex:

(position-filter '(1 3)
'((c4 d4 e4) (f4 g4 a4)
(b4 c5 d5) (e5 f5 g5)))

=> ((f4 g4 a4) (e5 f5 g5)) 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - deb76 -
Membre ♪♪♪♪♪
Messages : 2774
Enregistré le : 07/09/2008 21:18:25
Localisation : Haute-Normandie
Contact :

   

Message  { par deb76

Bonsoir,
stephaneboussuge a écrit :(*(expt (expt 2 1/24) 12) 261.63)

Pour la selection de liste,il y a plein de solutions, jetez un oeil du coté de la doc de position-filter par exemple.

ex:

(position-filter '(1 3)
'((c4 d4 e4) (f4 g4 a4)
(b4 c5 d5) (e5 f5 g5)))

=> ((f4 g4 a4) (e5 f5 g5))
Merci beaucoup, c'est exactement ce que je recherchais pour les deux fonctions. 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
   - deb76 -
Membre ♪♪♪♪♪
Messages : 2774
Enregistré le : 07/09/2008 21:18:25
Localisation : Haute-Normandie
Contact :

   

Message  { par deb76

Bonjour,

J'ai continué ma découverte d'[ PUBLICITÉ ABUSIVE ] avec dans un premier temps, à partir d'un patch créé avec Open Music, écrit aussi en Lisp mais avec une programmation visuelle, sur une multiplication d'accords selon le processus de Pierre Boulez qu'il décrit dans Penser la musique d'aujourd'hui mais surtout dans Relevé d'apprenti et son texte Eventuellement (le fameux texte polémique) avec son exemple XII et XIII bis pages 168 et 169. Pour découvrir un logiciel de programmation comme [ PUBLICITÉ ABUSIVE ] j'aime bien partir sur des choses simples et la multiplication d'accords qui permet de faire proliférer le matériau est, à partir du moment où l'on a compris le processus, très simple à calculer. Il ne suffit que de soustractions pour calculer la structure intervallique avec les entiers et d'additions pour la transposition de cette SI sur chacune des notes du second accord.
Mais habitué à programmation visuelle d'Open Music où chaque fonction et classe sont représentées par une icône qu'on relie entre elles, où il y a des opérateurs arithmétiques et mathématiques, j'ai galéré dans un premier temps pour trouver comment effectuer avec Lisp les additions, soustractions, multiplications, divisions, etc.
J'ai trouvé, d'ailleurs, ce site en français qui m'a bien aidé sur comment écrire les fonctions en Lisp :
http://valvassori.free.fr/lisp/lisp.php3, c'est très basique et bien pratique.
Sinon, pour entrer plus dans le détail, il y a ce cours "Initiation à la programmation fonctionnelle de Myram Desainte-Catherine de l'Université de Bordeaux I:
http://www.melafrit.com/education/ENSEI ... /cours.pdf
Il a aussi celui-ci, Introduction à la programmation de Harald Wertz de l'Université de Vincennes, complémentaire au premier, qui explique notamment l'arborescence des listes, des "arbres", de la syntaxe - importante- notamment avec l'imbrication des parenthèses :
- http://www.ai.univ-paris8.fr/~hw/lisp/letout.pdf -
Une introduction à Lisp, en anglais, et sous forme de résumé et qui pérsente des fonctions utiles:
http://www.cs.umd.edu/~nau/cmsc421/lisp-intro.pdf.
Il y en d'autres sur le Net, et on trouve pas mal d'exemples.

Sinon, ma toute première approche a été déconcertante et puis pour tout avouer, je n'étais pas très chaud pour me taper du code - j'ai donné avec Music 10 et Csound - mais en même temps j'étais quand même très curieux de pouvoir à partir d'un patch construit avec Open Music, que je maîtrise relativement bien, effectuer des comparaisons dans la mesure où l'on retrouve des fonctions similaires, et donc qu'on n'avance pas totalement en territoire inconnu. Et de fait, ma proximité avec Open Music m'a bien aidé. D'ailleurs, je trouve que les deux logiciels de CAO sont complémentaires. OM permettant de préparer le terrain en amont avec sa rapidité de construction de patch, puis dans la mesure où OpenModus permet de construire un projet de A à Z avec un score final et sa traduction sonore via le midi (avec le séquenceur intégré), on peut reporter le patch en script sur [ PUBLICITÉ ABUSIVE ]. Il y a aussi les possibilités du live coding instrument qui a été développé, notamment par Stéphane Boussuge et qui semble bien intéressant.
Donc, après un début difficile pour prendre ses marques et surtout trouver les fonctions qui m'intéressaient, mais c'est normal avec de tels logiciels (1)
qui supposent un investissement personnel dans l'apprentissage, j'ai réussi à effectuer de A à Z le patch créé avec Open Music.
Et je note, qu'on mémorise plutôt facilement les fonctions et leurs syntaxes et qu'on y prend un certain plaisir.
Pour ma part, le plus difficile à maitriser, c'est pour l'instant l'imbrication des fonctions et la gestion des parenthèses en respectant la syntaxe, sinon, c'est la sanction immédiate du message d'erreur qui vient vous taper sur les doigts...
Un petit exemple, pour rechercher la fréquence en Hz du 12/24 d'octave (quart de ton), Stephane Boussuge m'a donné la formule :
(*(expt (expt 2 1/24) 12) 261.63) qui a l'avantage d'être ramassée par rapport à un patch d'Open Music, et c'est la même chose pour effectuer la recherche de la fréquence du 6/17 de quarte augmentée qui se traduit par
2 ^ (1/2) ^ (6/17) * 261.63 Hz.
J'ai commencé à la présenter ainsi :
(setf n2n17 (*(expt (expt (expt 2 1/2) 1/17) 6) 261.63))
mais en examinant le calcul, je l'ai trouvé redondant avec le ^6 et du coup c'est devenu plus ramassé pour un même résultat:
(setf ic217 (*(expt (expt 2 1/2) 6/17) 261.63)) = 295.672183
Maintenant, ce que j'aimerais trouver, c'est comment faire pour afficher la suite des fréquences incrémentées dans un octave dans une liste... Avec Open Music, j'utilise une série arithmétique et une fonction répétition. Quid avec [ PUBLICITÉ ABUSIVE ] ?

Le "journal de ma découverte d'[ PUBLICITÉ ABUSIVE ]" est ici :
http://www.deb8076.eu/pdftutos/Opusmodu ... ccords.pdf

La prochine Ă©tape est de voir les outils pour manipuler dans tous les sens une sĂ©rie avec le total chromatique. 
          - Compositeur .org -       Forum des Compositeurs : Musique et Composition
RĂ©pondre