Répétition «octave en accord»

classic Classique list Liste threaded Arborescence
10 messages Options
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Répétition «octave en accord»

Bernard Meylan
Ce message a été mis à jour le .
Bonjour/soir à tous!

Soit une pièce où il y a une quantité assez conséquente d'octaves en accords
(<c c'> <d d'> <f f'> etc.) à écrire, cela devient vite fastidieux.
Existe-t-il une manière d'«automatiser» cette écriture, du genre (j'invente
un code...): \octaveMode {c8 d8 e8 f8}, assez rapide à écrire, qui donne sur
le PDF: <c c'>8 <d d'> <e e'> <f f'>? Un peu comme le «q» qui réécrit
l'accord précédent (mais dans mon cas, il s'agit non pas d'une répétition de
la même octave, mais bien de notes différentes...)



-----
Cordialement

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

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

Bernard
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

survoje
Bonjour Bernard,

Il y a quelque temps, quelqu'un de la liste m'avait passé le code suivant :

Exemple pour me faire un accord de La mineur :

--------------------------

accAm =
   #(define-music-function (parser location p) (ly:duration?)
     #{ <a c e> $p r #})
--------------------------

que j'appelai par \accAm8 ou \accAm4 ou \accAm2 selon les besoins. Ça
marche en v2.18.2...
(Remarque : jil y a un "rest" dans ma ligne puisque j'en voulais, mais
ça peut se retirer.)

Si ça peut te mettre sur une piste !

Cordialement
Gérard

Le 30/06/2018 à 13:22, Bernard Meylan a écrit :

> Bonjour/soir à tous!
>
> Soit une pièce où il y a une quantité assez conséquente d'octaves en accords
> (<c c'> <d d'> <f f'> etc.) à écrire, cela devient vite fastidieux à écrire.
> Existe-t-il une manière d'«automatiser» cette écriture, du genre (j'invente
> un code...): \octaveMode {c8 d8 e8 f8}, assez rapide à écrire, qui donne sur
> le PDF: <c c'>8 <d d'> <e e'> <f f'>? Un peu comme le «q» qui réécrit
> l'accord précédent (mais dans mon cas, il s'agit non pas d'une répétition de
> la même octave, mais bien de notes différentes...)
>
>
>
> -----
> Cordialement
>
> Bernard
> --
> Sent from: http://lilypond-french-users.1298960.n2.nabble.com/
>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr


_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

RE: Répétition «octave en accord»

etienneperrine
En réponse à ce message posté par Bernard Meylan
Bonsoir,

Je pense que cela doit correspondre à votre recherche :
http://lsr.di.unimi.it/LSR/Snippet?id=445

Cordialement,

Étienne PERRINE

-----Message d'origine-----
De : lilypond-user-fr
[mailto:lilypond-user-fr-bounces+etienneperrine=[hidden email]] De la part
de Bernard Meylan
Envoyé : samedi 30 juin 2018 13:23
À : [hidden email]
Objet : Répétition «octave en accord»

Bonjour/soir à tous!

Soit une pièce où il y a une quantité assez conséquente d'octaves en accords
(<c c'> <d d'> <f f'> etc.) à écrire, cela devient vite fastidieux à écrire.
Existe-t-il une manière d'«automatiser» cette écriture, du genre (j'invente
un code...): \octaveMode {c8 d8 e8 f8}, assez rapide à écrire, qui donne sur
le PDF: <c c'>8 <d d'> <e e'> <f f'>? Un peu comme le «q» qui réécrit
l'accord précédent (mais dans mon cas, il s'agit non pas d'une répétition de
la même octave, mais bien de notes différentes...)



-----
Cordialement

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

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr


_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

Bernard Meylan
En réponse à ce message posté par survoje
Merci pour ta... piste! En fait ta solution m'a mis sur la piste d'une
fonction qui permet exactement de générer des octaves à partir de notes
seules: http://lsr.di.unimi.it/LSR/Item?id=445



-----
Cordialement

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

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Cordialement

Bernard
jpq
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

jpq
Bonjour,

Une autre méthode constaterait à taper les notes sous la forme a c f
e... puis sous Notepad++ utiliser un remplacer (Ctrl-H) en cochant
"Expression régulière".

On mettrai (. )\s à remplacer par <$1 $1'>  (avec une espace après >)
par exemple ce qui a pour effet de remplacer

a b c d e f
e a b f e g

par

<a a'> <b b'> <c c'> <d d'> <e e'> <f f'>
<e e'> <a a'> <b b'> <f f'> <e e'> <g g'>

J'utilise quelques fois ce mode de remplacement pour des modifications
sophistiquées. Il n'y a pas de risques car on peut toujours faire une
Ctrl-Z pour annuler.

Je pense que sous Linux on peut aussi trouver un éditeur qui accepte les
expressions rationnelles mais je ne connais pas.

Cordialement
Jean-Paul

Le 30/06/2018 à 15:23, Bernard Meylan a écrit :

> Merci pour ta... piste! En fait ta solution m'a mis sur la piste d'une
> fonction qui permet exactement de générer des octaves à partir de notes
> seules: http://lsr.di.unimi.it/LSR/Item?id=445
>
>
>
> -----
> Cordialement
>
> Bernard
> --
> Sent from: http://lilypond-french-users.1298960.n2.nabble.com/
>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>


_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
jpq
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

jpq
Sous frescolbaldi on peut aussi utiliser les expressions rationnelles.
Il suffit de cocher la case Regex dans un remplacer (Ctrl-h)

On écrirait rechercher (.)\s et remplacer par <\1 \1'>

cordialement
jean-Paul

Le 30/06/2018 à 16:14, Jean-Paul Quelen a écrit :

> Bonjour,
>
> Une autre méthode constaterait à taper les notes sous la forme a c f
> e... puis sous Notepad++ utiliser un remplacer (Ctrl-H) en cochant
> "Expression régulière".
>
> On mettrai (. )\s à remplacer par <$1 $1'>  (avec une espace après >)
> par exemple ce qui a pour effet de remplacer
>
> a b c d e f
> e a b f e g
>
> par
>
> <a a'> <b b'> <c c'> <d d'> <e e'> <f f'>
> <e e'> <a a'> <b b'> <f f'> <e e'> <g g'>
>
> J'utilise quelques fois ce mode de remplacement pour des modifications
> sophistiquées. Il n'y a pas de risques car on peut toujours faire une
> Ctrl-Z pour annuler.
>
> Je pense que sous Linux on peut aussi trouver un éditeur qui accepte
> les expressions rationnelles mais je ne connais pas.
>
> Cordialement
> Jean-Paul
>
> Le 30/06/2018 à 15:23, Bernard Meylan a écrit :
>> Merci pour ta... piste! En fait ta solution m'a mis sur la piste d'une
>> fonction qui permet exactement de générer des octaves à partir de notes
>> seules: http://lsr.di.unimi.it/LSR/Item?id=445
>>
>>
>>
>> -----
>> Cordialement
>>
>> Bernard
>> --
>> Sent from: http://lilypond-french-users.1298960.n2.nabble.com/
>>
>> _______________________________________________
>> liste de diffusion lilypond-user-fr
>> [hidden email]
>> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>>
>


_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
jpq
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

jpq
En réponse à ce message posté par jpq
Sous frescolbaldi on peut aussi utiliser les expressions rationnelles.
Il suffit de cocher la case Regex dans un remplacer (Ctrl-h)

On écrirait rechercher (.)\s et remplacer par <\1 \1'>

cordialement
jean-Paul



Le 30/06/2018 à 16:14, Jean-Paul Quelen a écrit :

> Bonjour,
>
> Une autre méthode constaterait à taper les notes sous la forme a c f
> e... puis sous Notepad++ utiliser un remplacer (Ctrl-H) en cochant
> "Expression régulière".
>
> On mettrai (. )\s à remplacer par <$1 $1'>  (avec une espace après >)
> par exemple ce qui a pour effet de remplacer
>
> a b c d e f
> e a b f e g
>
> par
>
> <a a'> <b b'> <c c'> <d d'> <e e'> <f f'>
> <e e'> <a a'> <b b'> <f f'> <e e'> <g g'>
>
> J'utilise quelques fois ce mode de remplacement pour des modifications
> sophistiquées. Il n'y a pas de risques car on peut toujours faire une
> Ctrl-Z pour annuler.
>
> Je pense que sous Linux on peut aussi trouver un éditeur qui accepte
> les expressions rationnelles mais je ne connais pas.
>
> Cordialement
> Jean-Paul
>
> Le 30/06/2018 à 15:23, Bernard Meylan a écrit :
>> Merci pour ta... piste! En fait ta solution m'a mis sur la piste d'une
>> fonction qui permet exactement de générer des octaves à partir de notes
>> seules: http://lsr.di.unimi.it/LSR/Item?id=445
>>
>>
>>
>> -----
>> Cordialement
>>
>> Bernard
>> --
>> Sent from: http://lilypond-french-users.1298960.n2.nabble.com/
>>
>> _______________________________________________
>> liste de diffusion lilypond-user-fr
>> [hidden email]
>> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>>
>


_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

Gilles Thibault-2
En réponse à ce message posté par Bernard Meylan
Le 2018-06-30 15:23, Bernard Meylan a écrit :
> Merci pour ta... piste! En fait ta solution m'a mis sur la piste d'une
> fonction qui permet exactement de générer des octaves à partir de notes
> seules: http://lsr.di.unimi.it/LSR/Item?id=445
>

Notez que visuellement la solution ci-dessous donne le même résultat

%%
\version "2.19.65"
music = \relative { c'4 d r g f e f g <e g c>1}
\new Voice << \music \transpose c c' \music >>
%%


Je pensais que cela poserait des problèmes avec des articulations mais
apparemment non :

%%
\version "2.19.65"
music = \relative { c'4-. d-. r g( f e f g) <e g c>1-> }
\new Voice << \music \transpose c c' \music >>
%%

NB
Bon, désolé de répondre si tard.

--
Gilles

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

Gilles Thibault-2

> %%
> \version "2.19.65"
> music = \relative { c'4-. d-. r g( f e f g) <e g c>1-> }
> \new Voice << \music \transpose c c' \music >>
> %%


Pour la fonction correspondante, ça donnerait (en reprenant le nom de la
fonction du snippet http://lsr.di.unimi.it/LSR/Item?id=445) :

%%

music = \relative { c'4-. d-. r g( f e f g) <e g c>1-> }

makeOctaves = #(define-music-function (parser location arg mus)
(integer? ly:music?)
   (let ((p1 (ly:make-pitch 0 0 0))
         (p2 (ly:make-pitch arg 0 0)))
     #{ << $mus \transpose $p1 $p2 $mus >> #}))

\new Voice \makeOctaves #1 \music
\new Voice \makeOctaves #-1 \music

%%

Si on préfère tout en scheme (légérement plus court ici)

%%

makeOctaves = #(define-music-function (parser location arg mus)
(integer? ly:music?)
   (make-simultaneous-music (list
      mus
      (ly:music-transpose (ly:music-deep-copy mus)
                          (ly:make-pitch arg 0 0)))))


\new Voice \makeOctaves #1 \music
\new Voice \makeOctaves #-1 \music

%%

--
Gilles

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: Répétition «octave en accord»

Gilles Thibault-2
> makeOctaves = #(define-music-function (parser location arg mus)
> (integer? ly:music?)
>   (make-simultaneous-music (list
>      mus
>      (ly:music-transpose (ly:music-deep-copy mus)
>                          (ly:make-pitch arg 0 0)))))
>
>

2 dernières choses.

1- la fonction ci-dessus copie en double les textes : ce n'est pas bien
!

music = \relative { c'4-. d-. r g( f^"coucou" e f g) <e g c>1-> }
\new Voice \makeOctaves #1 \music
\new Voice \makeOctaves #-1 \music

Le "coucou" est en double...
Il ne faudrait pas copier les TextScript

2- La fonction \makeOctaves du snippet
http://lsr.di.unimi.it/LSR/Item?id=445 ne marche pas pour moi avec
l'exemple ci-dessus !
J'ai du changer la fonction (octave-up m t) pour que ça fonctionne :

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

#(define (octave-up m t)
  (let* ((old-pitch (ly:music-property m 'pitch))
         (new-pitch (ly:make-pitch
           (+ (ly:pitch-octave old-pitch) t)
           (ly:pitch-notename old-pitch)
           (ly:pitch-alteration old-pitch)))
         (new-note (ly:music-deep-copy m)))
   (set! (ly:music-property new-note 'pitch) new-pitch)
   new-note))

#(define (octavize-chord elements t)
  (cond ((null? elements) elements)
      ((eq? (ly:music-property (car elements) 'name) 'NoteEvent)
        (cons (car elements)
              (cons (octave-up (car elements) t)
                    (octavize-chord (cdr elements) t))))
      (else (cons (car elements) (octavize-chord (cdr elements ) t)))))

#(define (octavize music t)
  (if (eq? (ly:music-property music 'name) 'EventChord)
        (ly:music-set-property! music 'elements (octavize-chord
(ly:music-property music 'elements) t)))
  music)

makeOctaves = #(define-music-function (parser location arg mus)
(integer? ly:music?)
  (music-map (lambda (x) (octavize x arg)) (event-chord-wrap! mus)))

music = \relative { c'4-. d-. r g( f^"coucou" e f g) <e g c>1-> }

\new Voice \makeOctaves #1 \music
\new Voice \makeOctaves #-1 \music

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



--
Gilles

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr