diff --git a/30_sources/CHANGES.md b/30_sources/CHANGES.md
index 5735b3d3..e9b1f814 100644
--- a/30_sources/CHANGES.md
+++ b/30_sources/CHANGES.md
@@ -18,6 +18,7 @@
* now handle multi measure rests (#166)
* fix predefined annotations vt and vr
* BWC: move Tuplet configuration to notebounds (#168)
+* Multiple notebound annotations can now be dragged individually (#170)
## enhancement
@@ -34,6 +35,7 @@
* now menu supports extract 0 to extract 5 (#153)
* now menu also shows title of extracts (#153)
* ctrl-alt 'F' now toggles harp preview
+* rearranged "Edit Configuration" Menu to improve configuration workflow (#171)
## internal stuff
@@ -43,6 +45,8 @@
* implemented a collision based packer (#89)
* implemented validation of config parameters (#85) with result form
+* Shape of Flowlines can be configured (#167)
+
## backwards compatibility issues
@@ -103,7 +107,7 @@ Dragging of jumpline does not work properly on Saitenspiel #158
* in case of multiple `[P:]` respecitvly `[R:]` the now the last one is relevant - best to remove the other ones
* now get message if F: is missing
* now get messaage Filename or path contains whitespace and special characters
-* you have to redo configuration for tuplets (#167 )
+* you have to redo configuration for tuplets (#167)
## known issues
diff --git a/30_sources/SRC_Zupfnoter/public/UD_Zupfnoter-Handbuch-de_review.pdf b/30_sources/SRC_Zupfnoter/public/UD_Zupfnoter-Handbuch-de_review.pdf
index 2bf8edff..9161c396 100644
Binary files a/30_sources/SRC_Zupfnoter/public/UD_Zupfnoter-Handbuch-de_review.pdf and b/30_sources/SRC_Zupfnoter/public/UD_Zupfnoter-Handbuch-de_review.pdf differ
diff --git a/30_sources/SRC_Zupfnoter/public/locale/conf-help_de-de.json b/30_sources/SRC_Zupfnoter/public/locale/conf-help_de-de.json
index 2167592c..9f9e5865 100644
--- a/30_sources/SRC_Zupfnoter/public/locale/conf-help_de-de.json
+++ b/30_sources/SRC_Zupfnoter/public/locale/conf-help_de-de.json
@@ -35,7 +35,6 @@
"layout.color.color_variant2":"
Hier wählst du die Farbe in der variante Abschnitte 2,4,6 etc.\ndargestellt werden.
\n\n\nHinweis Die Farbe von varianten Abnschnitten alterniert zwischen\nvariant1 und variant2. Wenn du beide gleich einstellst, dann werden\ndie varianten Abschnitte gleichermassen eingefärbt.
\n\nWenn du beide auf den gleichen wert wie "default" stellst, dann werden\nvariante Abschnitte nicht mehr durch Farbe abgesetzt.
\n
\n",
"layout.jumpline_anchor":"Hier stellst du ein, wie die Sprunglinien an den entsprechenden Noten\nverankert werden. Bitte gib zwei Werte (X, Y) getrennt durch ein Komma\nan. Die Angabe erfolgt in mm und bezieht sich auf den Rand (genauer\ngesagt, das umhüllende Rechteck) der entsprechende Note.
\n",
"layout.limit_a3":"Diese Funktion verschiebt Noten am A3-Blattrand nach innen. Da das\nUnterlegnotenblatt etwas größer ist als A3 würde sonst die Note\nangeshnitten.
\n",
- "layout.minc":"Hier kannst du manuelle Korrekturen im vertikalen Layout vornehmen:
\n\n\nHinweis: Diese Funktion ist nun wirklich für die ganzen Experten.\nBitte verwende sie also nur, wenn du weißt, was du tust.\nAnwendungsfälle für diese Funktion:
\n\n\n- Linien (z.B. Sprunglinien) gehen unglücklich durch andere Noten\noder Beschriftungen
\n- Bei sehr dichten Layouts gehen Taktstriche in die vorherige Note
\n- Man hat sehr viele Noten, könnte aber einen Teil in eine freie\nFläche schieben. In diesem fall würde die Flusslinie teilweise\nnach oben gehen.
\n
\n
\n\nDieser Parameter enthält eine Liste von manuellen Korrekturen. Jeder\nEintrag ändert den Vorschub für einen durch seinen Schlüssel bestimmten\nZeitpunkt.
\n",
"layout.packer":"Hier kannst du weitere Einzelheiten für die vertikale Anordnung der\nNoten konfigurieren. Es sind subtile Feinheiten, welche den Unterschied\nausmachen. Daher sind diese Funktionen noch experimentell.
\n",
"layout.packer.pack_max_spreadfactor":"Nach der Berechnung des maximal komprimierten Layouts versucht\nZufpnoter, dieses so weit zu spreizen, dass die Zeichenfläche voll\nausgefüllt wird.
\n\nDieser Faktor bestimmt, wie weit das maximal komprimierte Layout in der\nVertikalen gespreizt werden soll. Das wirkt sich bei kurzen Stücken aus,\nwelche das Blatt nicht vollständig ausfüllen.
\n\nBei sehr kurzen Stücken ist es sinnvoll, die Spreizung zu begrenzen,\nweil sonst die Noten sehr weit auseinander liegen.
\n",
"layout.packer.pack_method":"Hier kannst du die pack-Methode auswählen
\n\n\n0 : Die bisherige Methode: diese geht nach jedem Schritt um die\nHöhe der größten Note weiter
\n1 : Kopmpakt: diese geht nur dann weiter, wenn
\n\n\n- ein Richtungswechsel der Melodie vorliegt
\n- Noten übereinander gezeichnet würden
\n
\n\nDas bedeutet dass bei monotonen Melodien die Noten enger gesetzt\nwerden.
\n\n\nHinweis: Diese Methode eignet sich am besten für lange,\neinstimmige Stücke. Die Platzeinsparung geht bei mehrstimmmigen\nStücken schnell verloren.
\n\nBei dieser Methode sind die Synchronisiationslinien zwischen den\nStimmen nicht immer gut sichtbar weil die Flusslinien ggf. sehr\nflach sind.
\n
\n
\n",
@@ -48,6 +47,7 @@
"lyrics.verses":"Dies ist die Vorgabe für die Liste der Strophen die im Liedtext-Block\nausgegeben werden.
\n",
"minc_f":"Hier gibst du den Korrekturfaktor für den vertikalen Voreschub an.
\n\nDie Angabe bestimmt, welcher Anteil am errechneten vertikalen Abstand\nals extra Abstand hinzugefügt wird. (a = (a + minc_f * a
))
\n\nIm Beispiel
\n\n "minc" : {\n "2304": {"minc_f": 1}, \n "4224": {"minc_f": -0.25}\n }\n
\n\n\n- bei 2304 wird der Abstand verdoppelt. Mit derm Faktor 1 wird ein\nNormalabstand wird hinugefügt.
\n- bei 4224 wird der abstand um 25% reduziert. Mit dem Faktor -0.25\nwird ein Viertel des Maximalabstandes abgezogen
\n
\n\nBeispiele:
\n\n\n-
-1.0
würde den Vorschub um eine ganze Note zurück setzen \n-
0
ändert nichts am Vorschub. Damit kann man den Wert zurücksetzen,\nfalls er im Auszug 0 gesetzt wurde. \n-
0.5
vergrößert den Vorschub um die Hälfte einer ganzen Note. \n
\n",
"nonflowrest":"Hier kannst du einstellen, ob in den Begleitstimmen ebenfalls die Pausen\ndargestellt werden sollen. Eine Stimme wird dann Begleitstimme\nbetrachtet, wenn sie keine Flußlinie hat.
\n\nNormalerweise ist es nicht sinnvoll, in den Begleitstimmen Pausen\ndarzustellen, da der Spieler sich ja an den Pausen in der Flußlinie\norientiert.
\n",
+ "notebound.minc":"Hier kannst du manuelle Korrekturen im vertikalen Layout vornehmen:
\n\n\nHinweis: Diese Funktion ist nun wirklich für die ganzen Experten.\nBitte verwende sie also nur, wenn du weißt, was du tust.\nAnwendungsfälle für diese Funktion:
\n\n\n- Linien (z.B. Sprunglinien) gehen unglücklich durch andere Noten\noder Beschriftungen
\n- Bei sehr dichten Layouts gehen Taktstriche in die vorherige Note
\n- Man hat sehr viele Noten, könnte aber einen Teil in eine freie\nFläche schieben. In diesem fall würde die Flusslinie teilweise\nnach oben gehen.
\n
\n
\n\nDieser Parameter enthält eine Liste von manuellen Korrekturen. Jeder\nEintrag ändert den Vorschub für einen durch seinen Schlüssel bestimmten\nZeitpunkt.
\n",
"notes":"Hier kannst du eine Seitenbeschriftungen hinzufügen. Beim Einfügen einer\nSeitenbeschriftung vergibt Zupfnoter eine Nummer anstelle der .0
.
\n\n\nHinweis: Es kann aber auch sinnvoll sein eine sprechende\nBezeichnung für die Beschriftung manuell vorzugeben um ihrer\nspezifische Verwendung hervorzuheben z.B. notes.T_Copyright
. Das ist\nallerdings nur in der Textansicht möglich.
\n
\n",
"notes.0.T01_number":"Dieses Template fügt eine Nummer im Notenblatt ein. Damit kannst du\ndeine eigenen Ordnungskriterien realiseren.
\n\nDas vorgesehene Numernschema setzt sich aus zwei Blöcken zusammen
\n\n\n- 3 Zeichen für den Urheber, sozusagen die Unterlegnotenmanufaktur
\n- 3 Zeichen für eine fortlaufende Nummer. Es ist sinnvoll diese Nummer\nmit führenden Nullen zu schreiben.
\n
\n\nBeispiel: BWL-001
- Bernhard Weichel - Blatt 001
\n",
"notes.0.pos":"Hier gibst du die Position der Seitenbeschriftung an, an welcher der\nLiedtext-Block ausgegeben werden soll. Angabe erfolgt in mm als\nkommagetrennte Liste von horizontaler / vertikaler Position.
\n",
@@ -87,7 +87,7 @@
"style":"Hier kannst du den Stil für den Text einstellen. Du hast eine Auswahl\naus vordefinierten Stilen.
\n",
"templates":"Dieser Parameter kann nicht vom Benutzer gesetzt werden sondern liefert\ndie Vorlagen beim Einfügugen neuer Liedtext-Blöcke bzw.\nSeitenbeschriftungen etc.
\n\nEr ist hier aufgeführt, um die Vorlagen selbst zu dokumentieren.
\n",
"text":"Hier gibst du den Text, der ausgegeben werden soll. Dieser Text kann\nauch mehrzeilig sein
\n",
- "tuplet":"Hier kannst du die Darstellung von Triolen (genauer gesagt, von Tuplets)\nsteuern.
\n\n\nHinweis: diese Einstellungen wirken immer auf alle Tuplets aller\nStimmen, die zum gleichen Zeitpunkt gespielt werden.
\n\nWenn du die Tuplets individuell konfigurieren möchtest, ist es\nnotwendig, eine "Verschiebemarke" vor das tuplet zu setzen. Dabei ist\nes möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn man die\nVerschiebemarken gleich benennt.
\n\nZ.B. kann man eine Verschiebemarke tpl_links
an alle tuplets\nschreiben, deren Bogen links von der FLußlineie liegen soll. Diese\nkönnen dann über den parameter extract.0.tuplet.tpl_links
gemeinsam\nkonfiguriert werden
\n
\n",
+ "tuplet":"Hier kannst du die Darstellung von Triolen (genauer gesagt, von Tuplets)\nsteuern.
\n\n\nHinweis:
\n\nWenn du mehrere Tuplets gemeinsam konfigurieren möchtest, ist es\nnotwendig, eine "Verschiebemarke" vor die betroffene tuplet zu setzen.\nDabei ist es möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn\nman die Verschiebemarken gleich benennt.
\n\nZ.B. kann man eine Verschiebemarke tpl_links
an alle tuplets\nschreiben, deren Bogen links von der FLußlineie liegen soll. Diese\nkönnen dann über den parameter extract.0.tuplet.tpl_links
gemeinsam\nkonfiguriert werden
\n
\n",
"tuplet.0":"Hier kannst du die Darstellung einer Triole (genauer gesagt, eines\nTuplets) steuern.
\n",
"tuplet.show":"Hier gibst du an, ob das Tuplet ausgegeben werden soll.
\n",
"voices":"Hier gibst du eine Liste von Sstimmen als (durch Komma getrennte) Liste\nvon Nummern an. Die Nummer ergibt sich aus der Reihnfolge in der\n%%score
- Anweisung in der ABC-Notation.
\n",
diff --git a/30_sources/SRC_Zupfnoter/public/locale/de-de.json b/30_sources/SRC_Zupfnoter/public/locale/de-de.json
index 29d18749..3a708046 100644
--- a/30_sources/SRC_Zupfnoter/public/locale/de-de.json
+++ b/30_sources/SRC_Zupfnoter/public/locale/de-de.json
@@ -165,6 +165,7 @@
"before_colon_n": "**--before_colon_n",
"beforeColonN": "beforeColonN",
"bold": "fettdruck",
+ "c_jumplines": "Sprunglinien",
"Choose extract": "Auszug wählen",
"color": "Farbeinstellung",
"color_default": "Sonstiges",
@@ -179,6 +180,7 @@
"could not find extract with number": "Es gibt keinen Auszug mit nummer",
"could not open file": "konnte Datei nicht öffnen",
"countnotes": "Zählmarken",
+ "countnote": "Zählmarke",
"cp1": "cp1",
"cp2": "cp2",
"Create new sheet": "Neues Blatt erstellen",
@@ -198,6 +200,7 @@
"d64": "**--d64",
"d8": "**--d8",
"decimals": "Dezimalstellen",
+ "decoration": "Dekoration",
"default": "Vorgabewert",
"defaults": "Vorgabewerte",
"Demo": "Demonstration",
@@ -228,10 +231,12 @@
"Edit printer correction paerameters": "Druckeranpassungen bearbeiten",
"edit settings for lyrics\nin current extract": "Einstellungen für Liedtexte bearbeiten\nim aktuellen Auszug",
"edit settings for sheet annotations\nin current extract": "Einstellungen für Seitenbeschriftung bearbeiten",
+ "edit shape of repeat signs": "Darstellung der Wiederholungszeichen bearbeiten",
"editor and harpnotes\napplicaple to tweak the notes for harp": "Zeige ABC und Harfennoten\ngeeignet zur Feinkorektur\nim Unterlegnotenblatt",
"editor and notes\napplicable to enter notes": "Zeige ABC und Notendarstellung\ngeeignet zur Eingabe von Noten",
"Effective value": "aktuell wirksamer Wert",
"ELLIPSE_SIZE": "Notengröße",
+ "Empty voice": "Stimme ist leer",
"end-of-translagion": "end-of-translation",
"enter a page bound annotation": "Seitengebundene Beschriftung\nanlegen/bearbeiten",
"Enter Harp": "Harfeneingabe",
@@ -280,7 +285,7 @@
"insert a title for the \ncurrent extract": "Titel für den aktuellen\n Auszug einfügen",
"Insert addon at cursor position": "Zusatzinformation an der Cursor-Position einfügen",
"Insert Addon": "Zusatz einfügen",
- "instrument specific": "Intrument spez.",
+ "instrument specific": "Intrumentspezifika",
"instrument": "Instrument",
"Interact with dropbox": "Arbeiten mit Dropbox",
"italic": "kursiv",
@@ -394,6 +399,7 @@
"regular": "normal",
"Render previews": "Vorschauen neu errechnen",
"Render": "Rendern",
+ "repeat signs": "Wiederholungszeichen",
"repeatend": "Wiederholungsende",
"repeatsigns": "Wiederholungszeichen",
"repeatsigns.full": "Wiederholugnszeichen.detail",
@@ -461,6 +467,7 @@
"T02_copyright_music": "T02 Copyright Musik",
"T03_copyright_harpnotes": "T03 Copyright Unterlegnoten",
"T04_to_order": "T04 zu beziehen bei",
+ "T05_printed_extracts": "T05 verfügbare Auszüge",
"T99_do_not_copy": "T99 bitte nicht kopieren",
"target to jump to": "Sprungziel",
"templates": "Vorlagen",
@@ -500,6 +507,7 @@
"Y-position": "Y-position",
"Y_SCALE": "Vertikale Skalierung",
"you are not logged in to dropbox": "Du bist nicht bei Dropbox angemeldet",
+ "you have multiple %%score statements": "Du hast mehr als eine %%score Zeile",
"you need to logout if you want to change the application scope": "Du musst dich abmelden um den Zugriffstyp zu ändern",
"Zombie Accesstoken revoked; do not use Browser back after login to dropbox": "Zombie Zugriffstoken gelöscht. Bitte drücke nicht die ZURÜCK-Taste des Borwsers nach dem Einloggen in Dropbox.",
"Zombie token or zombie login occured. Maybe you hit the back button in the browser.": "Zombie Zugriffstoken oder login aufgetreten. Bitte drücke nicht die ZURÜCK-Taste des Borwsers nach dem Einloggen in Dropbox.",
diff --git a/30_sources/SRC_Zupfnoter/src/abc2svg_to_harpnotes.rb b/30_sources/SRC_Zupfnoter/src/abc2svg_to_harpnotes.rb
index 1b33fbf4..9dbb164a 100644
--- a/30_sources/SRC_Zupfnoter/src/abc2svg_to_harpnotes.rb
+++ b/30_sources/SRC_Zupfnoter/src/abc2svg_to_harpnotes.rb
@@ -716,7 +716,7 @@ def _make_notebound_annotations(entity, voice_id)
result = []
if entity.is_a? Harpnotes::Music::Playable
chords =_extract_chord_lines(entity.origin[:raw])
- chords.each do |name|
+ chords.each_with_index do |name, index|
match = name.match(/^([!#\<\>])([^\@]+)?(\@(\-?[0-9\.]+),(\-?[0-9\.]+))?$/)
if match
@@ -744,7 +744,8 @@ def _make_notebound_annotations(entity, voice_id)
if annotation
notepos = [pos_x, pos_y].map {|p| p.to_f} if pos_x
position = notepos || annotation[:pos] || $conf['defaults.notebound.annotation.pos']
- conf_key = "notebound.annotation.#{voice_id}.#{entity.znid}.pos" if entity.znid
+ conf_key = "notebound.annotation.#{voice_id}.#{entity.znid}.pos" if entity.znid # todo: not sure if we really nedd this if; maybe it was before we compute znid by time
+ conf_key = "notebound.annotation.#{voice_id}.#{entity.znid}.#{index}.pos" if index > 0
result << Harpnotes::Music::NoteBoundAnnotation.new(entity, {style: annotation[:style], pos: position, text: annotation[:text]}, conf_key)
end
else
diff --git a/30_sources/SRC_Zupfnoter/src/conf_doc_source.rb b/30_sources/SRC_Zupfnoter/src/conf_doc_source.rb
index a4004c05..15cd5dfd 100644
--- a/30_sources/SRC_Zupfnoter/src/conf_doc_source.rb
+++ b/30_sources/SRC_Zupfnoter/src/conf_doc_source.rb
@@ -77,7 +77,7 @@ def get_example(conf, key)
/^layout.*/, /^extract\.0$/, /^presets\.layout\..*$/
]
produce_patterns = [/annotations\.vl/, /^templates\.tuplets/, /^extract$/, /^templates/, /^annotations/]
-
+extra_keys = ['extract.0.notebound.minc', 'extract.0.notebound.minc.x.minc_f', "extract.0.notebound.tuplet"]
locale = JSON.parse(File.read('../public/locale/de-de.json'))
@@ -88,7 +88,7 @@ def get_example(conf, key)
ignore_keys = $conf.keys.select { |k| ignore_patterns.select { |ik| k.match(ik) }.count > 0 }
produce_keys = $conf.keys.select { |k| produce_patterns.select { |ik| k.match(ik) }.count > 0 }
-show_keys = ($conf.keys - ignore_keys + produce_keys).uniq.sort_by { |k| k.gsub('templates', 'extract.0') }
+show_keys = ($conf.keys - ignore_keys + produce_keys + extra_keys).uniq.sort_by { |k| k.gsub('templates', 'extract.0') }
mdhelp = []
show_keys.sort.each do |key|
@@ -109,7 +109,7 @@ def get_example(conf, key)
#{helptext}
- #{get_example($conf, key)}
+ #{get_example($conf, key) rescue ""}
}
mdhelp.push result
end
diff --git a/30_sources/SRC_Zupfnoter/src/config-form.rb b/30_sources/SRC_Zupfnoter/src/config-form.rb
index d4c530a5..cc78471e 100644
--- a/30_sources/SRC_Zupfnoter/src/config-form.rb
+++ b/30_sources/SRC_Zupfnoter/src/config-form.rb
@@ -43,13 +43,14 @@ def self.to_template(key)
template = key.split('.')[-2] # templates are for "extract.....x"
voice_template = key.split('.')[-3] # templates are for "extract..v_.x"
a = $conf.get("templates.#{template}") if template
- a = $conf.get("templates.#{voice_template}") unless a
+ a = $conf.get("templates.#{voice_template}") if voice_template and not a.nil?
- unless a
+ if a.nil?
help_key = key
help_key = help_key.gsub(/^(extract\.)(\d+)(.*)$/) {"#{$1}0#{$3}"}
a = $conf.get(help_key)
end
+ puts help_key
a
end
@@ -223,6 +224,10 @@ def self.to_value(key, string)
string[:id]
end
+ def self.to_template(key)
+
+ end
+
def self.to_neutral
$log.error("BUG: this should not happen Neutral RestPosition #{__FILE__} #{__LINE__}")
end
diff --git a/30_sources/SRC_Zupfnoter/src/controller.rb b/30_sources/SRC_Zupfnoter/src/controller.rb
index 93fbb92f..4b9ead9e 100644
--- a/30_sources/SRC_Zupfnoter/src/controller.rb
+++ b/30_sources/SRC_Zupfnoter/src/controller.rb
@@ -598,8 +598,13 @@ def layout_harpnotes(print_variant = 0, page_format='A4')
$conf.reset_to(1) # todo: verify this: reset in case we had errors in previous runs
$conf.push(config) # in case of error, we hav the ensure close below
+ # prepare extract menu
+ printed_extracts = $conf['produce']
@extracts = $conf.get('extract').inject([]) do |r, entry|
- r.push([entry.first, entry.last[:title]])
+ extract_number = entry.last.dig(:notes, :T01_number_extract, :text)
+ print = (printed_extracts.include?(entry.first.to_i) ? '* ' : ' ')
+ title = %Q{#{print}#{extract_number} #{entry.last[:title]} }
+ r.push([entry.first, title])
end
call_consumers(:extracts)
@@ -607,7 +612,7 @@ def layout_harpnotes(print_variant = 0, page_format='A4')
$log.benchmark("validate default conf") do
@validation_errors = []
- @validation_errors = @json_validator.validate_conf($conf) if $log.loglevel == :debug
+ @validation_errors = @json_validator.validate_conf($conf) if ($log.loglevel == :debug || $settings[:validate] == :true)
end
load_music_model
diff --git a/30_sources/SRC_Zupfnoter/src/controller_command_definitions.rb b/30_sources/SRC_Zupfnoter/src/controller_command_definitions.rb
index 5b78b214..43942543 100644
--- a/30_sources/SRC_Zupfnoter/src/controller_command_definitions.rb
+++ b/30_sources/SRC_Zupfnoter/src/controller_command_definitions.rb
@@ -351,7 +351,6 @@ def __ic_03_create_commands
end
-
@commands.add_command(:addconf) do |command|
command.undoable = false
@@ -409,15 +408,22 @@ def __ic_03_create_commands
end}}
}
- # create the commands for presets
+ # create the commands for presets aka quicksettings
+ # note they must be added to the ui in
+ # command-definitions: for :editconf
+ # the quicksettings are invokked from editconf - therefore need to be registered there
+ all_value = {}
$conf['presets.notes'].each do |key, preset_value|
entry = $conf["presets.notes.#{key}"]
to_key = entry[:key] || key
value = entry[:value]
+ all_value[to_key] = entry[:value]
values["preset.notes.#{key}"] = lambda {{key: "extract.#{@systemstatus[:view]}.notes.#{to_key}", value: value, method: :patch}}
end
+ values["preset.notes.all"] = lambda {{key: "extract.#{@systemstatus[:view]}.notes", value: all_value, method: :patch}}
+
$conf['presets.layout'].each do |key, preset_value|
values["preset.layout.#{key}"] = lambda {{key: "extract.#{@systemstatus[:view]}.layout", value: $conf["presets.layout.#{key}"], method: :preset}}
end
@@ -501,18 +507,20 @@ def expand_extractnumbering(keys)
notes: {keys: expand_extract_keys([:notes]), newentry_handler: lambda {handle_command("addconf notes")}, quicksetting_commands: _get_quicksetting_commands('notes')},
lyrics: {keys: expand_extract_keys([:lyrics]), newentry_handler: lambda {handle_command("addconf lyrics")}},
minc: {keys: expand_extract_keys(['notebound.minc'])},
- layout: {keys: expand_extract_keys([:layout, 'layout.limit_a3']), quicksetting_commands: _get_quicksetting_commands('layout')},
- printer: {keys: expand_extract_keys([:printer, 'layout.limit_a3']), quicksetting_commands: _get_quicksetting_commands('printer')},
+ layout: {keys: expand_extract_keys([:layoutlines, :layout, 'layout.limit_a3']), quicksetting_commands: _get_quicksetting_commands('layout')},
+ printer: {keys: expand_extract_keys([:printer, 'printer.show_border', 'layout.limit_a3']), quicksetting_commands: _get_quicksetting_commands('printer')},
+ repeatsigns: {keys: expand_extract_keys([:repeatsigns])},
+
- instrument_specific: {keys: expand_extract_keys(['layout.instrument', 'layout.X_OFFSET', 'layout.X_SPACING', 'layout.PITCH_OFFSET', 'stringnames.text',
- 'printer.a3_offset', 'printer.a4_offset', 'printer.a4_pages', 'stringnames.marks.hpos']),
+ instrument_specific: {keys: expand_extract_keys(['layout.instrument', 'layout.limit_a3', 'layout.X_OFFSET', 'layout.X_SPACING', 'layout.PITCH_OFFSET', 'stringnames.text',
+ 'printer.a3_offset', 'printer.a4_offset', 'printer.a4_pages', 'printer.show_border', 'stringnames.marks.hpos']),
quicksetting_commands:
_get_quicksetting_commands('instrument')
},
stringnames: {keys: expand_extract_keys([:stringnames, :sortmark])},
extract0: {keys: ['extract.0']},
extract_current: {keys: expand_extract_keys($conf.keys.select {|k| k.start_with?('extract.0.')}.map {|k| k.split('extract.0.').last})},
- errors: {keys: @validation_errors},
+ errors: {keys: @validation_errors},
xx: {keys: ['xx']}
}
diff --git a/30_sources/SRC_Zupfnoter/src/init_conf.rb b/30_sources/SRC_Zupfnoter/src/init_conf.rb
index bbf776d9..b7a93bbf 100644
--- a/30_sources/SRC_Zupfnoter/src/init_conf.rb
+++ b/30_sources/SRC_Zupfnoter/src/init_conf.rb
@@ -13,7 +13,7 @@ def self.init_conf()
:title, :filenamepart, :startpos, :voices, :flowlines, :subflowlines, :synchlines, :jumplines, :repeatsigns, :layoutlines, :barnumbers, :countnotes,
:legend, :nonflowrest, :lyrics, :notes, :tuplet, :layout, :printer,
#
- :annotation, :decoration, :partname, :variantend, :countnotes, :c_jumplines, :tuplet, :minc, :flowline, # sort within notebound
+ :annotation, :decoration, :partname, :variantend, :countnote, :c_jumplines, :tuplet, :minc, :flowline, # sort within notebound
:stringnames,
@@ -25,7 +25,7 @@ def self.init_conf()
# sort within printer
:a3_offset, :a4_offset, :a4_pages, # sort within laoyut
- :T01_number, :T01_number_extract, :T02_copyright_music, :T03_copyright_harpnotes, :T04_to_order, :T99_do_not_copy,
+ :T01_number, :T01_number_extract, :T02_copyright_music, :T03_copyright_harpnotes, :T04_to_order, :T05_printed_extracts, :T99_do_not_copy,
"0", "1", "2", "3", "4", "5", "6", :verses, # extracts
:cp1, :cp2, :shape, :pos, :hpos, :vpos, :spos, :autopos, :text, :style, :marks # tuplets annotations
@@ -39,7 +39,7 @@ def self.init_conf()
# here are values for object which occur multiple times
- # such that there i no expolicit default in the configuration
+ # such that there is no explicit default in the configuration
defaults: {
notebound: {annotation: {pos: [5, -7]},
partname: {pos: [-4, -7]},
@@ -69,7 +69,8 @@ def self.init_conf()
# this is used to populate a QuickSettings menu
# in configuration editor
- # needs to be handled in contrller_command_definiitions
+ # needs to be handled in contrller_command_definiitions for
+ # commands.add_command(:addconf) do |command|
presets: {
layout: {
layout_compact: {
@@ -79,7 +80,12 @@ def self.init_conf()
ELLIPSE_SIZE: [3.5, 1.3], # radii of the largest Ellipse
REST_SIZE: [4, 1.5]
},
- layout_regular: lambda {$conf['extract.0.layout']},
+ layout_regular: {
+ LINE_MEDIUM: lambda {$conf['extract.0.layout.LINE_MEDIUM']},
+ LINE_THICK: lambda {$conf['extract.0.layout.LINE_THICK']},
+ ELLIPSE_SIZE: lambda {$conf['extract.0.layout.ELLIPSE_SIZE']}, # radii of the largest Ellipse
+ REST_SIZE: lambda {$conf['extract.0.layout.REST_SIZE']}
+ },
layout_large: {
LINE_MEDIUM: 0.3,
LINE_THICK: 0.7,
@@ -119,6 +125,7 @@ def self.init_conf()
instrument: {
'37-strings-g-g' => {
layout: {instrument: '37-strings-g-g',
+ limit_a3: true,
PITCH_OFFSET: lambda {$conf['extract.0.layout.PITCH_OFFSET']},
X_SPACING: lambda {$conf['extract.0.layout.X_SPACING']},
X_OFFSET: lambda {$conf['extract.0.layout.X_OFFSET']} # just to be safe
@@ -133,6 +140,7 @@ def self.init_conf()
},
'25-strings-g-g' => {
layout: {instrument: '25-strings-g-g',
+ limit_a3: false,
PITCH_OFFSET: lambda {$conf['extract.0.layout.PITCH_OFFSET']},
X_SPACING: lambda {$conf['extract.0.layout.X_SPACING']},
X_OFFSET: lambda {$conf['extract.0.layout.X_OFFSET']} # just to be safe
@@ -147,6 +155,7 @@ def self.init_conf()
},
'21-strings-a-f' => {
layout: {instrument: '21-strings-a-f',
+ limit_a3: false,
PITCH_OFFSET: lambda {$conf['extract.0.layout.PITCH_OFFSET']},
X_SPACING: lambda {$conf['extract.0.layout.X_SPACING']},
X_OFFSET: 23
@@ -161,6 +170,7 @@ def self.init_conf()
},
'18-strings-b-e' => {
layout: {instrument: '18-strings-b-e',
+ limit_a3: false,
PITCH_OFFSET: lambda {$conf['extract.0.layout.PITCH_OFFSET']},
X_SPACING: lambda {$conf['extract.0.layout.X_SPACING']},
X_OFFSET: 28.5
@@ -174,6 +184,7 @@ def self.init_conf()
},
'saitenspiel' => {
layout: {instrument: 'saitenspiel',
+ limit_a3: false,
PITCH_OFFSET: -24,
X_SPACING: 14.50,
X_OFFSET: 240
@@ -223,6 +234,12 @@ def self.init_conf()
text: I18n.t("provided by\n"),
style: "small"
}},
+ T05_printed_extracts: {
+ value: {
+ pos: [393, 22],
+ text: I18n.t(""),
+ style: "smaller"
+ }},
T99_do_not_copy: {
value: {
pos: [380, 284],
@@ -414,37 +431,37 @@ def self.init_conf()
DURATION_TO_STYLE: {
#key size fill dot abc duration
- :err => [2, :filled, FALSE], # 1 1
- :d64 => [1, :empty, FALSE], # 1 1
- :d48 => [0.75, :empty, TRUE], # 1/2 *
- :d32 => [0.75, :empty, FALSE], # 1/2
- :d24 => [0.75, :filled, TRUE], # 1/4 *
- :d16 => [0.75, :filled, FALSE], # 1/4
- :d12 => [0.5, :filled, TRUE], # 1/8 *
- :d8 => [0.5, :filled, FALSE], # 1/8
- :d6 => [0.3, :filled, TRUE], # 1/16 *
- :d4 => [0.3, :filled, FALSE], # 1/16
- :d3 => [0.1, :filled, TRUE], # 1/32 *
- :d2 => [0.1, :filled, FALSE], # 1/32
- :d1 => [0.05, :filled, FALSE] # 1/64
+ :err => [2, :filled, false], # 1 1
+ :d64 => [1, :empty, false], # 1 1
+ :d48 => [0.75, :empty, true], # 1/2 *
+ :d32 => [0.75, :empty, false], # 1/2
+ :d24 => [0.75, :filled, true], # 1/4 *
+ :d16 => [0.75, :filled, false], # 1/4
+ :d12 => [0.5, :filled, true], # 1/8 *
+ :d8 => [0.5, :filled, false], # 1/8
+ :d6 => [0.3, :filled, true], # 1/16 *
+ :d4 => [0.3, :filled, false], # 1/16
+ :d3 => [0.1, :filled, true], # 1/32 *
+ :d2 => [0.1, :filled, false], # 1/32
+ :d1 => [0.05, :filled, false] # 1/64
},
REST_TO_GLYPH: {
# this basically determines the white background rectangel
# [sizex, sizey], glyph, dot # note that sizex has no effect.
- :err => [[2, 2], :rest_1, FALSE], # 1 1
- :d64 => [[1, 0.8], :rest_1, FALSE], # 1 1 # make it a bit smaller than the note to improve visibility of barover
- :d48 => [[0.5, 0.4], :rest_1, TRUE], # 1/2 * # make it a bit smaller than the note to improve visibility of barover
- :d32 => [[0.5, 0.4], :rest_1, FALSE], # 1/2 # make it a bit smaller than the note to improve visibility of barover
- :d24 => [[0.4, 0.75], :rest_4, TRUE], # 1/4 *
- :d16 => [[0.4, 0.75], :rest_4, FALSE], # 1/4
- :d12 => [[0.4, 0.5], :rest_8, TRUE], # 1/8 *
- :d8 => [[0.4, 0.5], :rest_8, FALSE], # 1/8
- :d6 => [[0.4, 0.3], :rest_16, TRUE], # 1/16 *
- :d4 => [[0.3, 0.3], :rest_16, FALSE], # 1/16
- :d3 => [[0.3, 0.5], :rest_32, TRUE], # 1/32 *
- :d2 => [[0.3, 0.5], :rest_32, FALSE], # 1/32
- :d1 => [[0.3, 0.5], :rest_64, FALSE] # 1/64
+ :err => [[2, 2], :rest_1, false], # 1 1
+ :d64 => [[1, 0.8], :rest_1, false], # 1 1 # make it a bit smaller than the note to improve visibility of barover
+ :d48 => [[0.5, 0.4], :rest_1, true], # 1/2 * # make it a bit smaller than the note to improve visibility of barover
+ :d32 => [[0.5, 0.4], :rest_1, false], # 1/2 # make it a bit smaller than the note to improve visibility of barover
+ :d24 => [[0.4, 0.75], :rest_4, true], # 1/4 *
+ :d16 => [[0.4, 0.75], :rest_4, false], # 1/4
+ :d12 => [[0.4, 0.5], :rest_8, true], # 1/8 *
+ :d8 => [[0.4, 0.5], :rest_8, false], # 1/8
+ :d6 => [[0.4, 0.3], :rest_16, true], # 1/16 *
+ :d4 => [[0.3, 0.3], :rest_16, false], # 1/16
+ :d3 => [[0.3, 0.5], :rest_32, true], # 1/32 *
+ :d2 => [[0.3, 0.5], :rest_32, false], # 1/32
+ :d1 => [[0.3, 0.5], :rest_64, false] # 1/64
}
},
diff --git a/30_sources/SRC_Zupfnoter/src/localization/help_de-de.md b/30_sources/SRC_Zupfnoter/src/localization/help_de-de.md
index 970d33bd..1be3cee5 100644
--- a/30_sources/SRC_Zupfnoter/src/localization/help_de-de.md
+++ b/30_sources/SRC_Zupfnoter/src/localization/help_de-de.md
@@ -257,7 +257,7 @@ Hier stellst du die Breite (in mm) von mittelstarken Linien ein.
Hier stellst du die Breite (in mm) von dicken Linien ein.
-## layout.minc
+## notebound.minc
Hier kannst du manuelle Korrekturen im vertikalen Layout vornehmen:
@@ -687,13 +687,12 @@ Er ist hier aufgeführt, um die Vorlagen selbst zu dokumentieren.
Hier kannst du die Darstellung von Triolen (genauer gesagt, von Tuplets)
steuern.
-> **Hinweis**: diese Einstellungen wirken immer auf alle Tuplets aller
-> Stimmen, die zum gleichen Zeitpunkt gespielt werden.
+> **Hinweis**:
>
-> Wenn du die Tuplets individuell konfigurieren möchtest, ist es
-> notwendig, eine "Verschiebemarke" vor das tuplet zu setzen. Dabei ist
-> es möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn man die
-> Verschiebemarken gleich benennt.
+> Wenn du mehrere Tuplets gemeinsam konfigurieren möchtest, ist es
+> notwendig, eine "Verschiebemarke" vor die betroffene tuplet zu setzen.
+> Dabei ist es möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn
+> man die Verschiebemarken gleich benennt.
>
> Z.B. kann man eine Verschiebemarke `tpl_links` an alle tuplets
> schreiben, deren Bogen links von der FLußlineie liegen soll. Diese
diff --git a/30_sources/SRC_Zupfnoter/src/localization/zupfnoter_de-de.json b/30_sources/SRC_Zupfnoter/src/localization/zupfnoter_de-de.json
index 00b9df7e..913d7034 100644
--- a/30_sources/SRC_Zupfnoter/src/localization/zupfnoter_de-de.json
+++ b/30_sources/SRC_Zupfnoter/src/localization/zupfnoter_de-de.json
@@ -58,6 +58,7 @@
"before_colon_n": "**--before_colon_n",
"beforeColonN": "beforeColonN",
"bold": "fettdruck",
+ "c_jumplines": "Sprunglinien",
"Choose extract": "Auszug wählen",
"color": "Farbeinstellung",
"color_default": "Sonstiges",
@@ -72,6 +73,7 @@
"could not find extract with number": "Es gibt keinen Auszug mit nummer",
"could not open file": "konnte Datei nicht öffnen",
"countnotes": "Zählmarken",
+ "countnote": "Zählmarke",
"cp1": "cp1",
"cp2": "cp2",
"Create new sheet": "Neues Blatt erstellen",
@@ -91,6 +93,7 @@
"d64": "**--d64",
"d8": "**--d8",
"decimals": "Dezimalstellen",
+ "decoration": "Dekoration",
"default": "Vorgabewert",
"defaults": "Vorgabewerte",
"Demo": "Demonstration",
@@ -121,10 +124,12 @@
"Edit printer correction paerameters": "Druckeranpassungen bearbeiten",
"edit settings for lyrics\nin current extract": "Einstellungen für Liedtexte bearbeiten\nim aktuellen Auszug",
"edit settings for sheet annotations\nin current extract": "Einstellungen für Seitenbeschriftung bearbeiten",
+ "edit shape of repeat signs": "Darstellung der Wiederholungszeichen bearbeiten",
"editor and harpnotes\napplicaple to tweak the notes for harp": "Zeige ABC und Harfennoten\ngeeignet zur Feinkorektur\nim Unterlegnotenblatt",
"editor and notes\napplicable to enter notes": "Zeige ABC und Notendarstellung\ngeeignet zur Eingabe von Noten",
"Effective value": "aktuell wirksamer Wert",
"ELLIPSE_SIZE": "Notengröße",
+ "Empty voice": "Stimme ist leer",
"end-of-translagion": "end-of-translation",
"enter a page bound annotation": "Seitengebundene Beschriftung\nanlegen/bearbeiten",
"Enter Harp": "Harfeneingabe",
@@ -173,7 +178,7 @@
"insert a title for the \ncurrent extract": "Titel für den aktuellen\n Auszug einfügen",
"Insert addon at cursor position": "Zusatzinformation an der Cursor-Position einfügen",
"Insert Addon": "Zusatz einfügen",
- "instrument specific": "Intrument spez.",
+ "instrument specific": "Intrumentspezifika",
"instrument": "Instrument",
"Interact with dropbox": "Arbeiten mit Dropbox",
"italic": "kursiv",
@@ -288,6 +293,7 @@
"regular": "normal",
"Render previews": "Vorschauen neu errechnen",
"Render": "Rendern",
+ "repeat signs": "Wiederholungszeichen",
"repeatend": "Wiederholungsende",
"repeatsigns": "Wiederholungszeichen",
"repeatsigns.full": "Wiederholugnszeichen.detail",
@@ -356,6 +362,7 @@
"T02_copyright_music": "T02 Copyright Musik",
"T03_copyright_harpnotes": "T03 Copyright Unterlegnoten",
"T04_to_order": "T04 zu beziehen bei",
+ "T05_printed_extracts": "T05 verfügbare Auszüge",
"T99_do_not_copy": "T99 bitte nicht kopieren",
"target to jump to": "Sprungziel",
"templates": "Vorlagen",
@@ -396,6 +403,7 @@
"Y_SCALE": "Vertikale Skalierung",
"Yes": "Ja",
"you are not logged in to dropbox": "Du bist nicht bei Dropbox angemeldet",
+ "you have multiple %%score statements": "Du hast mehr als eine %%score Zeile",
"you need to logout if you want to change the application scope": "Du musst dich abmelden um den Zugriffstyp zu ändern",
"Zombie Accesstoken revoked; do not use Browser back after login to dropbox": "Zombie Zugriffstoken gelöscht. Bitte drücke nicht die ZURÜCK-Taste des Borwsers nach dem Einloggen in Dropbox.",
"Zombie token or zombie login occured. Maybe you hit the back button in the browser.": "Zombie Zugriffstoken oder login aufgetreten. Bitte drücke nicht die ZURÜCK-Taste des Borwsers nach dem Einloggen in Dropbox.",
diff --git a/30_sources/SRC_Zupfnoter/src/opal-ajv.rb b/30_sources/SRC_Zupfnoter/src/opal-ajv.rb
index f6f46487..e2a79b83 100644
--- a/30_sources/SRC_Zupfnoter/src/opal-ajv.rb
+++ b/30_sources/SRC_Zupfnoter/src/opal-ajv.rb
@@ -83,7 +83,7 @@ def _schema
:cp2 => {:'$ref' => '#/definitions/pos'},
:pos => {:'$ref' => '#/definitions/pos'},
:shape => {:type => "array",
- :minItems => 1,
+ :minItems => 0,
:uniqueItems => true,
:items => {:type => "string"}},
:show => {:type => 'boolean'}
@@ -146,6 +146,7 @@ def _schema
:items => {:type => "integer"}},
:abc_parser => {:type => "string"},
:restposition => {:type => "object",
+ :additionalProperties => false,
:required => ["default", "repeatstart", "repeatend"],
:properties =>
{:default => {:type => "string"},
@@ -179,444 +180,446 @@ def _schema
}
},
# eend of defaults
- :templates => {:type => "object",
- :required => ["notes", "lyrics", "tuplet", "annotations"],
- :properties =>
- {:notes => {:"$ref" => '#/definitions/notes_entry'},
- :lyrics => {:type => "object",
- :required => ["verses", "pos"],
- :properties =>
- {:verses => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :pos => {:'$ref' => '#/definitions/pos'}}},
- :tuplet => {:type => "object",
- :required => ["cp1", "cp2", "shape"],
- :properties =>
- {:cp1 => {:'$ref' => '#/definitions/pos'},
- :cp2 => {:'$ref' => '#/definitions/pos'},
- :shape => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "string"}}}},
- :annotations => {:type => "object",
- :required => ["text", "pos"],
- :properties =>
- {:text => {:type => "string"},
- :pos => {:'$ref' => '#/definitions/pos'}}}}},
- :annotations => {:type => "object",
- :required => ["vl", "vt", "vr"],
- :properties =>
- {:vl => {:type => "object",
- :required => ["text", "pos"],
- :properties =>
- {:text => {:type => "string"},
- :pos => {:'$ref' => '#/definitions/pos'}}},
- :vt => {:type => "object",
- :required => ["text", "pos"],
- :properties =>
- {:text => {:type => "string"},
- :pos => {:'$ref' => '#/definitions/pos'}}},
- :vr => {:type => "object",
- :required => ["text", "pos"],
- :properties =>
- {:text => {:type => "string"},
- :pos => {:'$ref' => '#/definitions/pos'}}}}},
- :extract => {:type => "object",
- #:required => ["0", "1", "2", "3"],
- :patternProperties =>
- {:"\d*" => {:type => "object",
- :additionalProperties => false,
- :requiredx =>
- ["title", "filenamepart", "startpos", "voices", "synchlines",
- "flowlines", "subflowlines", "jumplines", "repeatsigns", "layoutlines",
- "legend", "lyrics", "layout", "nonflowrest", "notes", "barnumbers",
- "countnotes", "stringnames", "printer"],
- :properties =>
- {:title => {:type => "string"},
- :filenamepart => {},
- :startpos => {:type => "integer"},
- :voices => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :synchlines => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}}},
- :flowlines => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :subflowlines => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :jumplines => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :repeatsigns => {:type => "object",
- :requiredx => ["voices", "left", "right"],
- :properties =>
- {:voices => {:type => "array",
- :minItems => 0,
- :uniqueItems => true,
- :items => {}},
- :left => {:type => "object",
- :required => ["pos", "text", "style"],
- :properties =>
- {:pos => {:'$ref' => '#/definitions/pos'},
- :text => {:type => "string"},
- :style => {:type => "string"}}},
- :right => {:type => "object",
- :required => ["pos", "text", "style"],
- :properties =>
- {:pos => {:'$ref' => '#/definitions/pos'},
- :text => {:type => "string"},
- :style => {:type => "string"}}}}},
- :layoutlines => {:type => "array",
+ :templates => {:type => "object",
+ :required => ["notes", "lyrics", "tuplet", "annotations"],
+ :properties =>
+ {:notes => {:"$ref" => '#/definitions/notes_entry'},
+ :lyrics => {:type => "object",
+ :required => ["verses", "pos"],
+ :properties =>
+ {:verses => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :pos => {:'$ref' => '#/definitions/pos'}}},
+ :tuplet => {:type => "object",
+ :required => ["cp1", "cp2", "shape"],
+ :properties =>
+ {:cp1 => {:'$ref' => '#/definitions/pos'},
+ :cp2 => {:'$ref' => '#/definitions/pos'},
+ :shape => {:type => "array",
:minItems => 1,
:uniqueItems => true,
- :items => {:type => "integer"}},
- :legend => {:type => "object",
- :required => ["spos", "pos"],
- :properties =>
- {:spos => {:"$ref" => "#/definitions/pos"},
- :pos => {:"$ref" => "#/definitions/pos"}
- }
- },
- :lyrics => {:type => "object",
- :patternProperties =>
- {".*" => {
- :type => "object",
- :required => ["verses", "pos"]
- }}
- },
- :layout => {:'$ref' => '#/definitions/extract_layout'},
- :nonflowrest => {:type => "boolean"},
- :notes => {:patternProperties => {'.*' => {:"$ref" => '#/definitions/notes_entry'}}},
- :notebound => {
- :type => 'object',
- :additionalProperties => false,
- :properties => {
- :annotation => {:'$ref' => '#/definitions/notebound_pos'},
- :barnumber => {:'$ref' => '#/definitions/notebound_pos'},
- :c_jumplines => {:type => 'object',
- :additionalProperties => false,
- :patternProperties => {
- "v_\d*" => {
- :p_repeat => {type: 'number'},
- :p_begin => {type: 'number'},
- :p_end => {type: 'number'},
- :p_follow => {type: 'number'}
- }
- }},
- :countnote => {:'$ref' => '#/definitions/notebound_pos'},
- :decoration => {:'$ref' => '#/definitions/notebound_pos'},
- :flowline => {:type => 'object',
- :patternProperties => {
- "v_\d*" => {
- :type => 'object',
- :patternProperties => {
- "\d*" => {'$ref' => '#/definitions/annotated_bezier'}
- }
- }
- }
- },
- :minc => {:type => "object",
- :additionalProperties => false,
- :patternProperties => {
- "\d*" => {:'$ref' => '#/definitions/minc_entry'}
- }
- },
- :partname => {:'$ref' => '#/definitions/notebound_pos'},
- :tuplet => {:type => 'object',
- :patternProperties => {
- "v_\d*" => {
- :type => 'object',
- :patternProperties => {
- "\d*" => {'$ref' => '#/definitions/annotated_bezier'}
- }
- }
- }
- },
- :variantend => {:'$ref' => '#/definitions/notebound_pos'},
- }
- },
- :barnumbers => {:type => "object",
- :required => ["voices", "pos", "autopos", "style", "prefix"],
- :properties =>
- {:voices => {:type => "array",
- :minItems => 0,
+ :items => {:type => "string"}}}},
+ :annotations => {:type => "object",
+ :required => ["text", "pos"],
+ :properties =>
+ {:text => {:type => "string"},
+ :pos => {:'$ref' => '#/definitions/pos'}}}}},
+ :annotations => {:type => "object",
+ :required => ["vl", "vt", "vr"],
+ :properties =>
+ {:vl => {:type => "object",
+ :required => ["text", "pos"],
+ :properties =>
+ {:text => {:type => "string"},
+ :pos => {:'$ref' => '#/definitions/pos'}}},
+ :vt => {:type => "object",
+ :required => ["text", "pos"],
+ :properties =>
+ {:text => {:type => "string"},
+ :pos => {:'$ref' => '#/definitions/pos'}}},
+ :vr => {:type => "object",
+ :required => ["text", "pos"],
+ :properties =>
+ {:text => {:type => "string"},
+ :pos => {:'$ref' => '#/definitions/pos'}}}}},
+ :extract => {:type => "object",
+ #:required => ["0", "1", "2", "3"],
+ :patternProperties =>
+ {:"\d*" => {:type => "object",
+ :additionalProperties => false,
+ :requiredx =>
+ ["title", "filenamepart", "startpos", "voices", "synchlines",
+ "flowlines", "subflowlines", "jumplines", "repeatsigns", "layoutlines",
+ "legend", "lyrics", "layout", "nonflowrest", "notes", "barnumbers",
+ "countnotes", "stringnames", "printer"],
+ :properties =>
+ {:title => {:type => "string"},
+ :filenamepart => {},
+ :startpos => {:type => "integer"},
+ :voices => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :synchlines => {:type => "array",
+ :minItems => 0,
+ :uniqueItems => true,
+ :items => {:type => "array",
+ :minItems => 1,
:uniqueItems => true,
- :items => {}},
- :pos => {:'$ref' => '#/definitions/pos'},
- :autopos => {:type => "boolean"},
- :style => {:type => "string"},
- :prefix => {:type => "string"}}},
- :countnotes => {:type => "object",
- :required => ["voices", "pos", "autopos", "style"],
- :properties =>
- {:voices => {:type => "array",
+ :items => {:type => "integer"}}},
+ :flowlines => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :subflowlines => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :jumplines => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :repeatsigns => {:type => "object",
+ :requiredx => ["voices", "left", "right"],
+ :properties =>
+ {:voices => {:type => "array",
:minItems => 0,
:uniqueItems => true,
:items => {}},
- :pos => {:'$ref' => '#/definitions/pos'},
- :autopos => {:type => "boolean"},
- :style => {:type => "string"}}},
- :stringnames => {:type => "object",
- :required => ["text", "vpos", "style", "marks"],
- :properties =>
- {:text => {:type => "string"},
- :vpos => {:type => "array",
- :minItems => 0,
- :uniqueItems => true,
- :items => {}},
- :style => {:type => "string"},
- :marks => {:type => "object",
- :required => ["vpos", "hpos"],
- :properties =>
- {:vpos => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :hpos => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}}}}}},
- :sortmark => {:type => 'object',
- :properties => {
- :show => {:type => 'boolean'}
- }
- },
- :printer => {:type => "object",
- :required => ["a3_offset", "a4_offset", "show_border"],
- :properties =>
- {:a3_offset => {:type => "array",
- :minItems => 2,
- :axItems => 2,
- :uniqueItems => false,
- :items => {:type => "integer"}},
- :a4_offset => {:type => "array",
- :minItems => 2,
+ :left => {:type => "object",
+ :required => ["pos", "text", "style"],
+ :properties =>
+ {:pos => {:'$ref' => '#/definitions/pos'},
+ :text => {:type => "string"},
+ :style => {:type => "string"}}},
+ :right => {:type => "object",
+ :required => ["pos", "text", "style"],
+ :properties =>
+ {:pos => {:'$ref' => '#/definitions/pos'},
+ :text => {:type => "string"},
+ :style => {:type => "string"}}}}},
+ :layoutlines => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :legend => {:type => "object",
+ :required => ["spos", "pos"],
+ :properties =>
+ {:spos => {:"$ref" => "#/definitions/pos"},
+ :pos => {:"$ref" => "#/definitions/pos"}
+ }
+ },
+ :lyrics => {:type => "object",
+ :patternProperties =>
+ {".*" => {
+ :type => "object",
+ :required => ["verses", "pos"]
+ }}
+ },
+ :layout => {:'$ref' => '#/definitions/extract_layout'},
+ :nonflowrest => {:type => "boolean"},
+ :notes => {:patternProperties => {'.*' => {:"$ref" => '#/definitions/notes_entry'}}},
+ :notebound => {
+ :type => 'object',
+ :additionalProperties => false,
+ :properties => {
+ :annotation => {:'$ref' => '#/definitions/notebound_pos'},
+ :barnumber => {:'$ref' => '#/definitions/notebound_pos'},
+ :c_jumplines => {:type => 'object',
+ :additionalProperties => false,
+ :patternProperties => {
+ "v_\d*" => {
+ :p_repeat => {type: 'number'},
+ :p_begin => {type: 'number'},
+ :p_end => {type: 'number'},
+ :p_follow => {type: 'number'}
+ }
+ }},
+ :countnote => {:'$ref' => '#/definitions/notebound_pos'},
+ :decoration => {:'$ref' => '#/definitions/notebound_pos'},
+ :flowline => {:type => 'object',
+ :patternProperties => {
+ "v_\d*" => {
+ :type => 'object',
+ :patternProperties => {
+ "\d*" => {'$ref' => '#/definitions/annotated_bezier'}
+ }
+ }
+ }
+ },
+ :minc => {:type => "object",
+ :additionalProperties => false,
+ :patternProperties => {
+ "\d*" => {:'$ref' => '#/definitions/minc_entry'}
+ }
+ },
+ :partname => {:'$ref' => '#/definitions/notebound_pos'},
+ :repeat_begin => {:'$ref' => '#/definitions/notebound_pos'},
+ :repeat_end => {:'$ref' => '#/definitions/notebound_pos'},
+ :tuplet => {:type => 'object',
+ :patternProperties => {
+ "v_\d*" => {
+ :type => 'object',
+ :patternProperties => {
+ "\d*" => {'$ref' => '#/definitions/annotated_bezier'}
+ }
+ }
+ }
+ },
+ :variantend => {:'$ref' => '#/definitions/notebound_pos'},
+ }
+ },
+ :barnumbers => {:type => "object",
+ :required => ["voices", "pos", "autopos", "style", "prefix"],
+ :properties =>
+ {:voices => {:type => "array",
+ :minItems => 0,
+ :uniqueItems => true,
+ :items => {}},
+ :pos => {:'$ref' => '#/definitions/pos'},
+ :autopos => {:type => "boolean"},
+ :style => {:type => "string"},
+ :prefix => {:type => "string"}}},
+ :countnotes => {:type => "object",
+ :required => ["voices", "pos", "autopos", "style"],
+ :properties =>
+ {:voices => {:type => "array",
+ :minItems => 0,
+ :uniqueItems => true,
+ :items => {}},
+ :pos => {:'$ref' => '#/definitions/pos'},
+ :autopos => {:type => "boolean"},
+ :style => {:type => "string"}}},
+ :stringnames => {:type => "object",
+ :required => ["text", "vpos", "style", "marks"],
+ :properties =>
+ {:text => {:type => "string"},
+ :vpos => {:type => "array",
+ :minItems => 0,
+ :uniqueItems => true,
+ :items => {}},
+ :style => {:type => "string"},
+ :marks => {:type => "object",
+ :required => ["vpos", "hpos"],
+ :properties =>
+ {:vpos => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :hpos => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}}}}}},
+ :sortmark => {:type => 'object',
+ :properties => {
+ :show => {:type => 'boolean'}
+ }
+ },
+ :printer => {:type => "object",
+ :required => ["a3_offset", "a4_offset", "show_border"],
+ :properties =>
+ {:a3_offset => {:type => "array",
+ :minItems => 2,
+ :axItems => 2,
+ :uniqueItems => false,
+ :items => {:type => "integer"}},
+ :a4_offset => {:type => "array",
+ :minItems => 2,
+ :uniqueItems => false,
+ :items => {:type => "integer"}},
+ :show_border => {:type => "boolean"}}}}},
+ :"4" => {:type => "object",
+ :required => ["title", "voices"],
+ :properties =>
+ {:title => {:type => "string"},
+ :filenamepart => {},
+ :voices => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}}}},
+ :"5" => {:type => "object",
+ :required => ["title", "voices"],
+ :properties =>
+ {:title => {:type => "string"},
+ :filenamepart => {},
+ :voices => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}}}}}},
+ :layout => {:type => "object",
+ :required => ["grid", "limit_a3", "SHOW_SLUR", "LINE_THIN", "LINE_MEDIUM", "LINE_THICK", "ELLIPSE_SIZE", "REST_SIZE", "X_SPACING", "X_OFFSET", "Y_SCALE", "DRAWING_AREA_SIZE", "BEAT_RESOLUTION", "SHORTEST_NOTE", "BEAT_PER_DURATION", "PITCH_OFFSET", "FONT_STYLE_DEF", "MM_PER_POINT", "DURATION_TO_STYLE", "REST_TO_GLYPH"],
+ :properties =>
+ {:grid => {:type => "boolean"},
+ :limit_a3 => {:type => "boolean"},
+ :SHOW_SLUR => {:type => "boolean"},
+ :LINE_THIN => {:type => "number"},
+ :LINE_MEDIUM => {:type => "number"},
+ :LINE_THICK => {:type => "number"},
+ :ELLIPSE_SIZE => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "number"}},
+ :REST_SIZE => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "number"}},
+ :X_SPACING => {:type => "number"},
+ :X_OFFSET => {:type => "number"},
+ :Y_SCALE => {:type => "integer"},
+ :DRAWING_AREA_SIZE => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => {:type => "integer"}},
+ :BEAT_RESOLUTION => {:type => "integer"},
+ :SHORTEST_NOTE => {:type => "integer"},
+ :BEAT_PER_DURATION => {:type => "integer"},
+ :PITCH_OFFSET => {:type => "integer"},
+ :FONT_STYLE_DEF => {:type => "object",
+ :required => ["bold", "italic", "large", "regular", "small_bold", "small_italic", "small", "smaller"],
+ :patternProperties =>
+ {".*" => {:type => "object",
+ :required => ["text_color", "font_size", "font_style"],
+ :properties =>
+ {:text_color => {:type => "array",
+ :minItems => 3,
+ :uniqueItems => false,
+ :items => {:type => "integer"}},
+ :font_size => {:type => "integer"},
+ :font_style => {:type => "string"}}} #,
+ # :italic => {:type => "object",
+ # :required => ["text_color", "font_size", "font_style"],
+ # :properties =>
+ # {:text_color => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :font_size => {:type => "integer"},
+ # :font_style => {:type => "string"}}},
+ # :large => {:type => "object",
+ # :required => ["text_color", "font_size", "font_style"],
+ # :properties =>
+ # {:text_color => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :font_size => {:type => "integer"},
+ # :font_style => {:type => "string"}}},
+ # :regular => {:type => "object",
+ # :required => ["text_color", "font_size", "font_style"],
+ # :properties =>
+ # {:text_color => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :font_size => {:type => "integer"},
+ # :font_style => {:type => "string"}}},
+ # :small_bold => {:type => "object",
+ # :required => ["text_color", "font_size", "font_style"],
+ # :properties =>
+ # {:text_color => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :font_size => {:type => "integer"},
+ # :font_style => {:type => "string"}}},
+ # :small_italic => {:type => "object",
+ # :required => ["text_color", "font_size", "font_style"],
+ # :properties =>
+ # {:text_color => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :font_size => {:type => "integer"},
+ # :font_style => {:type => "string"}}},
+ # :small => {:type => "object",
+ # :required => ["text_color", "font_size", "font_style"],
+ # :properties =>
+ # {:text_color => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :font_size => {:type => "integer"},
+ # :font_style => {:type => "string"}}},
+ # :smaller => {:type => "object",
+ # :required => ["text_color", "font_size", "font_style"],
+ # :properties =>
+ # {:text_color => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :font_size => {:type => "integer"},
+ # :font_style => {:type => "string"}}}
+ }
+ },
+ :MM_PER_POINT => {:type => "number"},
+ :DURATION_TO_STYLE => {:type => "object",
+ :required => ["err", "d64", "d48", "d32", "d24", "d16", "d12", "d8", "d6", "d4", "d3", "d2", "d1"],
+ :patternProperties =>
+ {".*" => {:type => "array",
+ :minItems => 3,
+ :uniqueItems => false,
+ :items => {:type => ["number", "string", "boolean"]}} #,
+ # :d64 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "integer"}},
+ # :d48 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d32 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d24 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d16 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d12 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d8 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d6 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d4 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d3 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d2 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}},
+ # :d1 => {:type => "array",
+ # :minItems => 1,
+ # :uniqueItems => true,
+ # :items => {:type => "number"}}}
+ }},
+ :REST_TO_GLYPH => {:type => "object",
+ # :required => ["err", "d64", "d48", "d32", "d24", "d16", "d12", "d8", "d6", "d4", "d3", "d2", "d1"],
+ :patternProperties =>
+ {'.*' => {:type => "array",
+ :minItems => 1,
+ :uniqueItems => true,
+ :items => [{:type => "array",
+ :minItems => 1,
:uniqueItems => false,
- :items => {:type => "integer"}},
- :show_border => {:type => "boolean"}}}}},
- :"4" => {:type => "object",
- :required => ["title", "voices"],
- :properties =>
- {:title => {:type => "string"},
- :filenamepart => {},
- :voices => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}}}},
- :"5" => {:type => "object",
- :required => ["title", "voices"],
- :properties =>
- {:title => {:type => "string"},
- :filenamepart => {},
- :voices => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}}}}}},
- :layout => {:type => "object",
- :required => ["grid", "limit_a3", "SHOW_SLUR", "LINE_THIN", "LINE_MEDIUM", "LINE_THICK", "ELLIPSE_SIZE", "REST_SIZE", "X_SPACING", "X_OFFSET", "Y_SCALE", "DRAWING_AREA_SIZE", "BEAT_RESOLUTION", "SHORTEST_NOTE", "BEAT_PER_DURATION", "PITCH_OFFSET", "FONT_STYLE_DEF", "MM_PER_POINT", "DURATION_TO_STYLE", "REST_TO_GLYPH"],
- :properties =>
- {:grid => {:type => "boolean"},
- :limit_a3 => {:type => "boolean"},
- :SHOW_SLUR => {:type => "boolean"},
- :LINE_THIN => {:type => "number"},
- :LINE_MEDIUM => {:type => "number"},
- :LINE_THICK => {:type => "number"},
- :ELLIPSE_SIZE => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "number"}},
- :REST_SIZE => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :X_SPACING => {:type => "number"},
- :X_OFFSET => {:type => "number"},
- :Y_SCALE => {:type => "integer"},
- :DRAWING_AREA_SIZE => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => {:type => "integer"}},
- :BEAT_RESOLUTION => {:type => "integer"},
- :SHORTEST_NOTE => {:type => "integer"},
- :BEAT_PER_DURATION => {:type => "integer"},
- :PITCH_OFFSET => {:type => "integer"},
- :FONT_STYLE_DEF => {:type => "object",
- :required => ["bold", "italic", "large", "regular", "small_bold", "small_italic", "small", "smaller"],
- :patternProperties =>
- {".*" => {:type => "object",
- :required => ["text_color", "font_size", "font_style"],
- :properties =>
- {:text_color => {:type => "array",
- :minItems => 3,
- :uniqueItems => false,
- :items => {:type => "integer"}},
- :font_size => {:type => "integer"},
- :font_style => {:type => "string"}}} #,
- # :italic => {:type => "object",
- # :required => ["text_color", "font_size", "font_style"],
- # :properties =>
- # {:text_color => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :font_size => {:type => "integer"},
- # :font_style => {:type => "string"}}},
- # :large => {:type => "object",
- # :required => ["text_color", "font_size", "font_style"],
- # :properties =>
- # {:text_color => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :font_size => {:type => "integer"},
- # :font_style => {:type => "string"}}},
- # :regular => {:type => "object",
- # :required => ["text_color", "font_size", "font_style"],
- # :properties =>
- # {:text_color => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :font_size => {:type => "integer"},
- # :font_style => {:type => "string"}}},
- # :small_bold => {:type => "object",
- # :required => ["text_color", "font_size", "font_style"],
- # :properties =>
- # {:text_color => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :font_size => {:type => "integer"},
- # :font_style => {:type => "string"}}},
- # :small_italic => {:type => "object",
- # :required => ["text_color", "font_size", "font_style"],
- # :properties =>
- # {:text_color => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :font_size => {:type => "integer"},
- # :font_style => {:type => "string"}}},
- # :small => {:type => "object",
- # :required => ["text_color", "font_size", "font_style"],
- # :properties =>
- # {:text_color => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :font_size => {:type => "integer"},
- # :font_style => {:type => "string"}}},
- # :smaller => {:type => "object",
- # :required => ["text_color", "font_size", "font_style"],
- # :properties =>
- # {:text_color => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :font_size => {:type => "integer"},
- # :font_style => {:type => "string"}}}
- }
- },
- :MM_PER_POINT => {:type => "number"},
- :DURATION_TO_STYLE => {:type => "object",
- :required => ["err", "d64", "d48", "d32", "d24", "d16", "d12", "d8", "d6", "d4", "d3", "d2", "d1"],
- :patternProperties =>
- {".*" => {:type => "array",
- :minItems => 3,
- :uniqueItems => false,
- :items => {:type => ["number", "string", "boolean"]}} #,
- # :d64 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "integer"}},
- # :d48 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d32 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d24 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d16 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d12 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d8 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d6 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d4 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d3 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d2 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}},
- # :d1 => {:type => "array",
- # :minItems => 1,
- # :uniqueItems => true,
- # :items => {:type => "number"}}}
- }},
- :REST_TO_GLYPH => {:type => "object",
- # :required => ["err", "d64", "d48", "d32", "d24", "d16", "d12", "d8", "d6", "d4", "d3", "d2", "d1"],
- :patternProperties =>
- {'.*' => {:type => "array",
- :minItems => 1,
- :uniqueItems => true,
- :items => [{:type => "array",
- :minItems => 1,
- :uniqueItems => false,
- :items => {:type => "number"}},
- {:type => "string"},
- {:type => "boolean"}]}
+ :items => {:type => "number"}},
+ {:type => "string"},
+ {:type => "boolean"}]}
- }
+ }
+ }
}
- }
},
- :neatjson => {:type => "object",
- :required => ["wrap", "aligned", "after_comma", "after_colon_1", "after_colon_n", "before_colon_n", "explicit_sort"],
- :properties =>
- {:wrap => {:type => "integer"},
- :aligned => {:type => "boolean"},
- :after_comma => {:type => "integer"},
- :after_colon_1 => {:type => "integer"},
- :after_colon_n => {:type => "integer"},
- :before_colon_n => {:type => "integer"},
- :sorted => {:type => "boolean"},
- :explicit_sort => {:type => "object"}
- }}}}
+ :neatjson => {:type => "object",
+ :required => ["wrap", "aligned", "after_comma", "after_colon_1", "after_colon_n", "before_colon_n", "explicit_sort"],
+ :properties =>
+ {:wrap => {:type => "integer"},
+ :aligned => {:type => "boolean"},
+ :after_comma => {:type => "integer"},
+ :after_colon_1 => {:type => "integer"},
+ :after_colon_n => {:type => "integer"},
+ :before_colon_n => {:type => "integer"},
+ :sorted => {:type => "boolean"},
+ :explicit_sort => {:type => "object"}
+ }}}}
end
end
diff --git a/30_sources/SRC_Zupfnoter/src/user-interface.js b/30_sources/SRC_Zupfnoter/src/user-interface.js
index ea36f66e..660579e6 100644
--- a/30_sources/SRC_Zupfnoter/src/user-interface.js
+++ b/30_sources/SRC_Zupfnoter/src/user-interface.js
@@ -555,36 +555,48 @@ function init_w2ui(uicontroller) {
icon: 'fa fa-pencil',
tooltip: "Edit configuration with forms",
items: [
- {id: 'basic_settings', text: 'basic settings', tooltip: "Edit basic settings of extract"},
- {id: 'extract_annotation', text: 'Extract-Annotation', tooltip: "Edit annotations of an extract"},
- {id: 'lyrics', text: 'lyrics', tooltip: "edit settings for lyrics\nin current extract"},
- {id: 'layout', text: 'layout', tooltip: "Edit layout paerameters\nin current extract"},
+ {id: 'extract_annotation', text: 'Extract-Annotation', icon: 'fa fa-bars', tooltip: "Edit annotations of an extract"},
{
id: 'notes',
text: 'page annotation',
+ icon: 'fa fa-file-text-o',
tooltip: "edit settings for sheet annotations\nin current extract"
},
{},
+ {id: 'basic_settings', text: 'basic settings', icon: 'fa fa-heartbeat', tooltip: "Edit basic settings of extract"},
+ {id: 'lyrics', text: 'lyrics', icon: 'fa fa-font', tooltip: "edit settings for lyrics\nin current extract"},
+ {id: 'layout', text: 'layout', icon: 'fa fa-align-center', tooltip: "Edit layout paerameters\nin current extract"},
{
id: 'instrument_specific',
text: 'instrument specific',
+ icon: 'fa fa-pie-chart',
tooltip: "settings for specific instrument sizes"
},
+ {},
{
id: 'barnumbers_countnotes',
text: 'barnumbers and countnotes',
+ icon: 'fa fa-music',
+ icon: 'fa fa-list-ol',
tooltip: "edit barnumbers or countnotes"
},
+ {
+ id: 'repeatsigns',
+ text: 'repeat signs',
+ icon: 'fa fa-repeat',
+ tooltip: "edit shape of repeat signs"
+ },
{
id: 'annotations',
text: 'annotations',
+ icon: 'fa fa-commenting-o',
tooltip: "edit settings for sheet annotations\nin current extract"
},
{},
- {id: 'stringnames', text: 'Stringnames', tooltip: "Edit presentation of stringanmes"},
- {id: 'printer', text: 'Printer adapt', tooltip: "Edit printer correction paerameters"},
+ {id: 'stringnames', icon: 'fa fa-ellipsis-h', text: 'Stringnames', tooltip: "Edit presentation of stringanmes"},
+ {id: 'printer', icon: 'fa fa-print', text: 'Printer adapt', tooltip: "Edit printer correction paerameters"},
{},
- {id: 'minc', text: 'minc', tooltip: "edit extra increments"}
+ {id: 'minc', icon: 'fa fa-adjust', text: 'minc', tooltip: "edit extra increments"}
]
},
{
diff --git a/30_sources/SRC_Zupfnoter/src/version.rb b/30_sources/SRC_Zupfnoter/src/version.rb
index 2255fc49..a25e279a 100644
--- a/30_sources/SRC_Zupfnoter/src/version.rb
+++ b/30_sources/SRC_Zupfnoter/src/version.rb
@@ -1,3 +1,3 @@
-VERSION = "1.7.0 dev 6"
+VERSION = "1.7.0 dev 7"
SCHEMA_VERSION = 'https://zupfnoter.weichel21.de/schema/zupfnoter-config_1.0.json'
COPYRIGHT = "© #{Time.now.year} https://www.zupfnoter.de"
diff --git a/30_sources/UD_Zupfnoter-Handbuch/000_UD-Zupfnoter-Version.md b/30_sources/UD_Zupfnoter-Handbuch/000_UD-Zupfnoter-Version.md
index 86c8b875..6b25d28c 100644
--- a/30_sources/UD_Zupfnoter-Handbuch/000_UD-Zupfnoter-Version.md
+++ b/30_sources/UD_Zupfnoter-Handbuch/000_UD-Zupfnoter-Version.md
@@ -1,5 +1,5 @@
-Version 1.7.0 dev 6
+Version 1.7.0 dev 7
© 2017 https://www.zupfnoter.de
diff --git a/30_sources/UD_Zupfnoter-Handbuch/040_UD-Zupfnoter-Referenz.md b/30_sources/UD_Zupfnoter-Handbuch/040_UD-Zupfnoter-Referenz.md
index f13a2f8f..c273debc 100644
--- a/30_sources/UD_Zupfnoter-Handbuch/040_UD-Zupfnoter-Referenz.md
+++ b/30_sources/UD_Zupfnoter-Handbuch/040_UD-Zupfnoter-Referenz.md
@@ -1058,6 +1058,17 @@ ist.
> wird Zupfnoter deutlich langsamer. Daher wird diese Einstellung beim
> Neuladen von Zupfnoter zurückgesetzt.
+- `setsetting validate true`: Diese Einstellung bewirkt eine extra
+ Prüfung/Validierung der Konfigurationsparamter.
+- `setsetting validate false`: Diese Einstellung beendet eine extra
+ Prüfung/Validierung der Konfigurationsparamter.
+- `editconf errors`: Damit werden die fehlerhaften
+ Konfigurationsparameter in den Konfigurationseditor geladen.
+
+> **Hinweis:** Diese Prüfungen sind noch nicht ausgereift und daher
+> standardmässig ausgeschaltet. Auch zeigt der Editor noch nicht die
+> Fehler noch nicht genau genug an.
+
Weiterhin zeigt die Konsole einige Meldungen, die für die Fehleranalyse
hilfreich sind. Insbesondere, wenn der "debug" - Modus eingestellt ist.
@@ -1410,10 +1421,24 @@ Für die grundsätzliche Bedienung gilt:
- Nach dem Beargbeiten des Elementes mit der Maus wird das Element
rot. Bitte führe einen "Render" aus um die Unterlegnotenvorschau zu
aktualisieren.
-- Bitte beachte, dass manche Einstellungen am Zeitbezug der Note
- hängen. Wenn du also dein Stück so überarbeitest, dass sich der
- Zeitbezug einer Note ändert, musst du ggf. die Konfiguration erneut
- durchführen.
+
+> **Hinweis**: Bitte beachte, dass manche Einstellungen am Zeitbezug der
+> Note hängen. Wenn du also dein Stück so überarbeitest, dass sich der
+> Zeitbezug einer Note ändert, musst du ggf. die Konfiguration erneut
+> durchführen.
+
+> **Hinweis**: Bitte beachte, dass Einstellungen von Dekorationen und
+> notenbezogenen Anmerkungen and der Reihenfolge im ABC code hängen.
+> Wenn du also z.b. von zwei aufeinanderfolgenden Anmerkungen die erste
+> löschst, dann wird die verbleibende Anmerkung an die Position der
+> gelöschten Anmerkung verschoben.
+
+> **Hinweis**: Es kann sein, dass beim Verändern deines Stückes nicht
+> mehr genutzte Konfigurationen übrig bleiben. Diese werden nicht
+> entfernt und könnten später zu unerwarteten Effekten führen. In diesem
+> Fall ist es am besten mit der rechten Maustaste in der
+> Harfennotenvorschau die entpreschende Konfiguration auzurufen, zu
+> löschen und neu zu erstellen.
### Texte verschieben
@@ -1568,7 +1593,7 @@ Daher ist folgendes Reihenfolge zu empfehlen:
- **0 Alle Stimmen**: Stimmen 1,2,3,4; Auszgsnummer -S
- **1 Sopran Alt**: Stimmen 1,2; Auszugsnummer -A
- **2 Tenor Bass**: Stimmen 3,4; Auszugsnummer -B
- - **3 Melodie**: Stimme 1; Auszugsnummer -B
+ - **3 Melodie**: Stimme 1; Auszugsnummer -M
2. **Anlegen der Auszüge**: Ausgehend von der Planung sollte unter dem
Menü **`Konfig. bearbeiten / Auszugsbeschriftung`** alle geplanten
@@ -1579,7 +1604,7 @@ Daher ist folgendes Reihenfolge zu empfehlen:
![](../ZAUX_Images/040-041_Auszugsbeschriftung.jpg)
3. **Bearbeitung der gemeinsamen Anteile**: Nun kannst du über das Menü
- `Konfig. bearbeiten / Grundeinstellungen` Die Maske für die
+ `Konfig. bearbeiten / Grundeinstellungen` die Maske für die
Grundeinstellungen aufrufen. Die hier gesetzten Einstellungen wirke
**auf alle nachfolgenden** Auszuüge. Daher ist es sinnvoll, z.b.
Flusslinien, Synchronisationslinien, Wiederholungen usw. für alle
@@ -1790,7 +1815,7 @@ relevante Beispiele
Es kann vorkommen, dass man in das vertikale Layout eingreifen muss,
z.B. wennd ie Flussline einer Stimme durch eine Noten einer anderen
Stimme läüft. Die Möglichkeiten dazu sind in
-Kapitel \ref{extract.0.layout.minc} [`minc`](#extract.0.layout.minc)
+Kapitel \ref{extract.0.notebound.minc} [`minc`](#extract.0.notebound.minc)
beschrieben.
### Extra Einstellungen für die Notenvorschau
diff --git a/30_sources/UD_Zupfnoter-Handbuch/090_UD_Zupfnoter-Konfiguration.md b/30_sources/UD_Zupfnoter-Handbuch/090_UD_Zupfnoter-Konfiguration.md
index 87e68296..89ad5ea4 100644
--- a/30_sources/UD_Zupfnoter-Handbuch/090_UD_Zupfnoter-Konfiguration.md
+++ b/30_sources/UD_Zupfnoter-Handbuch/090_UD_Zupfnoter-Konfiguration.md
@@ -680,6 +680,68 @@ orientiert.
"nonflowrest": false
+## `extract.0.notebound.minc` - extra Vorschub {#extract.0.notebound.minc}
+
+Hier kannst du manuelle Korrekturen im vertikalen Layout vornehmen:
+
+> **Hinweis**: Diese Funktion ist nun wirklich für die ganzen Experten.
+> Bitte verwende sie also nur, wenn du weißt, was du tust.
+> Anwendungsfälle für diese Funktion:
+>
+> - Linien (z.B. Sprunglinien) gehen unglücklich durch andere Noten
+> oder Beschriftungen
+> - Bei sehr dichten Layouts gehen Taktstriche in die vorherige Note
+> - Man hat sehr viele Noten, könnte aber einen Teil in eine freie
+> Fläche schieben. In diesem fall würde die Flusslinie teilweise
+> nach oben gehen.
+
+Dieser Parameter enthält eine Liste von manuellen Korrekturen. Jeder
+Eintrag ändert den Vorschub für einen durch seinen Schlüssel bestimmten
+Zeitpunkt.
+
+## `extract.0.notebound.minc.x.minc_f` - Faktor {#extract.0.notebound.minc.x.minc_f}
+
+Hier gibst du den Korrekturfaktor für den vertikalen Voreschub an.
+
+Die Angabe bestimmt, welcher Anteil am errechneten vertikalen Abstand
+als extra Abstand **hinzugefügt** wird. (`a = (a + minc_f * a`))
+
+Im Beispiel
+
+ "minc" : {
+ "2304": {"minc_f": 1},
+ "4224": {"minc_f": -0.25}
+ }
+
+- bei 2304 wird der Abstand verdoppelt. Mit derm Faktor 1 wird ein
+ Normalabstand wird hinugefügt.
+- bei 4224 wird der abstand um 25% reduziert. Mit dem Faktor -0.25
+ wird ein Viertel des Maximalabstandes abgezogen
+
+**Beispiele**:
+
+- `-1.0` würde den Vorschub um eine ganze Note zurück setzen
+- `0` ändert nichts am Vorschub. Damit kann man den Wert zurücksetzen,
+ falls er im Auszug 0 gesetzt wurde.
+- `0.5` vergrößert den Vorschub um die Hälfte einer ganzen Note.
+
+## `extract.0.notebound.tuplet` - Tuplet {#extract.0.notebound.tuplet}
+
+Hier kannst du die Darstellung von Triolen (genauer gesagt, von Tuplets)
+steuern.
+
+> **Hinweis**:
+>
+> Wenn du mehrere Tuplets gemeinsam konfigurieren möchtest, ist es
+> notwendig, eine "Verschiebemarke" vor die betroffene tuplet zu setzen.
+> Dabei ist es möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn
+> man die Verschiebemarken gleich benennt.
+>
+> Z.B. kann man eine Verschiebemarke `tpl_links` an alle tuplets
+> schreiben, deren Bogen links von der FLußlineie liegen soll. Diese
+> können dann über den parameter `extract.0.tuplet.tpl_links` gemeinsam
+> konfiguriert werden
+
## `extract.0.notes` - Seitenbeschriftungen {#extract.0.notes}
Hier kannst du eine Seitenbeschriftungen hinzufügen. Beim Einfügen einer
@@ -1038,10 +1100,11 @@ TODO: Helptext für presets einfügen
"instrument" : {
"18-strings-b-e" : {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 28.5,
- "X_SPACING" : "#",
- "instrument" : "18-strings-b-e"
+ "X_SPACING" : "#",
+ "instrument" : "18-strings-b-e",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -1050,62 +1113,65 @@ TODO: Helptext für presets einfügen
},
"stringnames" : {
"marks" : {"hpos": [59, 76]},
- "text" : "#"
+ "text" : "#"
}
},
"21-strings-a-f" : {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 23,
- "X_SPACING" : "#",
- "instrument" : "21-strings-a-f"
+ "X_SPACING" : "#",
+ "instrument" : "21-strings-a-f",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {"hpos": [57, 77]},
- "text" : "#"
+ "text" : "#"
}
},
"25-strings-g-g" : {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "25-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "25-strings-g-g",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
},
"37-strings-g-g" : {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "37-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "37-strings-g-g",
+ "limit_a3" : true
},
"printer" : {
- "a3_offset" : "#",
- "a4_offset" : "#",
+ "a3_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [0, 1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
},
"saitenspiel" : {
@@ -1113,7 +1179,8 @@ TODO: Helptext für presets einfügen
"PITCH_OFFSET" : -24,
"X_OFFSET" : 240,
"X_SPACING" : 14.5,
- "instrument" : "saitenspiel"
+ "instrument" : "saitenspiel",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -1190,6 +1257,9 @@ TODO: Helptext für presets einfügen
"T04_to_order" : {
"value" : {"pos": [340, 242], "style": "small", "text": null}
},
+ "T05_printed_extracts" : {
+ "value" : {"pos": [393, 22], "style": "smaller", "text": null}
+ },
"T99_do_not_copy" : {
"value" : {
"pos" : [380, 284],
@@ -1245,10 +1315,11 @@ Es gibt folgende Einstellunge:
"instrument": {
"18-strings-b-e" : {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 28.5,
- "X_SPACING" : "#",
- "instrument" : "18-strings-b-e"
+ "X_SPACING" : "#",
+ "instrument" : "18-strings-b-e",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -1257,62 +1328,65 @@ Es gibt folgende Einstellunge:
},
"stringnames" : {
"marks" : {"hpos": [59, 76]},
- "text" : "#"
+ "text" : "#"
}
},
"21-strings-a-f" : {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 23,
- "X_SPACING" : "#",
- "instrument" : "21-strings-a-f"
+ "X_SPACING" : "#",
+ "instrument" : "21-strings-a-f",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {"hpos": [57, 77]},
- "text" : "#"
+ "text" : "#"
}
},
"25-strings-g-g" : {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "25-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "25-strings-g-g",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
},
"37-strings-g-g" : {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "37-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "37-strings-g-g",
+ "limit_a3" : true
},
"printer" : {
- "a3_offset" : "#",
- "a4_offset" : "#",
+ "a3_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [0, 1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
},
"saitenspiel" : {
@@ -1320,7 +1394,8 @@ Es gibt folgende Einstellunge:
"PITCH_OFFSET" : -24,
"X_OFFSET" : 240,
"X_SPACING" : 14.5,
- "instrument" : "saitenspiel"
+ "instrument" : "saitenspiel",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -1340,10 +1415,11 @@ TODO: Helptext für presets.instrument.18-strings-b-e einfügen
"18-strings-b-e": {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 28.5,
- "X_SPACING" : "#",
- "instrument" : "18-strings-b-e"
+ "X_SPACING" : "#",
+ "instrument" : "18-strings-b-e",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -1352,7 +1428,7 @@ TODO: Helptext für presets.instrument.18-strings-b-e einfügen
},
"stringnames" : {
"marks" : {"hpos": [59, 76]},
- "text" : "#"
+ "text" : "#"
}
}
@@ -1363,10 +1439,11 @@ Hier kannst du die Parameter für das Layout eintsllen. Damit lässt das
Notenbild gezielt optimieren.
"layout": {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 28.5,
- "X_SPACING" : "#",
- "instrument" : "18-strings-b-e"
+ "X_SPACING" : "#",
+ "instrument" : "18-strings-b-e",
+ "limit_a3" : false
}
@@ -1382,7 +1459,7 @@ erscheint.
Die Midi-Codes findest du auf
[hier](http://www.electronics.dit.ie/staff/tscarff/Music_technology/midi/midi_note_numbers_for_octaves.htm)
- "PITCH_OFFSET": "#"
+ "PITCH_OFFSET": "#"
## `presets.instrument.18-strings-b-e.layout.X_OFFSET` - X - Offset {#presets.instrument.18-strings-b-e.layout.X_OFFSET}
@@ -1397,7 +1474,7 @@ einfügen
Hier gibst du den Saitenabstand in mm an. Normalerweise ist das 11.5 mm.
- "X_SPACING": "#"
+ "X_SPACING": "#"
## `presets.instrument.18-strings-b-e.layout.instrument` - Instrument {#presets.instrument.18-strings-b-e.layout.instrument}
@@ -1417,6 +1494,15 @@ Es gibt folgende Einstellunge:
"instrument": "18-strings-b-e"
+## `presets.instrument.18-strings-b-e.layout.limit_a3` - Begrenzung auf A3 {#presets.instrument.18-strings-b-e.layout.limit_a3}
+
+Diese Funktion verschiebt Noten am A3-Blattrand nach innen. Da das
+Unterlegnotenblatt etwas größer ist als A3 würde sonst die Note
+angeshnitten.
+
+ "limit_a3": false
+
+
## `presets.instrument.18-strings-b-e.printer` - Drucker {#presets.instrument.18-strings-b-e.printer}
Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
@@ -1478,7 +1564,7 @@ Unterlegnotenblatt gedruckt werden.
"stringnames": {
"marks" : {"hpos": [59, 76]},
- "text" : "#"
+ "text" : "#"
}
@@ -1514,7 +1600,7 @@ In der Regel reicht es also, die Saitennamen für eine Oktave anzugeben.
- `C Cis D Dis E F Fis G Gis A Aia Bb B` erzeugt die regulären
Saitennamen
- "text": "#"
+ "text": "#"
## `presets.instrument.21-strings-a-f` - 21 Saiten a-f {#presets.instrument.21-strings-a-f}
@@ -1522,19 +1608,20 @@ TODO: Helptext für presets.instrument.21-strings-a-f einfügen
"21-strings-a-f": {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 23,
- "X_SPACING" : "#",
- "instrument" : "21-strings-a-f"
+ "X_SPACING" : "#",
+ "instrument" : "21-strings-a-f",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {"hpos": [57, 77]},
- "text" : "#"
+ "text" : "#"
}
}
@@ -1545,10 +1632,11 @@ Hier kannst du die Parameter für das Layout eintsllen. Damit lässt das
Notenbild gezielt optimieren.
"layout": {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 23,
- "X_SPACING" : "#",
- "instrument" : "21-strings-a-f"
+ "X_SPACING" : "#",
+ "instrument" : "21-strings-a-f",
+ "limit_a3" : false
}
@@ -1564,7 +1652,7 @@ erscheint.
Die Midi-Codes findest du auf
[hier](http://www.electronics.dit.ie/staff/tscarff/Music_technology/midi/midi_note_numbers_for_octaves.htm)
- "PITCH_OFFSET": "#"
+ "PITCH_OFFSET": "#"
## `presets.instrument.21-strings-a-f.layout.X_OFFSET` - X - Offset {#presets.instrument.21-strings-a-f.layout.X_OFFSET}
@@ -1579,7 +1667,7 @@ einfügen
Hier gibst du den Saitenabstand in mm an. Normalerweise ist das 11.5 mm.
- "X_SPACING": "#"
+ "X_SPACING": "#"
## `presets.instrument.21-strings-a-f.layout.instrument` - Instrument {#presets.instrument.21-strings-a-f.layout.instrument}
@@ -1599,6 +1687,15 @@ Es gibt folgende Einstellunge:
"instrument": "21-strings-a-f"
+## `presets.instrument.21-strings-a-f.layout.limit_a3` - Begrenzung auf A3 {#presets.instrument.21-strings-a-f.layout.limit_a3}
+
+Diese Funktion verschiebt Noten am A3-Blattrand nach innen. Da das
+Unterlegnotenblatt etwas größer ist als A3 würde sonst die Note
+angeshnitten.
+
+ "limit_a3": false
+
+
## `presets.instrument.21-strings-a-f.printer` - Drucker {#presets.instrument.21-strings-a-f.printer}
Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
@@ -1610,7 +1707,7 @@ Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
"printer": {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
}
@@ -1641,7 +1738,7 @@ verschoben werden soll.
Angabe erfolgt in mm als kommagetrennte Liste von horizontaler /
vertikaler Position.
- "a4_offset": "#"
+ "a4_offset": "#"
## `presets.instrument.21-strings-a-f.printer.a4_pages` - Seiten bei A4 {#presets.instrument.21-strings-a-f.printer.a4_pages}
@@ -1664,7 +1761,7 @@ Unterlegnotenblatt gedruckt werden.
"stringnames": {
"marks" : {"hpos": [57, 77]},
- "text" : "#"
+ "text" : "#"
}
@@ -1700,7 +1797,7 @@ In der Regel reicht es also, die Saitennamen für eine Oktave anzugeben.
- `C Cis D Dis E F Fis G Gis A Aia Bb B` erzeugt die regulären
Saitennamen
- "text": "#"
+ "text": "#"
## `presets.instrument.25-strings-g-g` - 25 Saiten g-g {#presets.instrument.25-strings-g-g}
@@ -1708,21 +1805,22 @@ TODO: Helptext für presets.instrument.25-strings-g-g einfügen
"25-strings-g-g": {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "25-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "25-strings-g-g",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
}
@@ -1733,10 +1831,11 @@ Hier kannst du die Parameter für das Layout eintsllen. Damit lässt das
Notenbild gezielt optimieren.
"layout": {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "25-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "25-strings-g-g",
+ "limit_a3" : false
}
@@ -1752,7 +1851,7 @@ erscheint.
Die Midi-Codes findest du auf
[hier](http://www.electronics.dit.ie/staff/tscarff/Music_technology/midi/midi_note_numbers_for_octaves.htm)
- "PITCH_OFFSET": "#"
+ "PITCH_OFFSET": "#"
## `presets.instrument.25-strings-g-g.layout.X_OFFSET` - X - Offset {#presets.instrument.25-strings-g-g.layout.X_OFFSET}
@@ -1760,14 +1859,14 @@ Die Midi-Codes findest du auf
TODO: Helptext für presets.instrument.25-strings-g-g.layout.X_OFFSET
einfügen
- "X_OFFSET": "#"
+ "X_OFFSET": "#"
## `presets.instrument.25-strings-g-g.layout.X_SPACING` - Saitenabstand {#presets.instrument.25-strings-g-g.layout.X_SPACING}
Hier gibst du den Saitenabstand in mm an. Normalerweise ist das 11.5 mm.
- "X_SPACING": "#"
+ "X_SPACING": "#"
## `presets.instrument.25-strings-g-g.layout.instrument` - Instrument {#presets.instrument.25-strings-g-g.layout.instrument}
@@ -1787,6 +1886,15 @@ Es gibt folgende Einstellunge:
"instrument": "25-strings-g-g"
+## `presets.instrument.25-strings-g-g.layout.limit_a3` - Begrenzung auf A3 {#presets.instrument.25-strings-g-g.layout.limit_a3}
+
+Diese Funktion verschiebt Noten am A3-Blattrand nach innen. Da das
+Unterlegnotenblatt etwas größer ist als A3 würde sonst die Note
+angeshnitten.
+
+ "limit_a3": false
+
+
## `presets.instrument.25-strings-g-g.printer` - Drucker {#presets.instrument.25-strings-g-g.printer}
Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
@@ -1798,7 +1906,7 @@ Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
"printer": {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
}
@@ -1829,7 +1937,7 @@ verschoben werden soll.
Angabe erfolgt in mm als kommagetrennte Liste von horizontaler /
vertikaler Position.
- "a4_offset": "#"
+ "a4_offset": "#"
## `presets.instrument.25-strings-g-g.printer.a4_pages` - Seiten bei A4 {#presets.instrument.25-strings-g-g.printer.a4_pages}
@@ -1852,9 +1960,9 @@ Unterlegnotenblatt gedruckt werden.
"stringnames": {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
@@ -1863,7 +1971,7 @@ Unterlegnotenblatt gedruckt werden.
Hier kannst du angeben, ob und wo Saitenmarken gedruckt werden.
"marks": {
- "hpos" : "#"
+ "hpos" : "#"
}
@@ -1875,7 +1983,7 @@ ist eine durch Komma getrennte liste von Midi-Pitches.
Die Angabe `[43, 55, 79]` druckt Saitenmarken bei `G, G, g'`. also bei
den äußeren G-Saiten der 25-saitigen bzw. der 37-saitigen Tischharfe.
- "hpos": "#"
+ "hpos": "#"
## `presets.instrument.25-strings-g-g.stringnames.text` - Text {#presets.instrument.25-strings-g-g.stringnames.text}
@@ -1892,7 +2000,7 @@ In der Regel reicht es also, die Saitennamen für eine Oktave anzugeben.
- `C Cis D Dis E F Fis G Gis A Aia Bb B` erzeugt die regulären
Saitennamen
- "text": "#"
+ "text": "#"
## `presets.instrument.37-strings-g-g` - 37 Saiten g-g {#presets.instrument.37-strings-g-g}
@@ -1900,21 +2008,22 @@ TODO: Helptext für presets.instrument.37-strings-g-g einfügen
"37-strings-g-g": {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "37-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "37-strings-g-g",
+ "limit_a3" : true
},
"printer" : {
- "a3_offset" : "#",
- "a4_offset" : "#",
+ "a3_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [0, 1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
}
@@ -1925,10 +2034,11 @@ Hier kannst du die Parameter für das Layout eintsllen. Damit lässt das
Notenbild gezielt optimieren.
"layout": {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "37-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "37-strings-g-g",
+ "limit_a3" : true
}
@@ -1944,7 +2054,7 @@ erscheint.
Die Midi-Codes findest du auf
[hier](http://www.electronics.dit.ie/staff/tscarff/Music_technology/midi/midi_note_numbers_for_octaves.htm)
- "PITCH_OFFSET": "#"
+ "PITCH_OFFSET": "#"
## `presets.instrument.37-strings-g-g.layout.X_OFFSET` - X - Offset {#presets.instrument.37-strings-g-g.layout.X_OFFSET}
@@ -1952,14 +2062,14 @@ Die Midi-Codes findest du auf
TODO: Helptext für presets.instrument.37-strings-g-g.layout.X_OFFSET
einfügen
- "X_OFFSET": "#"
+ "X_OFFSET": "#"
## `presets.instrument.37-strings-g-g.layout.X_SPACING` - Saitenabstand {#presets.instrument.37-strings-g-g.layout.X_SPACING}
Hier gibst du den Saitenabstand in mm an. Normalerweise ist das 11.5 mm.
- "X_SPACING": "#"
+ "X_SPACING": "#"
## `presets.instrument.37-strings-g-g.layout.instrument` - Instrument {#presets.instrument.37-strings-g-g.layout.instrument}
@@ -1979,6 +2089,15 @@ Es gibt folgende Einstellunge:
"instrument": "37-strings-g-g"
+## `presets.instrument.37-strings-g-g.layout.limit_a3` - Begrenzung auf A3 {#presets.instrument.37-strings-g-g.layout.limit_a3}
+
+Diese Funktion verschiebt Noten am A3-Blattrand nach innen. Da das
+Unterlegnotenblatt etwas größer ist als A3 würde sonst die Note
+angeshnitten.
+
+ "limit_a3": true
+
+
## `presets.instrument.37-strings-g-g.printer` - Drucker {#presets.instrument.37-strings-g-g.printer}
Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
@@ -1989,8 +2108,8 @@ Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
> deinem Druckdialog findest.
"printer": {
- "a3_offset" : "#",
- "a4_offset" : "#",
+ "a3_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [0, 1, 2]
}
@@ -2010,7 +2129,7 @@ vertikaler Position.
>
> In diesem Fall kann es auch sinnvoll sein, `limit-A3` auszuschalten.
- "a3_offset": "#"
+ "a3_offset": "#"
## `presets.instrument.37-strings-g-g.printer.a4_offset` - Offset für A4 {#presets.instrument.37-strings-g-g.printer.a4_offset}
@@ -2021,7 +2140,7 @@ verschoben werden soll.
Angabe erfolgt in mm als kommagetrennte Liste von horizontaler /
vertikaler Position.
- "a4_offset": "#"
+ "a4_offset": "#"
## `presets.instrument.37-strings-g-g.printer.a4_pages` - Seiten bei A4 {#presets.instrument.37-strings-g-g.printer.a4_pages}
@@ -2044,9 +2163,9 @@ Unterlegnotenblatt gedruckt werden.
"stringnames": {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
@@ -2055,7 +2174,7 @@ Unterlegnotenblatt gedruckt werden.
Hier kannst du angeben, ob und wo Saitenmarken gedruckt werden.
"marks": {
- "hpos" : "#"
+ "hpos" : "#"
}
@@ -2067,7 +2186,7 @@ ist eine durch Komma getrennte liste von Midi-Pitches.
Die Angabe `[43, 55, 79]` druckt Saitenmarken bei `G, G, g'`. also bei
den äußeren G-Saiten der 25-saitigen bzw. der 37-saitigen Tischharfe.
- "hpos": "#"
+ "hpos": "#"
## `presets.instrument.37-strings-g-g.stringnames.text` - Text {#presets.instrument.37-strings-g-g.stringnames.text}
@@ -2084,7 +2203,7 @@ In der Regel reicht es also, die Saitennamen für eine Oktave anzugeben.
- `C Cis D Dis E F Fis G Gis A Aia Bb B` erzeugt die regulären
Saitennamen
- "text": "#"
+ "text": "#"
## `presets.instrument.saitenspiel` - Saitenspiel {#presets.instrument.saitenspiel}
@@ -2095,7 +2214,8 @@ TODO: Helptext für presets.instrument.saitenspiel einfügen
"PITCH_OFFSET" : -24,
"X_OFFSET" : 240,
"X_SPACING" : 14.5,
- "instrument" : "saitenspiel"
+ "instrument" : "saitenspiel",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -2118,7 +2238,8 @@ Notenbild gezielt optimieren.
"PITCH_OFFSET" : -24,
"X_OFFSET" : 240,
"X_SPACING" : 14.5,
- "instrument" : "saitenspiel"
+ "instrument" : "saitenspiel",
+ "limit_a3" : false
}
@@ -2169,6 +2290,15 @@ Es gibt folgende Einstellunge:
"instrument": "saitenspiel"
+## `presets.instrument.saitenspiel.layout.limit_a3` - Begrenzung auf A3 {#presets.instrument.saitenspiel.layout.limit_a3}
+
+Diese Funktion verschiebt Noten am A3-Blattrand nach innen. Da das
+Unterlegnotenblatt etwas größer ist als A3 würde sonst die Note
+angeshnitten.
+
+ "limit_a3": false
+
+
## `presets.instrument.saitenspiel.printer` - Drucker {#presets.instrument.saitenspiel.printer}
Hier kannst du das Druckbild auf deine Drucher-Umgebung anpassen.
@@ -2349,6 +2479,9 @@ Seitenbeschriftung vergibt Zupfnoter eine Nummer anstelle der `.0`.
"T04_to_order" : {
"value" : {"pos": [340, 242], "style": "small", "text": null}
},
+ "T05_printed_extracts" : {
+ "value" : {"pos": [393, 22], "style": "smaller", "text": null}
+ },
"T99_do_not_copy" : {
"value" : {"pos": [380, 284], "style": "small_bold", "text": null}
}
@@ -2607,6 +2740,46 @@ auch mehrzeilig sein
"text": null
+## `presets.notes.T05_printed_extracts` - T05 verfügbare Auszüge {#presets.notes.T05_printed_extracts}
+
+TODO: Helptext für presets.notes.T05_printed_extracts einfügen
+
+ "T05_printed_extracts": {
+ "value" : {"pos": [393, 22], "style": "smaller", "text": null}
+ }
+
+
+## `presets.notes.T05_printed_extracts.value` - Wert {#presets.notes.T05_printed_extracts.value}
+
+TODO: Helptext für presets.notes.T05_printed_extracts.value einfügen
+
+ "value": {"pos": [393, 22], "style": "smaller", "text": null}
+
+
+## `presets.notes.T05_printed_extracts.value.pos` - Position {#presets.notes.T05_printed_extracts.value.pos}
+
+Hier gibst du die Position an. Angabe erfolgt in mm als kommagetrennte
+Liste von horizontaler / vertikaler Position.
+
+ "pos": [393, 22]
+
+
+## `presets.notes.T05_printed_extracts.value.style` - Stil {#presets.notes.T05_printed_extracts.value.style}
+
+Hier kannst du den Stil für den Text einstellen. Du hast eine Auswahl
+aus vordefinierten Stilen.
+
+ "style": "smaller"
+
+
+## `presets.notes.T05_printed_extracts.value.text` - Text {#presets.notes.T05_printed_extracts.value.text}
+
+Hier gibst du den Text, der ausgegeben werden soll. Dieser Text kann
+auch mehrzeilig sein
+
+ "text": null
+
+
## `presets.notes.T99_do_not_copy` - T99 bitte nicht kopieren {#presets.notes.T99_do_not_copy}
TODO: Helptext für presets.notes.T99_do_not_copy einfügen
@@ -3140,13 +3313,12 @@ auch mehrzeilig sein
Hier kannst du die Darstellung von Triolen (genauer gesagt, von Tuplets)
steuern.
-> **Hinweis**: diese Einstellungen wirken immer auf alle Tuplets aller
-> Stimmen, die zum gleichen Zeitpunkt gespielt werden.
+> **Hinweis**:
>
-> Wenn du die Tuplets individuell konfigurieren möchtest, ist es
-> notwendig, eine "Verschiebemarke" vor das tuplet zu setzen. Dabei ist
-> es möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn man die
-> Verschiebemarken gleich benennt.
+> Wenn du mehrere Tuplets gemeinsam konfigurieren möchtest, ist es
+> notwendig, eine "Verschiebemarke" vor die betroffene tuplet zu setzen.
+> Dabei ist es möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn
+> man die Verschiebemarken gleich benennt.
>
> Z.B. kann man eine Verschiebemarke `tpl_links` an alle tuplets
> schreiben, deren Bogen links von der FLußlineie liegen soll. Diese
diff --git a/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_release.pdf b/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_release.pdf
index d1078c78..d6c77ed5 100644
Binary files a/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_release.pdf and b/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_release.pdf differ
diff --git a/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_review.latex b/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_review.latex
index dc5f0d4f..3e96a8f0 100644
--- a/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_review.latex
+++ b/30_sources/ZGEN_Documents/UD_Zupfnoter-Handbuch-de_review.latex
@@ -204,7 +204,7 @@
\hyphenation{Zupf-noter} \hyphenation{Fen-ster}
-Version 1.7.0 dev 6
+Version 1.7.0 dev 7
\begin{verbatim}
© 2017 https://www.zupfnoter.de
@@ -2323,6 +2323,25 @@ wird Zupfnoter deutlich langsamer. Daher wird diese Einstellung beim
Neuladen von Zupfnoter zurückgesetzt.
\end{quote}
+\begin{itemize}
+\itemsep1pt\parskip0pt\parsep0pt
+\item
+ \texttt{setsetting\ validate\ true}: Diese Einstellung bewirkt eine
+ extra Prüfung/Validierung der Konfigurationsparamter.
+\item
+ \texttt{setsetting\ validate\ false}: Diese Einstellung beendet eine
+ extra Prüfung/Validierung der Konfigurationsparamter.
+\item
+ \texttt{editconf\ errors}: Damit werden die fehlerhaften
+ Konfigurationsparameter in den Konfigurationseditor geladen.
+\end{itemize}
+
+\begin{quote}
+\textbf{Hinweis:} Diese Prüfungen sind noch nicht ausgereift und daher
+standardmässig ausgeschaltet. Auch zeigt der Editor noch nicht die
+Fehler noch nicht genau genug an.
+\end{quote}
+
Weiterhin zeigt die Konsole einige Meldungen, die für die Fehleranalyse
hilfreich sind. Insbesondere, wenn der ``debug'' - Modus eingestellt
ist.
@@ -2836,12 +2855,31 @@ Für die grundsätzliche Bedienung gilt:
Nach dem Beargbeiten des Elementes mit der Maus wird das Element rot.
Bitte führe einen ``Render'' aus um die Unterlegnotenvorschau zu
aktualisieren.
-\item
- Bitte beachte, dass manche Einstellungen am Zeitbezug der Note hängen.
- Wenn du also dein Stück so überarbeitest, dass sich der Zeitbezug
- einer Note ändert, musst du ggf. die Konfiguration erneut durchführen.
\end{itemize}
+\begin{quote}
+\textbf{Hinweis}: Bitte beachte, dass manche Einstellungen am Zeitbezug
+der Note hängen. Wenn du also dein Stück so überarbeitest, dass sich der
+Zeitbezug einer Note ändert, musst du ggf. die Konfiguration erneut
+durchführen.
+\end{quote}
+
+\begin{quote}
+\textbf{Hinweis}: Bitte beachte, dass Einstellungen von Dekorationen und
+notenbezogenen Anmerkungen and der Reihenfolge im ABC code hängen. Wenn
+du also z.b. von zwei aufeinanderfolgenden Anmerkungen die erste
+löschst, dann wird die verbleibende Anmerkung an die Position der
+gelöschten Anmerkung verschoben.
+\end{quote}
+
+\begin{quote}
+\textbf{Hinweis}: Es kann sein, dass beim Verändern deines Stückes nicht
+mehr genutzte Konfigurationen übrig bleiben. Diese werden nicht entfernt
+und könnten später zu unerwarteten Effekten führen. In diesem Fall ist
+es am besten mit der rechten Maustaste in der Harfennotenvorschau die
+entpreschende Konfiguration auzurufen, zu löschen und neu zu erstellen.
+\end{quote}
+
\subsubsection{Texte verschieben}\label{texte-verschieben}
Du kannst Titel, Legende, Notenbeschriftungen, Blattbeschriftungen,
@@ -3077,7 +3115,7 @@ Daher ist folgendes Reihenfolge zu empfehlen:
\item
\textbf{2 Tenor Bass}: Stimmen 3,4; Auszugsnummer -B
\item
- \textbf{3 Melodie}: Stimme 1; Auszugsnummer -B
+ \textbf{3 Melodie}: Stimme 1; Auszugsnummer -M
\end{itemize}
\item
\textbf{Anlegen der Auszüge}: Ausgehend von der Planung sollte unter
@@ -3090,7 +3128,7 @@ Daher ist folgendes Reihenfolge zu empfehlen:
\includegraphics{../ZAUX_Images/040-041_Auszugsbeschriftung.jpg}~
\item
\textbf{Bearbeitung der gemeinsamen Anteile}: Nun kannst du über das
- Menü \texttt{Konfig.\ bearbeiten\ /\ Grundeinstellungen} Die Maske für
+ Menü \texttt{Konfig.\ bearbeiten\ /\ Grundeinstellungen} die Maske für
die Grundeinstellungen aufrufen. Die hier gesetzten Einstellungen
wirke \textbf{auf alle nachfolgenden} Auszuüge. Daher ist es sinnvoll,
z.b. Flusslinien, Synchronisationslinien, Wiederholungen usw. für alle
@@ -3372,7 +3410,7 @@ soll}\label{wenn-die-vertikale-anodrnung-optimiert-werden-soll}
Es kann vorkommen, dass man in das vertikale Layout eingreifen muss,
z.B. wennd ie Flussline einer Stimme durch eine Noten einer anderen
Stimme läüft. Die Möglichkeiten dazu sind in
-Kapitel~\ref{extract.0.layout.minc}~\hyperref[extract.0.layout.minc]{\texttt{minc}}
+Kapitel~\ref{extract.0.notebound.minc}~\hyperref[extract.0.notebound.minc]{\texttt{minc}}
beschrieben.
\subsubsection{Extra Einstellungen für die
@@ -3701,8 +3739,8 @@ Note verbinden (Notenbeschriftung).
\begin{verbatim}
"annotations": {
"vl" : {"pos": [-5, -5], "text": "v"},
- "vr" : {"pos": [-1, -5], "text": "v"},
- "vt" : {"pos": [2, -5], "text": "v"}
+ "vr" : {"pos": [2, -5], "text": "v"},
+ "vt" : {"pos": [-1, -5], "text": "v"}
}
\end{verbatim}
@@ -3748,7 +3786,7 @@ rechts}{annotations.vr - V rechts}}\label{annotations.vr}
TODO:\marginpar{TODO} Helptext für annotations.vr einfügen
\begin{verbatim}
- "vr": {"pos": [-1, -5], "text": "v"}
+ "vr": {"pos": [2, -5], "text": "v"}
\end{verbatim}
@@ -3759,7 +3797,7 @@ Hier gibst du die Position an. Angabe erfolgt in mm als kommagetrennte
Liste von horizontaler / vertikaler Position.
\begin{verbatim}
- "pos": [-1, -5]
+ "pos": [2, -5]
\end{verbatim}
@@ -3780,7 +3818,7 @@ oben}{annotations.vt - V oben}}\label{annotations.vt}
TODO:\marginpar{TODO} Helptext für annotations.vt einfügen
\begin{verbatim}
- "vt": {"pos": [2, -5], "text": "v"}
+ "vt": {"pos": [-1, -5], "text": "v"}
\end{verbatim}
@@ -3791,7 +3829,7 @@ Hier gibst du die Position an. Angabe erfolgt in mm als kommagetrennte
Liste von horizontaler / vertikaler Position.
\begin{verbatim}
- "pos": [2, -5]
+ "pos": [-1, -5]
\end{verbatim}
@@ -3856,7 +3894,6 @@ spezifiziert den Auszug 1 usw.
"instrument" : "37-strings-g-g",
"jumpline_anchor" : [3, 1],
"limit_a3" : true,
- "minc" : {},
"packer" : {
"pack_max_spreadfactor" : 2,
"pack_method" : 0,
@@ -4096,7 +4133,6 @@ Notenbild gezielt optimieren.
"instrument" : "37-strings-g-g",
"jumpline_anchor" : [3, 1],
"limit_a3" : true,
- "minc" : {},
"packer" : {
"pack_max_spreadfactor" : 2,
"pack_method" : 0,
@@ -4362,40 +4398,6 @@ angeshnitten.
\end{verbatim}
-\hyperdef{}{extract.0.layout.minc}{\subsection{\texorpdfstring{\texttt{extract.0.layout.minc}
-- extra
-Vorschub}{extract.0.layout.minc - extra Vorschub}}\label{extract.0.layout.minc}}
-
-Hier kannst du manuelle Korrekturen im vertikalen Layout vornehmen:
-
-\begin{quote}
-\textbf{Hinweis}: Diese Funktion ist nun wirklich für die ganzen
-Experten. Bitte verwende sie also nur, wenn du weißt, was du tust.
-Anwendungsfälle für diese Funktion:
-
-\begin{itemize}
-\itemsep1pt\parskip0pt\parsep0pt
-\item
- Linien (z.B. Sprunglinien) gehen unglücklich durch andere Noten oder
- Beschriftungen
-\item
- Bei sehr dichten Layouts gehen Taktstriche in die vorherige Note
-\item
- Man hat sehr viele Noten, könnte aber einen Teil in eine freie Fläche
- schieben. In diesem fall würde die Flusslinie teilweise nach oben
- gehen.
-\end{itemize}
-\end{quote}
-
-Dieser Parameter enthält eine Liste von manuellen Korrekturen. Jeder
-Eintrag ändert den Vorschub für einen durch seinen Schlüssel bestimmten
-Zeitpunkt.
-
-\begin{verbatim}
- "minc": {}
-
-\end{verbatim}
-
\subsection{\texorpdfstring{\texttt{extract.0.layout.packer} -
Packer}{extract.0.layout.packer - Packer}}\label{extract.0.layout.packer}
@@ -4598,6 +4600,97 @@ orientiert.
\end{verbatim}
+\hyperdef{}{extract.0.notebound.minc}{\subsection{\texorpdfstring{\texttt{extract.0.notebound.minc}
+- extra
+Vorschub}{extract.0.notebound.minc - extra Vorschub}}\label{extract.0.notebound.minc}}
+
+Hier kannst du manuelle Korrekturen im vertikalen Layout vornehmen:
+
+\begin{quote}
+\textbf{Hinweis}: Diese Funktion ist nun wirklich für die ganzen
+Experten. Bitte verwende sie also nur, wenn du weißt, was du tust.
+Anwendungsfälle für diese Funktion:
+
+\begin{itemize}
+\itemsep1pt\parskip0pt\parsep0pt
+\item
+ Linien (z.B. Sprunglinien) gehen unglücklich durch andere Noten oder
+ Beschriftungen
+\item
+ Bei sehr dichten Layouts gehen Taktstriche in die vorherige Note
+\item
+ Man hat sehr viele Noten, könnte aber einen Teil in eine freie Fläche
+ schieben. In diesem fall würde die Flusslinie teilweise nach oben
+ gehen.
+\end{itemize}
+\end{quote}
+
+Dieser Parameter enthält eine Liste von manuellen Korrekturen. Jeder
+Eintrag ändert den Vorschub für einen durch seinen Schlüssel bestimmten
+Zeitpunkt.
+
+\subsection{\texorpdfstring{\texttt{extract.0.notebound.minc.x.minc\_f}
+-
+Faktor}{extract.0.notebound.minc.x.minc\_f - Faktor}}\label{extract.0.notebound.minc.x.mincux5ff}
+
+Hier gibst du den Korrekturfaktor für den vertikalen Voreschub an.
+
+Die Angabe bestimmt, welcher Anteil am errechneten vertikalen Abstand
+als extra Abstand \textbf{hinzugefügt} wird.
+(\texttt{a\ =\ (a\ +\ minc\_f\ *\ a}))
+
+Im Beispiel
+
+\begin{verbatim}
+ "minc" : {
+ "2304": {"minc_f": 1},
+ "4224": {"minc_f": -0.25}
+ }
+\end{verbatim}
+
+\begin{itemize}
+\itemsep1pt\parskip0pt\parsep0pt
+\item
+ bei 2304 wird der Abstand verdoppelt. Mit derm Faktor 1 wird ein
+ Normalabstand wird hinugefügt.
+\item
+ bei 4224 wird der abstand um 25\% reduziert. Mit dem Faktor -0.25 wird
+ ein Viertel des Maximalabstandes abgezogen
+\end{itemize}
+
+\textbf{Beispiele}:
+
+\begin{itemize}
+\itemsep1pt\parskip0pt\parsep0pt
+\item
+ \texttt{-1.0} würde den Vorschub um eine ganze Note zurück setzen
+\item
+ \texttt{0} ändert nichts am Vorschub. Damit kann man den Wert
+ zurücksetzen, falls er im Auszug 0 gesetzt wurde.
+\item
+ \texttt{0.5} vergrößert den Vorschub um die Hälfte einer ganzen Note.
+\end{itemize}
+
+\subsection{\texorpdfstring{\texttt{extract.0.notebound.tuplet} -
+Tuplet}{extract.0.notebound.tuplet - Tuplet}}\label{extract.0.notebound.tuplet}
+
+Hier kannst du die Darstellung von Triolen (genauer gesagt, von Tuplets)
+steuern.
+
+\begin{quote}
+\textbf{Hinweis}:
+
+Wenn du mehrere Tuplets gemeinsam konfigurieren möchtest, ist es
+notwendig, eine ``Verschiebemarke'' vor die betroffene tuplet zu setzen.
+Dabei ist es möglich, mehrere Tuplets gemeinsam zu konfigurieren wenn
+man die Verschiebemarken gleich benennt.
+
+Z.B. kann man eine Verschiebemarke \texttt{tpl\_links} an alle tuplets
+schreiben, deren Bogen links von der FLußlineie liegen soll. Diese
+können dann über den parameter \texttt{extract.0.tuplet.tpl\_links}
+gemeinsam konfiguriert werden
+\end{quote}
+
\hyperdef{}{extract.0.notes}{\subsection{\texorpdfstring{\texttt{extract.0.notes}
-
Seitenbeschriftungen}{extract.0.notes - Seitenbeschriftungen}}\label{extract.0.notes}}
@@ -5089,10 +5182,11 @@ TODO:\marginpar{TODO} Helptext für presets einfügen
"instrument" : {
"18-strings-b-e" : {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 28.5,
- "X_SPACING" : "#",
- "instrument" : "18-strings-b-e"
+ "X_SPACING" : "#",
+ "instrument" : "18-strings-b-e",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -5101,62 +5195,65 @@ TODO:\marginpar{TODO} Helptext für presets einfügen
},
"stringnames" : {
"marks" : {"hpos": [59, 76]},
- "text" : "#"
+ "text" : "#"
}
},
"21-strings-a-f" : {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 23,
- "X_SPACING" : "#",
- "instrument" : "21-strings-a-f"
+ "X_SPACING" : "#",
+ "instrument" : "21-strings-a-f",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {"hpos": [57, 77]},
- "text" : "#"
+ "text" : "#"
}
},
"25-strings-g-g" : {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "25-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "25-strings-g-g",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [-5, 0],
- "a4_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
},
"37-strings-g-g" : {
"layout" : {
- "PITCH_OFFSET" : "#",
- "X_OFFSET" : "#",
- "X_SPACING" : "#",
- "instrument" : "37-strings-g-g"
+ "PITCH_OFFSET" : "#",
+ "X_OFFSET" : "#",
+ "X_SPACING" : "#",
+ "instrument" : "37-strings-g-g",
+ "limit_a3" : true
},
"printer" : {
- "a3_offset" : "#",
- "a4_offset" : "#",
+ "a3_offset" : "#",
+ "a4_offset" : "#",
"a4_pages" : [0, 1, 2]
},
"stringnames" : {
"marks" : {
- "hpos" : "#"
+ "hpos" : "#"
},
- "text" : "#"
+ "text" : "#"
}
},
"saitenspiel" : {
@@ -5164,7 +5261,8 @@ TODO:\marginpar{TODO} Helptext für presets einfügen
"PITCH_OFFSET" : -24,
"X_OFFSET" : 240,
"X_SPACING" : 14.5,
- "instrument" : "saitenspiel"
+ "instrument" : "saitenspiel",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -5241,6 +5339,9 @@ TODO:\marginpar{TODO} Helptext für presets einfügen
"T04_to_order" : {
"value" : {"pos": [340, 242], "style": "small", "text": null}
},
+ "T05_printed_extracts" : {
+ "value" : {"pos": [393, 22], "style": "smaller", "text": null}
+ },
"T99_do_not_copy" : {
"value" : {
"pos" : [380, 284],
@@ -5305,10 +5406,11 @@ Es gibt folgende Einstellunge:
"instrument": {
"18-strings-b-e" : {
"layout" : {
- "PITCH_OFFSET" : "#",
+ "PITCH_OFFSET" : "#",
"X_OFFSET" : 28.5,
- "X_SPACING" : "#",
- "instrument" : "18-strings-b-e"
+ "X_SPACING" : "#",
+ "instrument" : "18-strings-b-e",
+ "limit_a3" : false
},
"printer" : {
"a3_offset" : [0, 0],
@@ -5317,62 +5419,65 @@ Es gibt folgende Einstellunge:
},
"stringnames" : {
"marks" : {"hpos": [59, 76]},
- "text" : "#"
+ "text" : "#"
}
},
"21-strings-a-f" : {
"layout" : {
- "PITCH_OFFSET" : "#