Subject: Rendu Midi pour une fin de morceau (Didier)

From: Didier Griffaut <[email-masked]>
Date: Tue, 13 Mar 2018 12:47:37 +0100

Bonjour Julien,

Voici un code minimal pour la gestion des tags et la sortie midi d'une 
note longue en désinence.
En effet, le tilde "~" de prolongation ne fonctionne pas, Lily ne 
transmets pas les commandes midi de nuances.
Par contre il est possible d'utiliser le tenuto cependant, le résultat 
dépend beaucoup du VSTi ou du SoundFont affecté à la transformation des 
commandes midi en audio et qui ne dépend pas de Lilypond.

\version "2.18.2"

partition = \relative c'' {
   r2. c4\mf d e f g
   \tag #'edit { a1 } { \tag #'midi { a2-- a64--\> \repeat unfold 30 
a64-- a64\ppp } } }

finale = {
  \new Staff \with { midiInstrument = "flute"} { \partition }}

% sortie edition
\score {
   { \keepWithTag #'edit \finale }
   \layout {}
}
% sortie midi
\score {
   { \keepWithTag #'midi \finale }
%  \layout {}   % a décommenter pour vérifier le résultat sur la partition
   \midi {}
}

A noter que pour améliorer les effets midi de notes tel que le trille, 
il existe le script articulate:
http://lilypond.org/doc/v2.18/Documentation/notation/the-articulate-script

Le 11/03/2018 17:19, julien a écrit :

/Bonjour Didier, merci pour cette astuce. Je ne maîtrise pas encore la 
technique des tags pour séparer les résultats écrits et sonores. Par 
contre, j'ai testé le rendu Midi en modifiant la dynamique d'une note 
tenue finale en suivant tes indications. Malheureusement, je n'entends 
pas d'atténuation. La première nuance indiquée au début de la note reste 
malgré les diminutions suivantes. Pareil en changeant le lecteur audio. 
Dommage./

---

From: Didier Griffaut <[email-masked]>
Date: Tue, 13 Mar 2018 13:02:24 +0100

Malheureusement, ce code ne fonctionne pas chez moi :(

Analyse...

Interprétation en cours de la musique...[8]

Pré-traitement des éléments 
graphiques.../usr/share/lilypond/2.18.2/scm/define-markup-commands.scm:950:59: 
In procedure car in expression (car x):

/usr/share/lilypond/2.18.2/scm/define-markup-commands.scm:950:59: Wrong 
type (expecting pair): largeurs

Arrêté avec le code de retour 1

Le 11/03/2018 18:31, NOreply <[email-masked]> a écrit :
> \version "2.18.2"
> \paper {
>    system-system-spacing.basic-distance = #20
> }
>
> gridPath =
> \markup
> \with-dimensions #'(0 . 0) #'(-4.3 . 2)
> \path #0.1
> #'((moveto    0   -15.1)
>     (rlineto    26.5   9.9)
>     
>     )
> coinPath =
> \markup
> \with-dimensions #'(0 . 0) #'(-4.3 . 2)
> \path #0.1
> #'((moveto    12.5   -10)
>     (rlineto    14.5   -5.1)
>     (moveto    12.5   -10) ; on peut remplacer par lineto pour ajuster les
> largeurs de cellules
>     (rlineto    14.4   4.8)
>     )
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
> "\\/" = #(define-music-function
>            (parser location  mus1 mus2)
>            ( ly:music? ly:music?  )
>            #{
>              \mark \markup { \gridPath }
>              \once \override ChordName.extra-offset = #'(1 . .5 )
>              $mus1
>              \once \override ChordName.extra-offset = #'(3 . -3 )
>              $mus2
>      
>            #})
>
> v = #(define-music-function
>        (parser location  mus1 mus2 )
>        ( ly:music? ly:music?  )
>        #{
>          \mark \markup { \coinPath }
>          \once \override ChordName.extra-offset = #'(2 . -1 )
>          $mus1
>          \once \override ChordName.extra-offset = #'(-2 . -1 )
>          $mus2
>
>      
>        #})
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%
> \new ChordNames \with {
>    \override BarLine.bar-extent = #'(-5 . 5)
>    \consists "Bar_engraver"
>    \consists "Staff_symbol_engraver"
>    \consists "Percent_repeat_engraver"
> }
>
> \chordmode {
>    \omit BarNumber
>    \override ChordNames.ChordName.extra-offset = #'(10 . -1 )
>    \override ChordNames.StaffSymbol.line-positions = #'( -10 10 )
>   
>    \bar ".|:"  bes1:7
>    \/  c2 d
>    e1
>    \v f2.   c4    \break
>    \repeat percent 2  {e1}
>    \v c2. d4  \noBreak
>    c1
>    f1:maj7
>    f:7 c e
>    \bar ":|."
> }
>
> \layout {
>    indent = 0
>    ragged-right = ##f
>    ragged-last = ##f
>
>    \context {
>      \Score
>      \omit BarNumber
>      \override SpacingSpanner.strict-note-spacing = ##t
>      proportionalNotationDuration = #(ly:make-moment 1/16)
>    }
> }

---

From: Didier Griffaut <[email-masked]>
Date: Tue, 13 Mar 2018 15:17:00 +0100

Finalement, ça fonctionne, l'erreur était due à une ligne de commentaire 
qui était coupée en deux:

J'ai complété le code avec les cas de 3 accords ( que j'ai nommé w faute 
de mieux) et de 4 accords (x):

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

\version "2.18.2"
\paper {

gridPath =
\markup

    )
coinPath =
\markup
    (moveto    12.5   -10)
gridCoinPath =
             (lineto    26.5   -5.3)
             (moveto    13.50   -10.0)
             (lineto    26.5   -15.00)
croixPath =
             (lineto    26.5   -5.3)
             (moveto    0   -5.3)
             (lineto    26.5   -15.00)
  )

           #})

       #})

w = #(define-music-function
           (parser location  mus1 mus2 mus3 )
           ( ly:music? ly:music? ly:music? )
           #{
             \mark \markup { \gridCoinPath }
             \once \override ChordName.extra-offset = #'(1 . .5 )
             $mus1
             \once \override ChordName.extra-offset = #'(-2 . -4 )
             $mus2
             \once \override ChordName.extra-offset = #'(1 . -1 )
             $mus3

           #})

x = #(define-music-function
           (parser location  mus1 mus2 mus3 mus4 )
           ( ly:music? ly:music? ly:music? ly:music? )
           #{
             \mark \markup { \croixPath }
             \once \override ChordName.extra-offset = #'(0 . -0.5 )
             $mus1
             \once \override ChordName.extra-offset = #'(4 . 2 )
             $mus2
             \once \override ChordName.extra-offset = #'(-3 . -4 )
             $mus3
             \once \override ChordName.extra-offset = #'(1 . -1 )
             $mus4

           #})

\chordmode {
   \omit BarNumber

   \bar ".|:"  bes1:7
   \/  c2 d
   e1
   \v f2.   c4    \break
   \repeat percent 2  {e1}
   \w c2 d4 c  \noBreak
   c1
   f1:maj7
   f:7
   \x c4 e g c  e1
   \bar ":|."
}

\layout {
   indent = 0
   ragged-right = ##f
   ragged-last = ##f

   \context {
     \Score
     \omit BarNumber

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

Le 13/03/2018 à 13:02, Didier Griffaut a écrit :
> /usr/share/lilypond/2.18.2/scm/define-markup-commands.scm:950:59: 
> Wrong type (expecting pair): largeurs
>

---

From: julien <[email-masked]>
Date: Tue, 13 Mar 2018 14:11:44 -0700 (MST)

Bonjour Didier,
merci pour tes conseils.
J'ai un peu mieux compris la gestion des tags.

Par contre, l'effet Midi de ta proposition de codage équivaut à un trille
sur une note : on entend le rythme en quadruple croche, mais avec un effet
de diminué, c'est vrai.

Quant au script articulate, je l'ai découvert il y a peu de temps et m'en
sers souvent. Mais il n'est pas utile pour ces descrendi de fin de phrase.
Merci pour ton intérêt et tes éclaircissements.

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/