[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: programmer ?
From: |
Gilles |
Subject: |
Re: programmer ? |
Date: |
Sat, 17 Dec 2011 00:39:22 +0100 |
User-agent: |
Opera Mail/11.60 (Win32) |
Le Fri, 16 Dec 2011 23:18:21 +0100, douwen elo <address@hidden> a
écrit:
salut à tous
lilypond étant super mathématique comme interface
et étant insérable dans latex... tout un esprit
je me demandais si on pouvait programmer aevc lilypond
style
for i =1 to 8
\transpose c c+i {mélodie}
end i
ça colleriat parfaitement à l'esprit du programme et àa permettrait de
faire des trucs super originaux
de la création, vraiment
Sacha
Oui mais c'est pas du C mais du scheme (= GUILE voir lien ci-dessous).
Avec scheme et Lilypond, on peut faire quelque chose comme ça :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
myTranspose = #(define-music-function (parser location music) (ly:music?)
(let* ((n 8)
(list1 (make-list n))
; list de n elts
(list2 (map (lambda (x)(ly:music-deep-copy music)) list1))
; initialisation
(list3 (map (lambda(i)
(ly:music-transpose
(list-ref list2 i)
; transpose chaque elt à
(ly:make-pitch 0 i 0)))
; la note au dessus
(iota n)))) ; 0, 1 ... 7
(make-music 'SequentialMusic 'elements list3)))
%% identique à { ... }
music = { c'4 }
{ \myTranspose \music }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Bon on pourrait tout faire plus court mais j'ai délayé un
peu pour commenter ...
-Les fonctions qui commencent par ly: sont des fonctions Lilypond (faire
rechercher dans l'aide).
-make-music est la fonction qui te permet de créer toutes les éléments
musicaux dans Lilypond.
Faire \displayMusic \music pour savoir le nom d'un élément musical.
-Les autres fonctions sont à rechercher dans
http://www.gnu.org/software/guile/manual/guile.html
Gilles
- programmer ?, douwen elo, 2011/12/16
- Re: programmer ?,
Gilles <=
Re: programmer ?, address@hidden, 2011/12/17