lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: frescobaldi, saisie midi et enhramoniques


From: Christophe Pochon
Subject: Re: frescobaldi, saisie midi et enhramoniques
Date: Tue, 28 Apr 2015 10:18:05 +0200

J'ai trouvé une fonction scheme dans les snippets qui peut automatiquement réparer tout ça, moyennant une petite astuce.

Cette fonction est prévue pour nettoyer du code en do. L'astuce consiste à transposer la musique en do, la nettoyer, puis la retransposer dans la tonalité d'origine.


%%%%%%%%%%%%%%

\version "2.18"

#(define (naturalize-pitch p)

(let ((o (ly:pitch-octave p))

(a (* 4 (ly:pitch-alteration p)))

;; alteration, a, in quarter tone steps,

;; for historical reasons

(n (ly:pitch-notename p)))

(cond

((and (> a 1) (or (eq? n 6) (eq? n 2)))

(set! a (- a 2))

(set! n (+ n 1)))

((and (< a -1) (or (eq? n 0) (eq? n 3)))

(set! a (+ a 2))

(set! n (- n 1))))

(cond

((> a 2) (set! a (- a 4)) (set! n (+ n 1)))

((< a -2) (set! a (+ a 4)) (set! n (- n 1))))

(if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))

(if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))

(ly:make-pitch o n (/ a 4))))


#(define (naturalize music)

(let ((es (ly:music-property music 'elements))

(e (ly:music-property music 'element))

(p (ly:music-property music 'pitch)))

(if (pair? es)

(ly:music-set-property!

music 'elements

(map (lambda (x) (naturalize x)) es)))

(if (ly:music? e)

(ly:music-set-property!

music 'element

(naturalize e)))

(if (ly:pitch? p)

(begin

(set! p (naturalize-pitch p))

(ly:music-set-property! music 'pitch p)))

music))


naturalizeMusic =

#(define-music-function (parser location m)

(ly:music?)

(naturalize m))


mamusicavecdesfautes = \relative c' {\key bes \major ais c d dis f g a ais}


music = \transpose bes c \mamusicavecdesfautes


\transpose c bes {\naturalizeMusic \music}


%%%%%%%%%%%%%%%


A+


Christophe





Le 28 avril 2015 09:54, Calixte Faure <address@hidden> a écrit :
Bonjour Laurent,

Malheureusement Frescobaldi ne détecte pas la tonalité automatiquement, on peut néanmoins et préciser si les altérations sont des dièses ou des bémols dans Outils > Entrée MIDI.
Si tous tes ais doivent devenir des bes, tu peux toujours Édition > Remplacer…

Cordialement,
Calixte.

Le 28 avril 2015 09:09, legoss <address@hidden> a écrit :
Bonjour à tous,

J'ai essayé la capture MIDI sous frescobaldi. Le signal MIDI passe sauf que
les notes altérées ne sont pas toujours en rapport avec la tonalité de
l'œuvre. Ex: œuvre en Sib, "ais" saisi au lieu de "bes".

1. Existe-t-il un moyen d'obtenir des altérations en fonction de la tonalité
indiquée par le code lilypond?
2. Si non, existe-t-il en moyen de corriger ces incohérences dans le code...
sans le faire note par note?

Merci pour votre aide!
Cordialement,
Laurent



--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/frescobaldi-saisie-midi-et-enhramoniques-tp7582871.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr


_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr



reply via email to

[Prev in Thread] Current Thread [Next in Thread]