Autor Thema: Polyphonie in Kombisystem aus Noten & Tabs  (Gelesen 10832 mal)

barrio

  • Gast
Polyphonie in Kombisystem aus Noten & Tabs
« am: Mittwoch, 6. Juni 2012, 09:05 »
Hi zusammen,

ich möchte mich erstmal als neues Mitglied und klassischer Gitarrist hier vorstellen. Da ich mit anderen Notensatzprogrammen einschließlich gitarrenspezifischen meine Vorstellungen nicht umsetzen konnte, bin ich über das Konzertgitarrenforum auf Lilypond gestoßen.

Aktuell möchte ich das Bachpräludium BWV 998 zweistimmig in Noten & Tabs setzen, weil ich die Akkordform im Code zu unübersichtlich finde für Änderungen. Dabei taucht folgendes Problem auf: Um exakte Tabs zu setzen habe ich bislang nur die Möglichkeit gefunden, jede Note mit Saitenangabe zu versehen. Dies sieht in den Noten wieder blöd aus, weil dann über jeder Note die Saitenangabe steht, auch die die Saite gleich bleibt. Ließe sich das in den Voreinstellungen unterdrücken? Auch mit minimumFret ging es nicht, weil die sich das anscheinend immer auf das gesamte Notensystem bezieht und nicht nur auf die Noten, die NACH dem tag folgen, oder?

Muss ich also Noten & Tabs komplett getrennt setzen? Das wäre ganz schön aufwendig...

PS Meinen Code poste ich noch, hab ich gerade nicht parat

Vielen Dank schonmal für Eure Unterstützung!

ding-dong

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #1 am: Donnerstag, 7. Juni 2012, 00:42 »
gerne warten wir auf den code!

trulli

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #2 am: Donnerstag, 7. Juni 2012, 21:39 »
Hallo barrio,

wir kennen uns aus dem Konzertgitarrenforum von Michael.

Erstmal herzlich willkommen hier, insbesondere in der Gitarrenrunde!

Deine Antworten zum Unterdrücken der Saitenangaben findest du hier:
https://archiv.lilypondforum.de/index.php?topic=1070.0
(-> im letzten Post wird z.B. \override StringNumber #'transparent = ##t genannt)

Jetzt die üblichen Hinweise:
- verwende die Suche
- schau ins Handbuch
- benenne deinen Thread möglichst sinnvoll
- poste deinen Code
- gib deine Lily-Version an

Da es hier schon eine Zeit lang eine Gitarrenecke gibt und wir auch schon viel über Tabs gepostet haben, solltest du bei vielen Problemen hier ohne neuen Thread fündig werden. Damit andere schneller etwas finden, ist ein treffender Threadtitel nützlich.

Willst du das Präludium in der transponierten Version setzen, also in D-Dur (original ist es ja in Es-Dur)? Dann brauchst du noch den Thread über heruntergestimmte Saiten:
https://archiv.lilypondforum.de/index.php?topic=503.0
 
Und nun viel Spaß hier.  :)

Grüße von Trulli

trulli

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #3 am: Donnerstag, 7. Juni 2012, 21:49 »
Kleiner Nachtrag:

Du brauchst nicht an jede Note die Saite schreiben. Bei deinem Präludium ist es nur streckenweise nötig: T1-3 und T14 sicherlich, aber bei den anderen Takten nur manchmal (es sei denn du bist Lagenfetischist...).

Noten und Tabs brauchst du auch nicht "getrennt" setzen. Was du als Ausgabe sehen willst, schreibst du einfach in den \Score Kontext.

barrio

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #4 am: Freitag, 29. Juni 2012, 06:37 »
Hallo liebe Leute,

vielen Dank für Eure Hinweise! Ich hab mich mittlerweile anhand der Notationsreferenz ganz gut reingefrickelt, sodass ich Euch hoffentlich mit weiteren totalen newbe-Fragen verschonen kann ;D

Auch die gitarrenspezischen Sachen wie Fingersätze LH / RH, Saiten-& Lagenangabe, (Halb-)barré, Aufschlag- / Abzugbindungen und custom tuning hab ich jetzt hingekriegt. Hier jetzt mit etwas Verzögerung der Code:

\version "2.12.3"  % necessary for upgrading to future LilyPond versions.

\header{
  title = "Cello Suite 1 - I Prelude (BWV1007)"
}

 \include "bbarre.ly"
 \include "fbarre.ly"

 %%------------------------------------------
%%postscript show tuning name
EADGBE =
\markup {
  \with-dimensions #'(0 . 0.8) #'(0 . 1.0)
  \postscript #"/Arial-Bold findfont
                1.3 scalefont
                setfont 0 3.6 moveto
                () show 0 2.0 moveto
                () show 0 0.6 moveto
                () show 0 -0.8 moveto
                () show 0 -2.2 moveto
                () show 0 -3.6 moveto
                (D) show
                stroke"
}
%%------------------------------------------------


#(define RH rightHandFinger)

upper = \relative c' {
  \time 4/4
  \key d \major
  \voiceOne
  \set fingeringOrientations = #'(up)
  \set stringNumberOrientations = #'(down)
  \override Fingering #'add-stem-support = ##t
  \slurDown
    r16   <a-1-\RH #2 > <fis'-2-\RH #3 >( <e-0>)
<fis-2-\RH #4 > <a,-\RH #2 >  fis' a,
r16   a fis'( e)
fis a, fis' a,

    r16   <b-0-\RH #2 > <g'-2-\RH #3 >( fis-1)
    <g-2-\RH #4 > <b,-1-\RH #3 > g' b,
r16  b g'( fis)
g b, g' b,

\bbarre #"II" {r16   <cis-\RH #2 > <g'-2-\RH #3 >( fis)
    <g-\RH #4 > <cis,-\RH #3 > g' cis,
r16  cis g'( fis)
g cis, g' cis,
        }
       
r16   <d-3-\RH #2 > <fis-2-\RH #3 >( <e-0>)
<fis-\RH #4 > <d-\RH #3 >  fis d
r16   d fis( e)
fis d fis cis-1

r16   <b-0-\RH #2 > <fis'-2-\RH #3 >( <e-0>)
\set TabStaff.minimumFret = #5
<fis\2-2-\RH #3 > <d\3> cis d
\set TabStaff.minimumFret = #3
b d b d
       
       
       
}

lower = \relative c {
  \voiceTwo
  \set fingeringOrientations = #'(down)
   <d-0-\RH #1 >2   d, 
   <d'-0-\RH #1 >  d,
%   Alternative zu bbarre:
%   \override TextSpanner #'(bound-details left text) = #"1/2 CII "
   <d'-0-\RH #1 > %\startTextSpan 
     d,
   <d'-0-\RH #1 >%\stopTextSpan   
     d,
   <d'-0-\RH #1 >  d,
   
}

\score {
  <<
    \new StaffGroup = "tab with traditional" <<
      \new Staff = "guitar traditional" <<
        \clef "treble_8"
        \context Voice = "upper" \upper
        \context Voice = "lower" \lower
      >>
      \new TabStaff = "guitar tab" <<
        \set TabStaff.stringTunings = #'(4 -1 -5 -10 -15 -22)
        \set TabStaff.instrumentName = \markup { " " \EADGBE }
        \set TabStaff.shortInstrumentName = \markup \EADGBE
        % \tabFullNotation % ab version "2.14.2"
        \context TabVoice = "upper" \upper
        \context TabVoice = "lower" \lower
      >>
    >>
  >>
}




Mit dem Resultat bin ich schon ganz zufrieden, aber ihr habt sicher noch Tips zur Optimierung (und sei es nur des Codes), oder? ;) Also insgesamt bin ich begeistert von der Kombi Freco & Lily, das ist wirklich eine tolle IDE.

Noch nicht ganz glücklich bin ich mit diesen kryptischen Angaben von C durchgestrichen bzw. C für (Halb-)barré, wie sie oft in der Literatur verwendet werden. Hier fände ich die Variante mit einem vertikalen Balken durch das Noten- bzw. Tabsystem visuell eingängiger. Hat jemand von Euch ne Idee wie man die include-Datei bbarre aus dem sniplet repo modifizieren müsste, um das zu realisieren? Die Schwierigkeit wird wohl sein den Balken nur so lang zu kriegen, wie der Barré gegriffen wird, oder?

Damit ihr nicht lange rumsuchen müsst, hier der Code von bbarre:
%% %%%%%%%  Cut here ----- Start 'bbarred.ly'

%% PostScript -------------------------------
pScript= \markup {
\with-dimensions #'(0 . 0.8) #'(0 . 2.0)
\postscript #"
0.15 setlinewidth
/Times-Roman findfont
2.0 scalefont
setfont
(C)show %%change with B if you prefer
       %(B)show %%change with C if you prefer
stroke
0.7 -0.5 moveto
0.7  1.7 lineto
stroke"
}
%% Span -----------------------------------
%% Syntax: \bbarre #"text" { notes } - text = any number of box
fbarre= #(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 = #-2
\once \override TextSpanner #'font-shape = #'upright
\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 #'right #'text = \markup { \draw-line #'( 0 . -.5) }
                        \once  \override TextSpanner #'bound-details #'left #'text =  \markup { \pScript $str }
%% uncomment this line for make full barred
                        \once  \override TextSpanner #'bound-details #'left #'text =  \markup { "C" $str }                         
                          #}
    spanned-music))))

%% %%%%%%%  Cut here ----- End 'bbarred.ly'

PS Im Original heisst die Datei wie ihr seht bbarred.ly (abweichend von dem tag bbarre) was ich ungünstig fand und daher vereinheitlicht hab.

EDIT: In diesem Thread https://archiv.lilypondforum.de/index.php?topic=412.0 ist das für Akkorde im Notensystem schon realisiert. Ich hätte aber gern sowas:
« Letzte Änderung: Freitag, 29. Juni 2012, 06:53 von barrio »

harm6

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #5 am: Freitag, 29. Juni 2012, 09:37 »
Hallo barrio,

vieleicht ist dies hilfreich. Du wirst natürlich die \version ... ändern müssen.

Ansonsten empfehle ich Dir dringend ein Update auf "2.14.2" zu machen. Diese Version ist sehr viel besser als "2.12.3".
Ich selbst benutze mittlerweile fast nur noch eine der neueren devel-versionen. Die Fortschritte dort sind schon im Vergleich mit "2.14.2" gravierend.
Je länger Du also die uralt-Version benutzt, desto größer werden die Umstellungsprobleme.

Gruß,
  Harm

trulli

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #6 am: Freitag, 29. Juni 2012, 12:27 »
Zitat
Ich hätte aber gern sowas:

In echt? Davon würde ich abraten, weil man daraus nicht erkennen kann, wo der Barre auf dem obersten Ton endet.
Aber der Fantasie sind ja keine Grenzen gesetzt und Lily kann es bestimmt.

Gruß

barrio

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #7 am: Freitag, 29. Juni 2012, 13:23 »
Genau, das sagte ich ja bereits  ;)

Die Schwierigkeit wird wohl sein den Balken nur so lang zu kriegen, wie der Barré gegriffen wird, oder?

Durch ein C oder 1/2 C sieht man das aber auch nicht genau...

@harm6

Hab die 2.14.2 auf OS X, da bricht lily mit error ab.  Könntest Du den Code unter Deiner aktuellen devel-Version mal compilieren? Falls der nicht läuft bleib ich lieber bei dem Motto "Never touch a running system"...

Noch ne allmeine Newbefrage: Ist lily abwärtskompatibel? Die neuen custom tunings mit absoluten Tonhöhen unter 14.x hab ich nicht hingekriegt, mit den relativen von c' unter 12.x gings problemlos.
 \set TabStaff.stringTunings = #'(4 -1 -5 -10 -15 -22)Erkennt 14.x das auch noch? Steht in der Referenz nicht mehr drin :(

« Letzte Änderung: Freitag, 29. Juni 2012, 15:13 von barrio »

harm6

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #8 am: Samstag, 30. Juni 2012, 09:11 »
Hallo barrio,

Zitat
Könntest Du den Code unter Deiner aktuellen devel-Version mal compilieren? Falls der nicht läuft bleib ich lieber bei dem Motto "Never touch a running system"...

Nick's Code kompiliert mit "2.12.3", "2.14.2" (hab' ich getestet) und wahrscheinlich hat er auch mit "2.15.14" funktioniert. Mit den neueren devel-versionen muß man ihn allerdings etwas verändern. Hast Du Interesse an so einer Fassung?

Zitat
Die neuen custom tunings mit absoluten Tonhöhen unter 14.x hab ich nicht hingekriegt, mit den relativen von c' unter 12.x gings problemlos.

Ein "2.12.3"-Code wie:

\set TabStaff.stringTunings = #'(4 -1 -5 -10 -15 -24)
wird via convert-ly zu

        \set TabStaff.stringTunings = #`(,(ly:make-pitch  0 2 NATURAL)
                                         ,(ly:make-pitch -1 6 NATURAL)
                                         ,(ly:make-pitch -1 4 NATURAL)
                                         ,(ly:make-pitch -1 1 NATURAL)
                                         ,(ly:make-pitch -2 5 NATURAL)
                                         ,(ly:make-pitch -2 0 NATURAL) )

was zwar absolut korrekt, aber doch schwer zu lesen ist.

Besser ist

\makeStringTuning #'custom-tuning  <c, a, d g b e'>
Bsp:

\version "2.14.2"

mus = \relative c' {
        e,, f g a b
        c d e f g a b
        c d e f g a b
        c d e f g
}

\makeStringTuning #'custom-tuning  <c, a, d g b e'>

\new TabStaff {
        \set TabStaff.stringTunings = #custom-tuning
        \mus
}

-> NR 2.4.1 Übliche Notation für Saiteninstrumente mit Bünden - Angepasste Tabulaturen -

HTH,
  Harm

barrio

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #9 am: Montag, 2. Juli 2012, 15:35 »
Hallo harm6,

vielen Dank für Deinen suuuper Link zu dem Barrécode! Scheint nach dem Bild nach zu urteilen genau das zu sein, was ich suche ;D
Werde gleich mal probieren, ob der bei mir unter 12.3 rennt... Falls nicht, wäre mir das ein Upgrade auf 14.2 oder sogar devel mit den damit verbundenen Änderungen schon wert. Sollte mit Deinen Codezitaten ja ein Klacks sein.

Bist Du einer von den Entwicklern oder kennst Du Dich einfach nur so unglaublich gut mit lily aus?

TNX barrio

harm6

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #10 am: Montag, 2. Juli 2012, 18:35 »
Hallo barrio,

Zitat
vielen Dank für Deinen suuuper Link zu dem Barrécode! Scheint nach dem Bild nach zu urteilen genau das zu sein, was ich suche ;D
Werde gleich mal probieren, ob der bei mir unter 12.3 rennt... Falls nicht, wäre mir das ein Upgrade auf 14.2 oder sogar devel mit den damit verbundenen Änderungen schon wert. Sollte mit Deinen Codezitaten ja ein Klacks sein.

Schön das es Dir gefällt. Würde mich überraschen wenn er bei Dir nicht kompiliert.

Zitat
Bist Du einer von den Entwicklern oder kennst Du Dich einfach nur so unglaublich gut mit lily aus?

Nun, wir haben uns alle durch die mitunter schwierigen und verwirrenden Anfänge kämpfen müssen.

Ein paar Worte zu mir:
Ich bin selber Gitarrist und wie Du ja weißt, ist die Notation der Gitarre an sich schon kompliziert. Wir brauchen auch sehr häufig Sachen, die in LilyPond nicht oder nicht hinreichend implementiert sind (genauso wie die Schlagzeuger und Akkordeonisten, um nur zwei Beispiele für Instrumente anzuführen bei denen es sich ähnlich verhält).
Insofern habe ich seit meiner ersten Begegnung mit lily versucht immer tiefer in die Materie einzusteigen, z.B. indem ich scheme lerne.

Im Laufe der Jahre bleibt dann schon das ein oder andere hängen. Das geht aber allen so, die lange genug dabei sind und sich beständig mit lily auseinandersetzen.
Und ja, seit vorgestern(!) stehe ich als committer auf der Liste. Bevor ich jedoch nicht wesentlich tiefer eingestiegen bin und deutlich mehr als einen(!) patch verfaßt habe, verstehe ich mich als user und nicht als developer.


Gruß,
  Harm

barrio

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #11 am: Dienstag, 3. Juli 2012, 09:41 »

Und ja, seit vorgestern(!) stehe ich als committer auf der Liste.

Glückwunsch :D

Also der Code von Nick läuft prima unter 12.3. Vielleicht hast Du ja mal Lust & Zeit, das Problem in dem Post von Nick mit der vertikalen Barrelänge auszutüfteln (Hatte ich eingangs ja schon vermutet, dass das der Knackpunkt sein würde). Jedes mal die Länge zu schätzen und wieder zu compilieren ist in der Tat etwas nervig...

LG

barrio

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #12 am: Montag, 9. Juli 2012, 20:10 »
So, hab jetzt lily 2.14.2 als Parallelinstallation unter fresco am Laufen :-) . Autoerkennung anhand des \version tag funktioniert super mit Stücken von Mutopia. Nur wenn ich bei meinem o. g. Code die Version von 12.3 auf auf 14.2 ändere kommt:

Fehler: Programm zu alt: 2.14.2 (Datei erfordert: 2.15.14)
Interpretation der Musik...ERROR: In procedure ly:pitch-semitones:
ERROR: Wrong type argument in position 1 (expecting Pitch): 4
Wurde mit dem Return-Code 1 beendet.

??? Warum ist für den 12.3er Code 14.2 zu alt?

trulli

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #13 am: Montag, 9. Juli 2012, 20:45 »
Ganz einfach: weil von 12.3 auf 14.2 wesentliche Änderungen vorgenommen wurden.

Mit Fresco kannst du aber ganz einfach in die neue Version konvertieren: LilyPond/ Quelldokument/ Mittels convert ly aktualisieren.

Gruß

barrio

  • Gast
Re: Polyphonie in Kombisystem aus Noten & Tabs
« Antwort #14 am: Montag, 9. Juli 2012, 21:34 »
hm, unter win7 in fresco 2.0.6 gibt es nur unter Werkzeugansicht "Mittels convert-ly aktualisieren". Wenn ich das mache poppt kurz cmd auf, dann kommt:

convert-ly.py (GNU LilyPond) 2.12.3
Processing `'...
Applying conversion:


Das Dokument wurde nicht verändert.

???