Visualisation graphique de la musique

Bonjour à tous

Une curiosité ou bien une tendance? En tous cas voici un exemple de représentation possible; reste à lier ceci avec le graveur Lilypond.:wink:

https://public.tableau.com/views/Songbird/Songbird?:language=en&:display_count=y&:origin=viz_share_link&:showVizHome=no#3

Bonjour Michel,

Je n’ai pas noté (…) qui a proposé ça dans ce genre. En épaissisant les traits?

\version "2.16.0"

%% Works with 2.17.6
%% Works with 2.18.0
%% Works with 2.19.1

#(define (flat-gliss value)
(lambda (grob)
(let* ((left-Y (assoc-get 'Y (ly:grob-property grob 'left-bound-info)))
(stencil (ly:line-spanner::print grob))
(stencil-x-ext (ly:stencil-extent stencil X))
(line-thickness (ly:staff-symbol-line-thickness grob))
(staff-space (ly:staff-symbol-staff-space grob))
(half-gliss-thick (- (/ staff-space 2) line-thickness))
(bound-left (ly:spanner-bound grob LEFT))
(bound-right (ly:spanner-bound grob RIGHT))
(grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name)))
(note-head? (lambda (x) (eq? (grob-name x) 'NoteHead)))
(staff-pos-left
(if (note-head? bound-left)
(ly:grob-property bound-left 'staff-position)
0))
(staff-pos-right
(if (note-head? bound-right)
(ly:grob-property bound-right 'staff-position)
0))
(x-corr (lambda (x) (if (>= (abs x) 6) line-thickness 0)))
(new-stencil
(ly:round-filled-box
(let ((x-corr-left (x-corr staff-pos-left))
(x-corr-right (* -4 (x-corr staff-pos-right))))
(cons (+ x-corr-left (car stencil-x-ext))
(+ x-corr-right
(cdr stencil-x-ext)
(* line-thickness 3))))
(interval-widen (cons left-Y left-Y) (- half-gliss-thick value))
0.1)))

(ly:grob-set-nested-property! grob '(right-bound-info Y) left-Y)
new-stencil)))

flatGliss =
#(define-music-function (parser location glissando-stubs? val)
((boolean? #t) number?)
#{

#(if glissando-stubs?
#{ \override Glissando #'after-line-breaking = ##t #}
#{ \revert Glissando #'after-line-breaking #})
\override Glissando #'stencil = #(flat-gliss val)
\override Glissando #'breakable = ##t
#})

%%%%%%%%%%%%%%%%%%
%% EXAMPLE
%%%%%%%%%%%%%%%%%%

one = \relative c' {

b1 \glissando
%% Works, because a spacer-rest doesn't define a NoteColumn
s19
\once \hideNotes
b1
<e' d >1 \glissando
\break
s1
8
\break

}

two = \relative c' {
s1
f1 \glissando
s1*6
\once \hideNotes
b1
}

three = \relative c' {
s12
d'1 \glissando
s1
4
\once \hideNotes
d1
}

four = \relative c' {
s13
as''1 \glissando
s1
2 \break
a!4\glissando
b \glissando
c2 \glissando
s1*2
\revert Glissando #'stencil
\override Glissando #'thickness = #3
d1 \glissando
s2..
f,1
}

\score {
\new Staff
<<
\new Voice \one
\new Voice \two
\new Voice \three
\new Voice \four

\layout {
\context {
\Voice
%% Increasing the number will result
%% in a more narrow line.
%% Warning: if it is increased > 0.4
%% a warning will appear and no line is printed!

\flatGliss #0.23
\override NoteHead #'duration-log = #2
\override Stem #'stencil = ##f
}
\context {
\Staff
\remove "Time_signature_engraver"
}
\context {
\Score
defaultBarType = #"empty"
}
}
}

Bonjour à tous

Une curiosité ou bien une tendance? En tous cas voici un exemple de représentation possible; reste à lier ceci avec le graveur Lilypond.:wink:

https://public.tableau.com/views/Songbird/Songbird?:language=en&:display_count=y&:origin=viz_share_link&:showVizHome=no#3

Bonjour,

Je ne sais pas dans quelle mesure la question est sérieuse... en tous cas, intéressante.

Sans grande surprise, le code que proposait Jacques est de Harm (https://lists.gnu.org/archive/html/lilypond-user/2014-03/msg00260.html), qui l'a depuis intégré à LilyPond lui-même, si bien qu'aujourd'hui, il est relativement simple de créer ce genre de graphiques avec quelque chose comme :

\version "2.23.0"

musique = <<
{ r8 g'16\- c''\- e''\- g'\- c''\- e''\- }
\\
{ r16 e'8.~\- e'4 }
\\
{ c'2\- }
>>

{ \musique }

\score {
\layout {
\context {
\Voice
\consists "Duration_line_engraver"
\override DurationLine.color = grey
\remove "Stem_engraver"
\remove "Tie_engraver"
\remove "Rest_engraver"
\remove "Dots_engraver"
\omit NoteHead
}
\context {
\Staff
\override StaffSymbol.line-count = 15
\override StaffSymbol.color = lightgrey
\remove "Clef_engraver"
\remove "Time_signature_engraver"
}
\context {
\Score
\remove "System_start_delimiter_engraver"
}
}
\musique
}

Cordialement,
Jean

···

Le 23/01/2021 à 10:52, Michel Guénard (gmail) a écrit :