Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: iugin am Donnerstag, 8. Juni 2017, 12:12

Titel: \with in einer Variable [Gelöst]
Beitrag von: iugin am Donnerstag, 8. Juni 2017, 12:12
Hallo Forum!

Seit einem Jahr ca. war ich nicht mehr da, und heute morgen sehe, dass das alte Forum weg ist... Aber Gott sei Dank, ist alles hier: Forum, Lilypond, ihr...  ;)
Heute morgen habe ich (endlich) die 2.19.61 installiert, und siehe da: alte Files gehen nicht mehr, trotz convert-ly.
Alles mehr oder weniger gelöst, ausser das:
\version "2.19.61"

vl = \with {
  instrumentName = #"Violino I"
}

\score {
\new Staff \vl { c }
}

Wieso funktioniert es nicht mehr? Und besser: wie kann ich lösen?
Ich hatte einen riesen File geschrieben mit ziemlich viele Definitionen, und dann immer wieder importiert. Es wäre schön, wenn ich den File entsprechend ändern könnte und weiter verwenden.

Lieber Gruss und schönen Tag

Eugenio
Titel: Antw:\with in einer Variable
Beitrag von: Manuela am Donnerstag, 8. Juni 2017, 13:23
Von welcher Version hast du upgegraded? Ich habe hier nur 2.19.42, damit kompiliert dein Beispiel einwandfrei. Kann natürlich sein, dass es mit 2.19.61 nicht mehr geht.
Titel: Antw:\with in einer Variable
Beitrag von: Malte am Donnerstag, 8. Juni 2017, 14:05
In 2.19.44 gehts nicht mehr (2.19.43 hab ich grad nicht da zum Testen). Ab da muß man auch beim Aufruf noch ein \with setzen:\version "2.19.61"

vl = \with {
  instrumentName = "Violino I"
}

\score {
\new Staff \with \vl { c }
}
So gehts auch mit 2.19.61 :)
Titel: Antw:\with in einer Variable
Beitrag von: iugin am Sonntag, 11. Juni 2017, 07:32
Hallo Malte

danke vielmals! Komisch, dass es nicht funktioniert, ich frage mich, wieso sie die Möglichkeit weg genommen haben, schliesslich ist, denke ich, eine Restriktion im Vergleich von früher.
Ich werde es ausprobieren (jetzt kann ich leider nicht).
Uff, ich werde eine Menge Dateien korrigieren müssen... :)

Danke und lieber Gruss

Eugenio
Titel: Antw:\with in einer Variable
Beitrag von: Malte am Sonntag, 11. Juni 2017, 08:30
Hab grad nochmal nachgeschaut, hab mich ein bißchen geirrt:
2.19.45 ist die letzte Version, die geht, 2.19.46 nicht mehr. Das git-log (http://git.savannah.gnu.org/cgit/lilypond.git/log/?h=release/2.19.46-1) zeigt, daß der Fix zu issue 4911 (https://sourceforge.net/p/testlilyissues/issues/4911/) dafür verantwortlich ist (in der issue-Beschreibung wird auch gesagt, warum das so gemacht wurde).
ZitatUff, ich werde eine Menge Dateien korrigieren müssen... :)
convert-ly kann das :)
Titel: Antw:\with in einer Variable
Beitrag von: Manuela am Sonntag, 11. Juni 2017, 13:39
Zitat von: Malte am Sonntag, 11. Juni 2017, 08:30

convert-ly kann das :)

Aber Eugenio hat doch convert.ly angewendet?
Titel: Antw:\with in einer Variable
Beitrag von: Malte am Sonntag, 11. Juni 2017, 14:07
Öhm ... zumindest mit dem Minimalbeispiel kommt convert-ly zurecht.
Titel: Antw:\with in einer Variable
Beitrag von: iugin am Montag, 12. Juni 2017, 12:15
Hallo!

Zitatconvert-ly kann das
Bei mir leider nicht... Keine Ahnung warum.
Es wird aber kein Problem sein, ich kann auch mit Suchen/Ersetzen lösen

Danke vielmals und einen schönen Tag

Eugenio
Titel: Antw:\with in einer Variable
Beitrag von: harm6 am Montag, 12. Juni 2017, 13:32
ZitatBei mir leider nicht... Keine Ahnung warum.

Kannst Du mal den terminal-output von convert-ly posten?

Gruß,
  Harm
Titel: Antw:\with in einer Variable
Beitrag von: iugin am Montag, 12. Juni 2017, 17:18
Hallo Harm

schon lange nicht mehr gesehen ;)
Ich denke, das Problem mit convert-ly ist, dass ich die Definitionen in einem separaten *.ily-File (und nicht *.ly, aber vielleicht ist nicht wichtig), und der File sieht so aus:
\version "2.19.49"
\language "deutsch"

sIvn = \with {
  \autoBeamOff
  instrumentName = #"Sopran 1"
  shortInstrumentName = #"S. 1"

  #(set-accidental-style 'modern)
}

sIIvn = \with {
  \autoBeamOff
  instrumentName = #"Sopran 2"
  shortInstrumentName = #"S. 2"

  #(set-accidental-style 'modern)
}

usw.

Dann, der File wird importiert mittels \include, und der Hauptfile entählt so etwas:
[...]
\new Staff \sIvn [...]


Jetzt: wie kann convert-ly verstehen, was zu tun ist? Im Hauptfile geht nicht, er weiss nicht, was \sIvn heisst.
Im anderen File passiert nichts. Output ist:
convert-ly (GNU LilyPond) 2.19.61

convert-ly: Processing `VoiceDefinitions.ly'...
Applying conversion:

eugenio@eugenioPC:/tmp$ convert-ly VoiceDefinitions.ly > out.txt
convert-ly (GNU LilyPond) 2.19.61

convert-ly: Processing `VoiceDefinitions.ly'...
Applying conversion: 2.19.2, 2.19.7, 2.19.11, 2.19.16, 2.19.22, 2.19.24, 2.19.28, 2.19.29, 2.19.32, 2.19.40, 2.19.46, 2.19.49

was korrekt ist.
Also, ich verstehe, dass es nicht gehen kann.

Bei meinem Beispiel im ersten Post, wenn ich die Version "2.18.2" eintrage, ist der Output so:
eugenio@eugenioPC:/tmp$ convert-ly Ohne\ Titel.ly
convert-ly (GNU LilyPond) 2.19.61

convert-ly: Processing `Ohne Titel.ly'...
Applying conversion: 2.19.2, 2.19.7, 2.19.11, 2.19.16, 2.19.22, 2.19.24, 2.19.28, 2.19.29, 2.19.32, 2.19.40, 2.19.46, 2.19.49


\version "2.19.49"

vl = \with {
  instrumentName = #"Violino I"
}

\score {
\new Staff \with \vl { c }
}

Also, er fügt \with in \score.

Also, ich denke, es ist alles klar.

Danke vielmals für die Hilfe und hab einen schönen Tag :)

Lieber Gruss

Eugenio