Subject: Re: sordatura et midi

From: Martial <[email-masked]>
Date: Fri, 27 Jun 2008 23:39:14 +0200

> est-il possible de faire en sorte que le midi prenne en compte la
> scordatura, par exemple en lui indiquant dans un fichier à part la
> relation entre la note écrite et la note qui doit être jouée ?

si j'ai bien compris :
on écris une tablature avec le nom des notes comme
si l'instrument était accordé normalement !

Je ne sais pas comment faire pour sortir un fichier midi avec
le bon son en exploitant une relation note écrite note joué
mais est-ce que ceci marcherai :
changer le réglage des  cordes: \set TabStaff.stringTunings

Le réglage de la corde est données par un système de liste avec un
nombre entier pour chaque corde, le numéro de la hauteur (mesurée en
demi-tons par rapport au milieu C) d'une corde. LilyPond calcule
automatiquement le nombre de chaînes de caractères en regardant
stringTuning.

Exemple  : mon instrument n'a qu'une corde accordé en do

%%----------------------------------------
frag = {
  \set TabStaff.stringTunings = #'( 0 )
   {
    c' d' e'
   }
}

\score {
  \new TabStaff { \frag }
  \layout { }
}

\score {
   \new Staff { \frag }
    \midi{ }
}
%%------------------------------------------------

Est-ce que cela le fait ?
la tablature correspond aux notes écrites
le son aux doigts sur la corde

(je n'ai pas compris comment accorder les cordes)

voir ici
http://lilypond.org/doc/v2.11/Documentation/user/lilypond/Non_002dguitar-tablatures#Non_002dguitar-tablatures

Si tu as la solution cela m'intéresse.

--
Martial

---

From: Martial <[email-masked]>
Date: Sat, 28 Jun 2008 12:47:58 +0200

Bonjour

J'ai re-copier une vieille partition quasi illisible de guitare,
et j'ai eu un mal fou pour avoir des barrés corrects.
alors pour qui qui en auraient besoin voici 2 trucs qui marchent avec 
les version 2.11.xx

%%-----------------------------------------------------------
\version "2.11.48"

%%1er version avec startTextSpan  et stopTextSpan

barreA = #(define-music-function ( parser location bartext ) (string?)
#{
\once \override Staff.TextSpanner #'font-size = #-3	
\once \override Staff.TextSpanner #'staff-padding = #4
\once \override Staff.TextSpanner #'style = #'line
\once \override Staff.TextSpanner #'bound-details =  #'((left (Y . 0)
(padding . 0.25) (attach-dir . -2)) (right (Y . 0) (padding . 0.25)
(attach-dir . 2)))
\once \override Staff.TextSpanner #'bound-details #'right #'text =
\markup {  \draw-line #'( 0 . -.5)  }
\once \override Staff.TextSpanner #'bound-details #'left #'text =
\markup { $bartext }
#})

\relative {
	\voiceOne \barreA "½BV" c' \startTextSpan e a\stopTextSpan c
}

%%2e Version d'après la 2.8 de la liste gmane.comp.gnu.lilypond.general

barreB = #(define-music-function (barre location str music) (string?
ly:music?)
            (let ((spanned-music
                    (let ((first-element #f)
                          (last-element #f)
                          (first-found? #f))
                      (music-map (lambda (m)
                                   (if (eqv? (ly:music-property m 'name)
'EventChord)
                                       (begin
                                         (if (not first-found?)
                                             (begin
                                               (set! first-found? #t)
                                               (set! first-element m)))
                                         (set! last-element m)))
                                   m)
                                 music)
                      (if first-found?
                          (begin
                            (set! (ly:music-property first-element
'elements)
                                  (cons (make-music 'TextSpanEvent
'span-direction -1)
                                        (ly:music-property first-element
'elements)))
                            (set! (ly:music-property last-element 'elements)
                                  (cons (make-music 'TextSpanEvent
'span-direction 1)
                                        (ly:music-property last-element
'elements)))))
                      music)))
         (make-music 'SequentialMusic
                'origin location
                'elements (list #{
	\once \override TextSpanner #'font-size = #-3	
	\once \override TextSpanner #'staff-padding = #3
	\once \override TextSpanner #'style = #'line
	\once \override TextSpanner #'to-barline = ##f 	
	\once \override TextSpanner #'bound-details =
	#'((left (Y . 0) (padding . 0.25) (attach-dir . -2))
	(right (Y . 0) (padding . 0.25) (attach-dir . 2)))
	\once  \override TextSpanner #'bound-details #'left #'text =
	\markup { $str }
\once  \override TextSpanner #'bound-details #'right #'text =
	\markup { \draw-line #'( 0 . -.5) }
                           #}
                            spanned-music))))

\relative c' {
	\barreB #"½BV" { \voiceOne c' e' a } c'
}	
%%-----------------------------------------------------------------

Lilypondmicalement
--
Martial

\version "2.11.48"

barreA = #(define-music-function ( parser location bartext ) (string?)
#{ 
\once \override Staff.TextSpanner #'font-size = #-3	
\once \override Staff.TextSpanner #'staff-padding = #4
\once \override Staff.TextSpanner #'style = #'line 
\once \override Staff.TextSpanner #'bound-details =  #'((left (Y . 0) (padding . 0.25) (attach-dir . -2)) (right (Y . 0) (padding . 0.25) (attach-dir . 2)))
\once \override Staff.TextSpanner #'bound-details #'right #'text = \markup {  \draw-line #'( 0 . -.5)  }
\once \override Staff.TextSpanner #'bound-details #'left #'text =  \markup { $bartext } 
#})

\relative { 

\voiceOne \barreA "½BV" c' \startTextSpan e a\stopTextSpan c 

}

barreB = #(define-music-function (barre location str music) (string? ly:music?)
           (let ((spanned-music 
                   (let ((first-element #f)
                         (last-element #f)
                         (first-found? #f))
                     (music-map (lambda (m)
                                  (if (eqv? (ly:music-property m 'name) 'EventChord)
                                      (begin
                                        (if (not first-found?) 
                                            (begin
                                              (set! first-found? #t)
                                              (set! first-element m)))
                                        (set! last-element m)))
                                  m)
                                music)
                     (if first-found?
                         (begin
                           (set! (ly:music-property first-element 'elements)
                                 (cons (make-music 'TextSpanEvent 'span-direction -1)
                                       (ly:music-property first-element 'elements)))
                           (set! (ly:music-property last-element 'elements)
                                 (cons (make-music 'TextSpanEvent 'span-direction 1)
                                       (ly:music-property last-element 'elements)))))
                     music)))
             (make-music 'SequentialMusic
               'origin location
               'elements (list #{
				   		 \once \override TextSpanner #'font-size = #-3	
				   		 \once \override TextSpanner #'staff-padding = #3
						 \once \override TextSpanner #'style = #'line 
                        \once \override TextSpanner #'to-barline = ##f 	
                        \once \override TextSpanner #'bound-details =  #'((left (Y . 0) (padding . 0.25) (attach-dir . -2)) (right (Y . 0) (padding . 0.25) (attach-dir . 2)))
						 \once  \override TextSpanner #'bound-details #'left #'text =  \markup { $str } 
						 \once  \override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #'( 0 . -.5) }
                          #}
                           spanned-music))))
						   
\relative c' { 

\barreB #"½BV" { \voiceOne c' e' a } c' 

}

---

From: "Legrand Jean-Marc" <[email-masked]>
Date: Mon, 30 Jun 2008 08:58:37 +0200

Bonjour, et merci pour cette réponse !

En réalité, je ne réécris pas la tablature : je la transcris en partition normale. C'est donc une conversion de type : c'=d, d'=e, ...que je souhaite faire...

A bientôt

JMarc

-----Message d'origine-----
De : Martial [mailto:[email-masked]] 
Envoyé : vendredi 27 juin 2008 23:39
À : [email-masked]
Objet : Re: sordatura et midi

si j'ai bien compris :

\score {
  \new TabStaff { \frag }
  \layout { }
}

\score {
   \new Staff { \frag }
    \midi{ }
}

voir ici

--
Martial

L'intégrite de ce message (et toutes ses pièces jointes éventuelles) n'étant pas assurée sur internet, ENSPM Formation Industrie - IFP Training ne peut 
être tenu responsable de son contenu. Toute utilisation ou diffusion non 
autorisée est interdite. Si vous n'êtes pas destinataire de ce message, 
merci de le détruire et d'avertir l'expéditeur.

The integrity of this message (and any attachments) cannot be guaranteed on the Internet. ENSPM Formation Industrie - IFP Training
can not therefore be considered responsible for the contents. Any 
unauthorized use or dissemination is prohibited. If you are not the intended 
recipient of this message, then please delete it and notify the sender.