Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Le Deal du moment :
Réassort du coffret Pokémon 151 ...
Voir le deal

    IYU

    avatar
    Invité
    Invité


    IYU Empty IYU

    Message  Invité Mar 27 Jan 2009 - 22:28

    A


    Dernière édition par Jack 6.35 le Lun 14 Déc 2009 - 21:22, édité 1 fois
    deb76
    deb76
    Réponse à tout


    Nombre de messages : 917
    Age : 76
    Localisation : Le Tréport
    Date d'inscription : 21/10/2006

    IYU Empty Re: IYU

    Message  deb76 Jeu 29 Jan 2009 - 22:09

    met en oeuvre le langage Lisp

    Ca ne m'étonne pas. Les principaux softs de recherche développés par l'Ircam, comme Patchwork ou Open Music, ont été développés en Lisp.

    J'ai regardé - mais qu'elles sont longues à charger les vidéos - il utilise le Schème et c'est effectivement très sympa. Mais pour le peu que j'ai vu - mais je n'ai pas tout regardé - c'est parfois un peu trop chaotique avec l'utilisation quasi exclusive de la fonction Random. J'en suis un adepté mais de façon maîtrisée, c'est à dire de pouvoir avoir le choix de refuser tel ou tel évènement. C'est pour ça que j'ai tendance à privilégier le temps différé. Mais ne boudons pas notre plaisir.

    Pour ma part, j'utilise Common Music, lui aussi en Lisp.
    Notamment pour obtenir des suites de séries dodécaphoniques avec un fichier midi. Ca donne ça :

    (defun ran-row (end)
    (let ((rows (new transposer
    :of (new cycle :of '(0 1 6 -5 10 11 5 16 15 21 26 20))
    :on (new weighting :keynums '(c4 cs3 b3 fs4 fs3))))
    (rhys (new weighting
    :of `((t :min Cool (s :min 1)
    (q :weight 3)
    (te :min 3) (tq :min 3)
    ,(new cycle :of '(e. s))
    (e :weight 2))))
    (amps (new weighting :of '((mf :weight 7)
    (mp :weight 3)
    p))))
    (process while (< (now t) end)
    for k = (next rows)
    for r = (rhythm (next rhys) 70)
    for a = (amplitude (next amps))
    output (new midi :time (now)
    :keynum k :amplitude a
    :duration r)
    wait r )))
    (events (ran-row 30) "tansaa12.mid")

    Une chose aussi très intéressante, c'est à partir d'une série dodécaphonique, c'est de pouvoir appliquer le tableau de transformation qu'avait défini Pierre Boulez en écrivant dans les années 50 à John Cage et paru dans "Points de Répères". C'est Amleth, un prof d'université et qui travaille avec Common Music, qui m'a créé le patch.

    Sur une série sur laquelle je travaille autour de mon projet avec le poète Claude québecois Beausoleil, et qui a fait un poème, entre autres, sur Billie Holyday, je reprends les premières notes de "Strange Fruits" et je complète avec le reste pour obtenir la série de 12 notes, le total chromatique. Et comme je souhaitais effectuer une série de permutations, j'étais très intéressé par le tableau de Boulez. A reporter, à effectuer les calculs de permutations, c'était long et fastidieux. Avec Common Music, le temps d'écrire le code, et le résultat est immédiat :

    Le patch pour obtenir les permutations de La série "je suis un voyageur que le langage invente"
    ;; voyageur's row !
    (setq br '(60 65 55 68 59 52 61 62 58 66 63 57))
    ;; Fonction auxiliaire de transposition d'une série selon un intervalle
    (defun transpose-row (reihe intervall)
    (loop for pc in reihe collect (mod (+ pc intervall) 12)))
    ;; Renvoie la série des indexes de chacune des composantes de "reihe" au sein de "grundgestalt"
    (defun indexes-in-gg (grundgestalt reihe)
    (let ((gg (rowmod12 grundgestalt))
    (rr (rowmod12 reihe)))
    (loop for x from 0 to (- (length grundgestalt) 1)
    collect (position (list-ref rr x) gg))))
    ;; Renvoie une série "aplatie" entre 0 et 11
    (defun rowmod12 (reihe)
    (loop for x from 0 to (- (length reihe) 1)
    collect (mod (list-ref reihe x) 12)))
    ;; Fonction principale
    (defun make-voyageur-chart (reihe)
    (loop for r from 0 to (- (length reihe) 1)
    collect (indexes-in-gg reihe (transpose-row reihe (- (first reihe) (list-ref reihe r))))))
    ;; Pour afficher le beau tableau...
    (loop for x in (sort (make-voyageur-chart br) #'< :key #'first)
    do (print x))


    Et son résultat :

    MAKE-VOYAGEUR-CHART
    (0 1 2 3 4 5 6 7 8 9 10 11)
    CM(16):
    (0 1 2 3 4 5 6 7 8 9 10 11)
    (1 8 0 6 5 11 9 2 10 4 3 7)
    (2 0 7 10 9 4 3 11 1 6 8 5)
    (3 6 10 5 2 0 11 8 9 7 4 1)
    (4 5 9 2 8 10 0 6 11 1 7 3)
    (5 11 4 0 10 3 1 9 7 8 2 6)
    (6 9 3 11 0 1 7 10 4 2 5 Cool
    (7 2 11 8 6 9 10 5 0 3 1 4)
    (8 10 1 9 11 7 4 0 3 5 6 2)
    (9 4 6 7 1 8 2 3 5 0 11 10)
    (10 3 8 4 7 2 5 1 6 11 9 0)
    (11 7 5 1 3 6 8 4 2 10 0 9)

    Je n'ai plus qu'à reporter les notes midi en conséquence et j'ai mes permutations.

    PS : Maka, quand te mets-tu à Open Music, il est en version libre et il vient d'être upadaté par l'Ircam en version 6 pour le Mac ?
    avatar
    Invité
    Invité


    IYU Empty Re: IYU

    Message  Invité Ven 30 Jan 2009 - 2:47

    A


    Dernière édition par Jack 6.35 le Lun 14 Déc 2009 - 21:23, édité 1 fois
    deb76
    deb76
    Réponse à tout


    Nombre de messages : 917
    Age : 76
    Localisation : Le Tréport
    Date d'inscription : 21/10/2006

    IYU Empty Re: IYU

    Message  deb76 Ven 30 Jan 2009 - 4:10

    Bonsoir Meka,,

    J'ai regardé l'exemple que tu indiquais. Intéressant. A priori, les fonctions random qu'il utilise, et qu'il maîtrise bien sont, entre autres, à partir des intervalles qu'il définit 'I VII I V, le choix des notes midi, les durées entre 0.5 et 1 seconde, il met aussi des conditions (if...), je vois qu'il y a aussi la possibilité de choisir des gammes (aeolian). Désolé, je ne peux pas aller plus loin, j'ai Qicktime qui se plante. Je vais le lire plus tard, sur une autre machine ou j'ai peut-être eu un problème au moment du téléchargement.

    J'ai aussi commencé à regarder de plus près les exemples basiques et je pense expérimenter dans pas longtemps quelques combinaisons de choses simples.
    Oui, c'est une bonne solution.

    En ce qui concerne Open Music, au vu des exemples de code que tu as reproduit dans ton message, il me semble de cela soit un peu plus "verbeux" que ce que propose Impromptu...
    Non, ce n'est pas Open Music mais Common Lisp, l'autre dialecte de Lisp. La syntaxe est différente. Et c'est en temps différé.
    Qu'entends-tu par plus verbeux ? Dans le cadre du tableau des permutations des séries, j'ai laissé les commentaires d'Amleth, sinon, sur le calcul des séries, la syntaxe est très semblable, la différence réside notamment dans la déclaration des fonctions et des variables (define).

    Pour Open music, c'est du Lisp mais les modules sont des objets que l'on connecte ensemble. J'avais fait un petit
    Tuto sur le calcul des harmoniques ainsi qu'une série avec le choix des harmoniques que l'on souhaite. Mais avec les différentes bibliothèques on peut faire des choses bien entendu plus complexes, il y a même une sorte de séquenceur pour insérer et lire les patchs.
    Pour le tuto, c'est fait en flash et je me rends compte qu'il défile trop rapidement. Mais ça peut te donner une idée. Et le logiciel est libre...

    Contenu sponsorisé


    IYU Empty Re: IYU

    Message  Contenu sponsorisé


      La date/heure actuelle est Ven 19 Avr 2024 - 17:31

      Ne ratez plus aucun deal !
      Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
      IgnorerAutoriser