:Author: Laborejo Software Suite
:Version: 2.0
:iconfont-remote!:
:!webfonts:


////
This documentation is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a
letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
A copy of the license has been provided in the file documentation/LICENSE.
////

////
https://powerman.name/doc/asciidoc
https://asciidoctor.org/docs/user-manual/
////

:sectnums:

:toc: left
:toc-title: Inhaltsverzeichnis
:toclevels: 3

= Laborejo

// Don't write in the empty line above line. It will be interpreted as author html tag
Für Programmversion 2.0

== Einleitung

=== Zielgruppe

Laborejo richtet sich an Personen, die Musik als Notation begreifen und ein Computersystem dadurch
zum Klingen bringen möchten. Damit ist es ein sogenannter "Sequenzer".  

Es ist für Kompositionen und -produktionen gedacht, die von Anfang an in Laborejos "Workflow" 
geplant und umgesetzt worden sind.

Es erfordert daher Erfahrung mit Tonhöhen, Notenwerten, verschiedenen Schlüsseln, Tonartenvorzeichen,
Skalenlehre und vieles mehr.

Laborejo ist kein Notensatz oder -druckprogramm. Zwar existiert ein rudimentärer Lilypondexporter,
dieser wird jedoch immer hinter den vollen Möglichkeiten von Lilyponds Funktionsumfang zurückbleiben. 

Dieses Handbuch ist eine umfangreiche Beschreibung des Programmes und seiner Benutzung.
Allerdings wird nicht jede selbsterklärende Funktion bis ins Detail beschrieben. Vielmehr geht es
darum typische Fälle der Benutzung ergebnisorientiert zu beschreiben.

== Grundlagen

Im folgenden eine Übersicht über Grundlagen, die im Kapitel "Funktionsumfang" ergänzt wird. Wenn Sie
bereits über Erfahrung mit Sequencern und Notenprogrammen verfügen sollten Sie nach diesem Kapitel 
in der Lage sein durch Ausprobieren, und nur gelegentliches Nachschlagen, Laborejo zu benutzen.

Laborejo organisiert Musik in Spuren, in Partituransicht (was untereinander steht klingt 
gleichzeitig). Spuren gehen in der Hauptansicht von links nach rechts, ohne Zeilenumbrüche. Eine 
Spur kann, muss aber nicht, in Blöcke aufgeteilt sein, die an verschiedenen Stellen wiederverwendet 
werden können.
Dabei ist angedacht eine einstimmige Stimme pro Spur zu schreiben. Homophone Akkorde 
sind zwar möglich, aber polyphone Stimmen in einer Spur sind schwierig bis unmöglich umzusetzen. 

Noten werden in die Spuren (bzw. Blöcke eingetragen). Dies geht nur mit der Computertastatur 
alleine oder zusätzlich mit Hilfe eines Midi-Instrumentes, z.B. einem Keyboard. Dazu gibt es, wie 
in einem Texteditor oder Schreibprogramm, einen Cursor, der markiert an welcher Stelle Eingaben 
oder Änderungen gemacht werden. 

Alle Funktionen, außer der Navigation (Cursor bewegen), sind als Menüeinträge aufrufbar. Navigation 
muss auswendig gelernt werden, folgt aber etablierten Konzepten (Pfeiltasten, Umschalten zum 
markieren etc.). Siehe dazu das Kapitel "Navigation und Pfeiltasten".

Laborejo selbst erzeugt keine Klänge, sondern arbeitet als Midi-Sequenzer, der an andere 
JACK-Programme sendet, etwa an Sampler oder Synthesizer. 

Aus diesem Grund ist der "Non Session Manager" die ideale Umgebung um das Programm Laborejo zu
starten, da man hier auch alle nötigen Klangerzeuger und Hilfsprogramme verwalten kann.

=== Platzierung, Zoom und Skalierung

==== Zoom

Wie in vielen Programmen ist auch in Laborejo ein Zoom möglich. Strg mit Plus(+) oder Minus(-) 
verkleinert oder vergrößert die Notenansicht. Alternativ kann auch Strg+Mausrad benutzt werden.

Es gibt Grenzen der Vergrößerung oder Verkleinerung. 

==== Skalierung

Oft möchte man nicht zoomen sondern den Notenzwischenraum kleiner oder größer machen. Dies wird
hier als "Skalierung" bezeichnet. 

Veränderung der Skalierung ist für alle Benutzer eine sehr häufige Aktion in Laborejo.

Strg+Umschalten mit Plus(+) oder Minus(-) verkleinert oder vergrößert die Notenzwischenräume.

Warum?

Je nachdem ob die momentane Stelle hauptsächlich kurze oder lange Noten enthält ist ein größerer
oder kleinerer Zwischenraum besser zu erkennen, bzw. überhaupt zu erkennen. 

Laborejo zeigt Rhythmus linear an. Hinter den Spuren ist ein (änderbares) Gitternetz zu sehen, 
das die rhythmische Ausdehnung anzeigt und außerdem auch hilft Noten mit Hilfslinien besser in ihrer
Tonhöhe zu erkennen.

Eine halbe Note benutzt immer doppelt so viele Pixel wie eine Viertelnote. Eine ganze Note besteht 
also aus ihrer Notengrafik und dann reseviertem Leerraum. Die folgende Note wird erst nach diesem 
Leerraum platziert.

Das bedeutet aber, dass bei sehr kurzen Noten der reservierte Leeraum kleiner ist als die Notengrafik
selbst, und somit Noten "ineinander" stecken.

Und noch mehr: Objekte, die keine eigene Dauer haben (Notenschlüssel) sind an der gleichen Stelle 
wie die nächste Note. Manche Objekte werden daher über die Notenlinien geschoben, damit man sie 
überhaupt sieht. Im schlimmsten Fall kann man aber nicht mehr richtig erkennen welche Reihenfolge 
die Objekte haben.

Es sei an dieser Stelle zugegeben, dass die derzeitige Lösung noch Nachteilt hat, aber es noch keine 
bessere Idee gibt, die gleichzeitig Tastatursteuerung ermöglicht und ein lineares 
Rhythmus/Pixel-Verhältnis bietet.


=== Navigation und Pfeiltasten - Arbeiten mit der Auswahl

Laborejo hat einen einzigen Cursor, der anzeigt an welcher Stelle gerade gearbeitet und eingefügt
wird. Damit funktioniert es wie ein Textverarbeitungsprogramm. Der Cursor ist immer nur in einer 
Spur, an einer Position und an einer Tonhöhe gleichzeitig. 

Die *Pfeiltasten* bewegen den Cursor nach links und rechts. Der Cursor ist immer auf der Note, die
direkt rechts von ihm ist.  

Die Pfeiltasten nach oben und unten bewegen den Cursor in der Tonhöhe.
Der Cursor steht immer auf einer absoluten Tonhöhe, und nicht etwa auf einer Notenlinie: Wechselt
man in einen anderen Schlüssel so "springt" auch der Cursor grafisch an eine andere Stelle um auf
der gleichen Tonhöhe zu bleiben. 

Bild Auf und Bild Ab (Page Up / Down) *wechseln die Spur* nach oben oder unten.

Hält man die *Steuerungstaste* (Strg / Ctrl) gedrückt werden alle Navigationstasten in ihrer Wirkung 
*verstärkt*. Dies gilt auch in Kombination mit Auswahl und Veränderung (s.u.)
* Links / Rechts springen einen Takt weiter. Wenn keine Taktart eingestellt wird eine ganze Note gesprungen
* Oben / Unten  springt eine Oktave auf oder ab.
* Bild Auf/Ab springt zu ersten bzw. letzten Spur.

Hält man die *Umschaltentaste* (Shift) gedrückt wird zusätzlich zur Bewegung eine *Auswahl* erzeugt,
die sich über mehrere Spuren erstrecken kann:
* Links / Rechts erweitert und reduziert die Auswahl. 
* Oben / Unten hat keine Funktion, lässt die Auswahl aber intakt
* Bild Auf/Ab wählt auch die nächste Spur, parallel, mit aus.
* Die Verstärkung durch die Steuerungstaste gilt auch hier

Die Auswahl ist immer zusammenhängend. Sie muss auch immer die gleichen rhythmischen Werte (als
Summe) in jeder Spur beinhalten. Ist die Auswahl deswegen ungültig ändert sich das Auswahlrechteck
von einem Schatten zu einem Punktemuster. Eine Auswahl in einer einzigen Spur ist immer gültig.

Wie oft in diesem Handbuch zu lesen sind Objekte ohne eigene Dauer (z.B. Notenschlüssel) etwas
komplizierter. Für eine Auswahl über mehrere Spuren ist es besser nicht auf diesen anzufangen oder 
aufzuhören, da das Programm nicht wissen kann ob und wieviele Objekte ohne Dauer in allen Spuren 
gemeint sind.


Hält man die Alttaste (nicht Alt-Gr) gedrückt ändern die Pfeiltasten ihre Wirkung indem sie eine 
Note oder die Auswahl verändern:
* Links / Rechts verdoppelt oder halbiert den Grundwert der Note
* Oben / Unten schiebt die Noten höher oder tiefer. Noten bleiben dabei in der aktuellen Skala.
    * Mit der Steuerungstaste wird um eine reine Oktave transponiert.

Falls keine Auswahl besteht wird die dem Curor nächste Note benutzt.

Zusätzlich gibt es noch folgende Tasten:
* Pos1 (Home) springt zum Anfang der Spur (oder wählt von der aktuellen Cursorposition bis dahin aus)
* Ende (End) springt zum Ende der Spur (oder wählt bis dahin aus)
* Steuerung+A markiert den aktuellen Takt in allen Spuren
* Umschalten+A markiert die ganze Spur.
* Steuerung+Umschalten+A markiert alles. 

Die *Maus* kann ebenfalls benutzt werden, um den Cursor zu setzen. Ein Klick mit der Linken Maustaste
setzt die Position, mit Umschalten wird die Auswahl verändert.


=== Der Cursor als Quelle für Befehle

Die Cursorposition, besonders die Tonhöhe, wird in vielen Befehlen benutzt, nicht nur um Noten 
einzufügen. Tonartenanweisungen holen sich hierüber den Grundton beim Einfügen. Der Werkzeugkasten
benutzt die Cursorposition u.a. als Spiegelachse oder als Fixpunkt um zufällige Noten im Umkreis
um den Cursor zu erzeugen.

Ein Beispiel ist das Einfügen einer Tonart, bwz. deren Vorzeichen. Diese wählt als Grundton die
Tonhöhe des Cursors aus.


=== Wiedergabe und Playhead

In der Notenansicht befindet sich eine vertikale rote Linie, die über allen Spuren liegt. 
Das ist der "Playhead". Er zeigt die Stelle der momentanen Wiedergabe an. 
Drückt man auf die Leertaste (s.u.) beginnt die Wiedergabe und alle Noten werden als JACK-MIDI-Signale
an verbundene Instrumente geschickt. Hier endet die Verantwortung Laborejos.

Aufgrund technischer Grundlagen des MIDI-Protokolls ist es leider nur möglich, dass Noten von ihrem
Anfang an gespielt werden. Startet der Playhead z.B. in der Hälfte einer ganzen Noten wird diese
nicht zu hören sein. 

Folgend Wiedergabe-Modi sind möglich:
* Spiele von der aktuellen Position des Playheads (Leertaste)
* Starte beim normalen Cursor (Strg+Leertaste). Da der Cursor sich durch die Wiedergabe nicht bewegt kann man hierdurch immer wieder von der gleichen Position starten.
* Spiele von Anfang (Umschalten+Leertaste) 
* Es ist möglich den Playhead per Drag&Drop mit der Maus zu bewegen. 

Um von Anfang oder vom Cursor zu starten muss die Wiedergabe nicht zwingend gestoppt sein. 
Man kann z.B. Strg+Leertaste auch benutzen um zurückzuspringen.

Das bearbeiten, löschen, einfügen etc. von Noten und Objekten ist auch möglich während die Wiedergabe läuft.

==== Wiederholungen und Sprünge

Die Wiedergabe läuft immer von links nach rechts. Der Playhead springt niemals. 
Wiederholungen und Sprünge (Wiederholungszeichen, 1. und 2. Klammer, Da Capo etc.) gibt es nicht,
bzw. nur als rein grafisches Element.

Soll es eine wörtliche Wiederholung geben so muss diese im Notentext stehen. Um das einfacher zu 
machen (und Lilypond im Export dazu zu bringen tatsächlich Wiederholungszeichen und Sprungmarken 
zu setzen) werden verlinkte Blöcke benutzt (s.u.).   


=== Noteneingabe und Pausen

Laborejo arbeitet prinzipiell untransponiert. Alle Spuren und Instrumente sind in C. 

Es gibt zwei Möglichkeiten neue Noten einzugeben. 
* Der Basismodus ist die Tastatureingabe, mit der alle Möglichkeiten des Programmes bedient werden können.
* Als Ergänzung ist es möglich ein MIDI-Instrument zu benutzen. Dies beschleunigt in erster Linie die Eingabe.

==== Tastatur-Eingabe

Der typische Prozess ist es beide Hände auf der Tastatur zu haben, linke Hand auf den Nummertasten,
rechte Hand auf den Pfeiltasten.

Zuerst wird die Tonhöhe ausgewählt, dann durch den Rhythmus eingefügt, dann werden Modifikationen 
gemacht (Punktierung, Vorzeichen etc.). Bitte beachten Sie, dass die zuletzte eingefügte Note am 
Ende einer Spur oder eines Blocks gleichzeitg die derzeit ausgewählte Note ist. Sie müssen nicht 
mit den Pfeiltasten einen Schritt nach links machen um ein Vorzeichen zu setzen und dann nach 
rechts um neue Noten einzugeben.

Tonhöhen:
* Die Pfeiltasten hoch und runter wählen die Tonhöhe aus (sieben Schritte per Oktave, in der 
vorherrschenden Tonart).
* Enter fügt einen Akkordton hinzu 
* Umschalten+Enter oder Umschalten+Entfernen löscht dem Cursor nächsten Akkordton, aber nie die letzte Einzelnote.
* Plus(+) und Minus(-) setzt ein Vorzeichen auf die derzeit ausgewählte Note, oder entfernt es wieder.
* Hat man sich vertippt ist es oft schneller mit Alt+Auf/Ab die Tonhöhe nachträglich zu ändern, statt zu löschen.

Rhythmus:
* Die Nummerntasten 1 bis 6 fügen Noten unterschiedlicher Dauer ein.
* Nummerntasten zusammen mit der Umschaltentasten fügen Pausen ein. 
* Die Taste Q punktiert eine Note oder eine Pause, bzw. schaltet durch drei Zustände: 
    * Ohne Punkt, Punktierung, Doppelpunktierung. Danach wieder "ohne Punkt".
* Die Taste R fügt eine Mehrtaktpause ein, aber nur wenn es eine Taktart gibt.
    * Mehrtaktpausen starten bei einem einem Takt und können mit Alt+Links/Rechts eingestellt werden.
    * Alt+R bietet die Möglichkeit direkt eine Taktzahl eingeben zu können.
* Hat man sich vertippt ist es oft schneller mit Alt+Links/Rechts die Dauer nachträglich zu ändern, statt zu löschen.

Die kürzeste eintippbare Noten (Taste 6) ist eine 32tel. Kürzere Noten können durch mit 
Alt+Links/Rechts die Dauer nachträglich gemacht werden.

Möchte man zu Kompositionszwecken leeren Raum "reservieren", weil man etwa in einer Spur einen Teil
noch nicht geschrieben hat, aber am folgenden weitermachen möchte, benutzt man hierzu besser keine
Mehrtaktpausen sondern leere Blöcke mit einer festgesetzten rhythmischen Dauer (s.u.). So kann man
sich z.B. 32 Takte reservieren, die auch durch nachträgliche Eingabe nicht länger oder kürzer
werden.


==== MIDI-Eingabe
Die MIDI-Eingabe ist eine Ergänzung zur Tastatursteuerung und übernimmt deren zeitaufwändigsten Part:
die Auswahl der Tonhöhen.

Mit F4 schaltet man die Tonhöheneingabe über ein Midi Instrument ein. Es handelt sich um schrittweise
Eingabe ("Step Entry"): Die Tondauer wird immer noch über die Nummerntasten ausgewählt, allerdings
fügt jetzt ein Tastendruck auf z.B. 3 nicht mehr eine Viertelnote ein sondern wählt den Rhythmus
für Noten, die per MIDI eingegeben werden.

Eine Leiste am linken Rand zeigt an welche Tondauer gerade ausgewählt ist.

Akkorde können eingefügt werden indem man nach der ersten Noten noch weitere spielt ohne die erste
zu "releasen". Für ein Midi-Keyboard heißt das nichts anderes als die erste Taste festzuhalten und 
dann weitere zu spielen. Für andere Midi-Instrumente entscheidet die Haptik und Spielweise inwiefern
das möglich ist. Technisch wird gewartet bis das MIDI event "Note-Off" der ersten Note im Programm
ankommt. Alles zwischen Note-On und Note-Off wird als ein Akkord zusammengefasst. 
In der Praxis bedeutet dies, das man die Tasten gleichzeitig drücken kann.

Die eingehenden MIDI-Noten unterscheiden laut MIDI-Protokoll nicht zwischen enharmonischen
Varianten. Cis und Des sind zunächst die gleiche Note. Um dies zu verbessern entscheidet Laborejo
anhand der aktuell geltenden Tonart welche Variante benutzt wird.

komponieren, sind evtl. nicht alle Tonart-Modulation durch einen Tonartenwechsel gekennzeichnet, so
dass es bei der MIDI-Eingabe zur enharmonischen Verwechselung kommen kann. Laborejo ist kein
Notensatzprogramm, es "möchte" mehr Informationen haben als üblicherweise ausgedruckt werden.
Setzen Sie statt dessen an Stellen, an denen implizit Tonartenwechsel stattfinden explizit ein
Objekt um die Vorzeichen zu ändern.

Pausen, Extra-Vorzeichen und Punktierungen müssen nach wie vor durch nachträgliche Modifikation 
gemacht werden.

Die eingehenden MIDI-Noten werden in Echtzeit an die Spurausgänge weitergeleitet, so dass man immer 
die Instrumente hört, die auch gemeint sind. Dabei wird die Cursorposition benutzt um Parameter, 
wie den Midi-Kanal, einzustellen. Es ist daher nicht nötig das Midiinstrument von Hand mit einem 
anderem Instrument zu verbinden.

Es ist möglich Midi-Eingabe mit F4 ein- und auszuschalten während die Wiedergabe läuft. 
Die Echtzeitweiterleitung bleibt bestehen. Das ermöglicht es Ideen auszuprobieren, mit oder ohne 
Wiedergabe.

Die Midi-Eingabe funktioniert nur, wenn man auch gerade Noten eingeben darf. Also nicht im CC-Modus
(s.u.) oder während der Spureditor offen ist. 


==== Live-Aufnahme
Eine Live-Aufnahme, mit Rhythmus, Dynamik und anderen MIDI-Werten, ist derzeit nicht möglich.


== Ansichten und Betriebsmodi

Die Hauptansicht in Laborejo ist der Noteneditor. Dieser hat mehrere Betriebsmodi, wobei der Standard 
die Noteneingabe ist. Es gibt allerdings noch andere, spezialisierte Ansichten und Betriebsmodi,
die hier erklärt werden. 

=== Spur-Editor

Der Menüeintrag `Steuerung`->`Spureditor`, oder Strg+T (T wie "Track"), zeigt den Spureditor.
Erneutes Aufrufen zeigt wieder den Noteneditor.

Zunächst kann hier für alle Spuren gleichzeitig der Auftakt eingestellt werden. 

Anschließend werden alle Spuren abstrakt aufgeführt und es können verschiedene, wichtige 
Einstellungen vorgenommen und Werte eingegeben werden:
* Der Name der Spur (Standard ist eine Zahl, eine ID). Dies ist auch der JACK-Portname.
* Der Name des Instrumentes (für Lilypond Export. z.B. "Viola")
* Die Abkürzung des Instrumentennames (z.B. "Vla") 
* Auftakt für diese Spur
* Doppelspur erweitert das Liniensystem von 5 auf 10/11 nach unten, so dass man mit einem Violinenschlüssel gut lesbar bis in den Bassschlüssel schreiben kann
* Hörbar ist normalerweise aktiv. Falls ausgeschaltet wird alles außer Noten gesendet. Diese Funktion ist kein Ersatz fürs Stummschalten ("mute") im Mixer. Vielmehr geht es hier um kurzfristiges ausschalten, wobei CCs und Program Changes weiterhin an das externe Instrument geschickt werden, damit beim Einschalten während der laufenden Wiedergabe korrekt weitergespielt wird. Sollte Sie ein Instrument benutzen, dass auch bei CCs o.ä. Klang generiert wird Ihnen diese Funktion nicht helfen.
* Sichtbar versteckt die Spur in der Notenansicht. Die Spur sendet aber weiterhin MIDI. Der Cursor springt über sie hinweg, sie wird bei "Alles auswählen" nicht beachtet. Einige Funktionen, die von sich aus auf alle Spuren wirken (z.B. Lösche leere Blöcke), greifen aber auf die versteckten Spur zu. 
* Der Löschen-Knopf löscht diese Spur.

Ausgabeoptionen für MIDI:
* Channel ist der Midikanal von 1 bis 16. Es ist nur einer gleichzeitig möglich. Der Kanal kann aber durch andere Befehle im Noteneditor geändert werden, auch nur kurzfristig für einzelne Noten.
* CC Channels stellt ein auf welchen Kanälen Control Changes gleichzeitig gesendet werden. Der momentane Kanal ist auf jeden Fall dabei. Die Auswahl zusätzlicher Kanäle erfordert Planung. Welche umspannt das externe Instrument? Eine Geige könnte Abstriche auf Channel 1 und Aufstriche auf Channel 2 spielen. Dann ist es sinnvoll, dass CCs immer auf beiden Kanälen gesendet werden, z.B. Modulation um Vibrato einzustellen. Ansonsten würde die Einstellung evtl. nur für die Abstriche gelten.
* Program ist der Program Change (0xC0), und damit das Midi-Instrument von 0 bis 127. Im GM Standard ist 0 das Klavier, 41 die Geige etc. Lässt man den Wert auf -1 wird überhaupt kein Program Change über MIDI gesendet.
* Hat man einen Program ausgewählt werden die Felder für Bank MSB und LSB aktiv. Diese gehören ebenfalls zur MIDI-Instrumentenauswahl und wechseln je nach externem Instrument ihre Bedeutung. Die Erklärung der Werte muss also im Handbuch des Instrumentes nachgelesen werden.
* Transposition ist eine Halbtontransposition der MIDI Noten, ganz am Ende der Verarbeitungskette nachdem alles in Laborejo berechnet wurde. Für MIDI-Kenner: Der hier eingstellte Wert wird auf die genierte Midi-Note (60 = mittleres C) addiert. Es ist also plus oder minus möglich. Man muss selbst zusehen, dass dadurch keine Noten höher als 127 oder tiefer als 0 entstehen. Laborejo sendet in diesem Fall 127 oder 0, verändert aber die Originalnoten nicht.

==== Spuren Verschieben und Anordnen

Jede Spur hat im Editor einen Index, also eine Zahl, die die Reihenfolge bestimmt. Die Zahlen
können frei vergeben werden. Nur die Reihenfolge ist wichtig, nicht die Abstände der Zahlen.
Nachdem der Spureditor geschlossen wurde bereinigt Laborejo die Eingabe und nummeriert alle Spuren
neu. Sollten Sie den gleichen Index für zwei Spuren eingegeben haben ist die Reihenfolge der
beteiligten Spuren praktisch zufällig, allerdings nur bis der Spureditor geschlossen wird, ab dann
ist sie wieder korrekt definiert.


Der Blockmodus (F6, siehe dessen Kapitel) kann auch benutzt werden um ganze Spuren zu verschieben.
Hierzu die Alt-Taste gedrückt haben, während Sie mit der Linken Maustaste Spuren hoch und runter
verschieben.

==== Erweiterte Spuroptionen

Laborejo verwendet Noten, ist aber trotzdem ein MIDI-Sequencer. Notation hat einen Kontext, also 
eine Umgebung an momentan gültigen musikalischen Werten. Während in einem Pianoroll-Sequencer jede 
Note ihre eigenen Anschlagsstärke (Velocity) hat, ergibt sich diese in Laborejo aus einer 
vorangegangenen Dynamikanweisung wie "forte" oder "piano". Für eine Trompete bedeutet "forte" aber
etwas anderes als für eine Geige. Und für Mozart ist piano etwas anderes als für Debussy.

Ebenfalls werden Noten von echten Musikern nie in ihrer vollen Dauer gespielt sondern 
unterschiedlich phrasiert. Je nach Stück oder Instrument (ließ: Spur) ist auch ein Staccato mal 
kürzer oder länger.

All diese Werte (wie kurz ist ein Staccato?, wie laut ist forte?) können im Spureditor pro Spur 
eingestellt werden.

Im Reiter *Dynamische Veränderungen* sind alle Einfügbaren Dynamikanweisungen definiert. Ändert man
hier Werte dann folgen alle bereits in der Spur vorhandenen Anweisungen den neuen Zahlen.
0 ist unhörbar, 127 ist die höchste Stufe. 

Eine Spur ohne eingefügte Dynamikanweisungen benutzt den "Benutzdefiniert"-Wert.

Welche Lautstärke am Ende aus den Lautsprechern kommt hängt von 
zahlreichen Faktoren außerhalb Laborejos ab: Aufnahmepegel und Abspiellautstärke des Instruments, 
Mixer und Effekte (Kompression etc.) 

Im Reiter *Rhythmische Veränderungen* sind die *Abweichungen* vom Anfang und Ende der Noten durch 
einen mathematischen Ausdruck definiert. Der eigentliche Wert und die Abweichung bilden durch 
Addition einen neuen Wert. Es ist sogar möglich simple Programmieranweiseungen zu geben!

Benutzt werden D für Duration, gefolgt von einer Zahl für einen Basisnotenwert: 
* Die Variable steht x für die die eigentliche Notenlänge.
* DM Maxima (Doppellonga, Achtfachtganze)
* DL Longa (Doppelbreve, Vierfachganze)
* DB Breve (Doppelganze)
* D1 Ganze Note
* D2 Halbe Note
* D4 Viertelnote
* D8 Achtelnote
* D16 Sechzehntelnote
* D32 Zweiunddreißigstelnote
* D64 Vierundsechzigstelnote
* D128 Hunderachtundzwanzigstelnote
* usw: D256, D512, D1024. 1024 ist die kleinste mögliche Note in Laborejo und auch in der musikalischen Literatur.footnote:[http://homes.sice.indiana.edu/donbyrd/CMNExtremes.htm]. 

Man kann die Python-Syntax für falls/dann Unterscheidung benutzen, aber nur für zwei Fälle:
`MATHEFORMEL1 if BEDINGUNG-WAHR else MATHEFORMEL2 `
z.B. 
`-1 * D64 if x <= D16 else -1 * D32`
Die Note wird um eine 64tel verkürzt (-1*D64) falls die eigentliche Note kleiner (oder gleich) ist als eine 16tel, ansonsten wird sie um eine 32tel verkürzt (-1*D32).

Zum Beispiel:
* "Normal Anfang" steht auf 0, das heißt eine Note fängt genau da an, wo sie auch logisch sein soll
* "Tenuto Ende" steht auf 0. Die Noten ist exakt so lang wie sie logisch andauert, wird also voll ausgespielt.
* "Legato Ende" steht auf D128, also eine 128tel länger als ihr logischer Wert
* "Staccato Ende" ist -1*x+D64. -1*x heißt die Länge wird auf 0 gesetzt, da eine Länge minus die gleiche Länge natürlich 0 ergibt. Anschließend wird 0 noch um eine 64tel verlängert, also sind Staccatonoten immer so lange wie eine 64tel. Bei Stücken, die bereits über regelmäßie 64tel verfügen und diese dann auch noch Staccato haben möchten sollte man diesen Wert als auf D128, oder noch kürzer, ändern.



=== Noten-Editor
Der Noten-Editor (im Gegensatz zum Spur-Editor) hat mehrere Modi: Noten, Blöcke und Control Changes.

Nicht alle Menübefehle funktionieren in jedem Modus. Sie werden evtl. ausgegraut und ihre 
Tastenkürzel deaktiviert.

Der Notenmodus ist die normale Ansicht. Durch `Steuerung`->`Modus zur Ansicht und
Bearbeitung` -> `Noten` (Taste F5) kann man in diesen zurückkehren. Hier kann man Noten und andere
Objekte eingeben, Löschen und bearbeiten.

Wie Noten eingegeben werden steht bereits weiter oben. Es gibt aber noch eine Menge andere
Funktionen und  Objekte:

==== Akkorde und Pseudo-Polyphonie
Akkorde können auch ohne Mehrspur-Polyphonie gebildet werden. Die Enter Taste fügt Akkordtöne hinzu.

Wenn man einen Akkord per Auswahl markiert wirken sich alle Befehle auf den ganzen Akkord aus. 
Ohne Auswahl wird die dem Tonhöhencursor nächste Note benutzt. So wird Alt+Pfeil Auf/Ab Einzelnoten
innerhalb des Akkordes verschieben.  

Mit Alt+Links/Rechts ist es möglich Einzelnoten kürzer oder länger zu machen und damit
Pseudo-Polyphone Akkorde zu bilden. Grundsätzlich zählt die *kürzeste Note im Akkord* als dessen 
logische Definition: Eine Achtel- und eine Viertelnote zusammen werden innerhalb der Spur als 
Achtelnote behandelt, d.h. die nächste Note folgt nach einer Achtel.

Falls ein Befehl eine Tonhöhe zur Berechnung benötigt zählt der tiefste Ton im Akkord.

Alle Ansprüche, die über diesen Funktionsumfang hinaus gehen müssen durch echte Polyphonie in 
mehreren Spuren gelöst werden. Diese können durch Lilypondexport und Midi-Ausgabe das selbe 
Instrument ansprechen und in einer Notenzeile gedruckt werden.

==== Feineinstellung für Notendauern & Rechteck-Notenköpfe (Sequencer)

Traditionelle Noten mit Köpfen und Hälsen sind gut lesbar, unterscheiden korrekt zwischen 
enharmonischen Tonhöhen und ermöglichen eine kompakte Schreibweise.

Typische Software-Midisequencer arbeiten in der Regel mit der sogenannten Piano-Roll und 
rechteckigen Tönen, die exakt die Tonlänge 1:1 darstellen.

Laborejo bietet im Menü `Steuerung` den Befehl `Balken-Noten` an (Taste F1), mit der die Ansicht
auf solche Rechtecknoten umgeschaltet werden kann. Man sieht jetzt die tatsächliche Länge der 
Note. Die Basisnotenlänge, Phrasierungen von Bögen, andere Zeichen wie Staccato etc. werden komplett
berücktsichtig. Was man sieht ist was man hört. 

Mit den Befehlen `Kürzer` (Alt+Umschalten+Links) und `Länger` (Alt+Umschalten+Rechts) im Menü
`Noten Bearbeiten` können einzelne Noten oder eine Auswahl verlängert oder verkürzt werden.
Alternativ kann man mit der Maus an den Balkenenden links und rechts die Länge ändern.

Im Hintergrund ist nach wie vor eine Basislänge vorhanden (Viertel, Halbe, Achtel etc.) und Sie 
können jederzeit zwischen Noten und Rechtecken hin- und herschalten. Die Änderungen werden seperat 
gespeichert. Auf diese Weise geänderte Noten werden farblich markiert. 

Tonhöhen, Lautstärke etc. ändern sich nicht. 

==== Transposition

Alle Töne in Laborejo klingen zunächst so, wie sie notiert sind. Transposition, wie sie etwa
Blechblasinstrumente oder Klarinetten, aber auch Kontrabässe, in normaler Notation (auf dem Papier)
benötigen sind ein Arbeitsschritt für die Druckausgabe, etwa in Lilypond.

Möchte man dennoch einzelne Akkorde oder Auszüge in der Tonhöhe verändern (etwa als Variante eines
kopierten Teils nach einer Tonartenmodulation) bietet Laborejo destruktive Befehl an, also
Verfahren, bei denen die Noten tatsächlich geändert werden:

* `Noten Bearbeiten` -> `Akkord Transponieren` transponiert einen Akkord oder die momentane Auswahl.
* `Strukturen`-> `Alles transponieren` transponiert das gesamte Stück.

Eigentlich sollten für nicht-destruktive Klangtransposition externe Midifilter verwendet werden,
dennoch bietet der Spureditor einen Transpositionswert in Halbtönen, pro Spur an. Die Berechnung
erfolgt als letzter Schritt vor der tatsächlichen Midiausgabe. Sollten also Befehle, auch
selbstgeschriebene Skripte, auf die Tonhöhe zugreifen werden sie nicht den Klang benutzen sondern
die logische, tatsächliche, Tonhöhe.

TODO: Beschreibung der einzelnen STandaloneobjekte hier drunter
`Objekte Einfügen` -> ``

==== Metrum oder Taktart

Eine Spur ohne Metrikanweisung hat keine Taktart und dementsprechend auch keine Taktstriche.

Das Metrum oder die Taktart kann in Laborejo durch Metrikanweisungen eingestellt werden.
Hierzu `Objekte Einfügen` -> `Metrum` (Taste M) auswählen.

Der Befehl zeigt ein Submenü, in dem häufige Taktarten zur Auswahl angeboten werden. "6/8" fügt
z.B. ein Objekt in die Spur ein, ab dem der 6/8 Takt gilt.

Sie können so viele Taktart-Objekte in die Spur einfügen, wie sie möchten. Außerdem können Spuren
unterschiedliche Taktarten haben.

Das Objekt kann nicht verändert werden. Es muss gelöscht werden und ein Anderes an die selbe Stelle
gesetzt werden.

Sie sind selbst dafür verantwortlich, das Objekt ausschließlich an den Anfang eines Taktes zu
setzen. Taktwechsel bevor ein Takt fertig ist sind musikalisch per Definition ausgeschlossen und
ein logischer Fehler. Allerdings nötig für die Bearbeitung der Spur.

Diese ausgwählten Taktarten ergeben in Musik und evtl. Lilypond-Druckversion genau die ausgewählten
Taktarten. Allerdings fällt sofort auf, dass in der Spur selbt ein Objekt vorhanden ist, über dem
"Metrical" steht, gefolgt von einer Kombination aus Zahlen und Notenwerten. Es handelt sich um
die tatsächlichen metrischen Verhältnisse (s.u.)

===== Eigene metrische Anweisungen

Laborejo Metriksystem geht weit über die traditionell bekannten Abkürzungen wie "4/4" hinnaus und
unterstützt sehr komplexe, zusammengesetzte und verschachtelte Taktarten beliebieger Länge. Es kann
daher nicht bedient werden ohne die musiktheoretischen Hintergründe zu kennen, was Taktarten
eigentlich sind und warum eine Beschreibung wie "5/8" nur eine auswendiggelernte Abstraktion für
einen komplexen Sachverhalt ist. Daher gibt es hierzu ein eigenes Kapitel am Ende dieser Anleitung.

Die Option im Submenü bietet dann die Eingabe in der beschriebenen Form an.

TODO: Beschreiben, wenn das Menü tatsächlich existiert. Eigenes Kapitel ganz am Ende. Nur ein String?


==== Notenschlüssel

Der Notenschlüssel wählt aus welcher Ausschnitt aller möglichen Tonhöhen auf dem Fünfliniensystem
gezeigt wird. Er ist damit Bestandteil des Layouts und nicht des Klanges.

Eine Spur ohne explizites Schlüsselobjekt wird im G-Schlüssel ("Violinenschlüssel") dargestellt.

In Laborejo haben alle Noten tatsächliche Tonhöhen, der Schlüssel ändert nur die Anzeige. Wenn Sie
einen Schlüssel vor vorhandene Noten setzen werden diese sich automatisch auf andere Notenlinien
setzen. Ein Schlüssel ändert *niemals* den Klang!

Durch den Befehl `Objekte Einfügen` -> `Schlüssel` (Taste C von engl. Clef) kann
ein neuer Notenschlüssel an der Cursorposition eingefügt werden. Die häufigsten Schlüssel gibt es
als Kurzwahl.

Es können beliebig viele Schlüssel in einer Spur verwendet werden. Jede Spur hat seine eigenen
Schlüssel.

Die Percussion- und Schlagzeugschlüssel sind tatsächliche Notenschlüssel und machen die Spur nicht
etwa zu einem Drumcomputer. Noten haben nach wie vor eine Länge und senden Noten-On und Note-Off
Midisignale.



==== Vorzeichen und Tonarten

`Objekte Einfügen` -> `Tonart` (Taste K von engl. Key) fügt einen Tonartenwechsel an der
Cursorposition ein. Dabei wird die Tonhöhe des Cursors als Grundton der Tonart verwendet. Möchte
man also "D-Dur" setzt man den Cursor auf ein beliebiges D, wählt den Befehl aus und wählt im
folgenden Submenü die Option für "Dur".

Neben "Dur" stehen noch viele weitere Tonarten zur Verfügung. Moll natürlich, aber auch Dorisch
oder exotischere Tonarten.

Es können beliebig viele Tonarten in einer Spur verwendet werden. Jede Spur hat seine eigenen
Tonarten.

Das Submenü bietet auch die Möglichkeit die Tonart komplett selbst zu bestimmen. Kreuze und Bs
können in beliebiger Reihenfolge und Zusammensetzung ausgewählt werden. Hier kann auch jeder
beliebige Grundton ausgewählt werden.

Ist in einer Spur keine explizite Tonart gesetzt geht Laborejo von C-Dur aus.


==== Dynamik 

Das Menü `Objekte Einfügen" enthält den Befehl `Dynamik` (Taste D). Nach Aufruf können Sie die Art
auswählen, es stehen die üblichen italienischen Bezeichnungen inkl tacet, Stille, zur Verfügung.

Zur schnelleren Benutzung kann die Dynamikanweisung hier mit den Nummerntasten eingefügt werden.

Außerdem gibt es die Möglichkeit eine Lautstärkeänderung über die Zeit einzufügen (Taste r von
engl. "Ramp"). Ob es crescendo oder decrescendo wird entscheidet sich automatisch. Die Veränderung
sucht sich die beiden Dynamikanweisungen vorher und nachher.

===== Feineinstellung

Wie oben beschrieben gilt in Laborejo zunächst der Kontext für die Lautstärke. Alle Noten, die der
Dynamikanweisung "forte" folgen werden dementsprechend laut gespielt. Die musikalische Realität
verlangt aber noch feinerere Kontrolle. So werden die Zielnoten von Phrasen, z.B. Läufen, nach oben
oft zunehmend lauter gespielt, oder die erste Zählzeit pro Takt wird betont.

Jede Note kann zusätzlich zum Kontext dynamisch noch verändert werden. Diese Modifikation ist
relativ, ändert sich also auch wenn der Kontext von Forte nach Piano wechseln würde.

Im `Noten Bearbeiten`-Menü finden sich die Befehle `Lauter` (Taste >) und `Leiser` (Taste <).
Werden sie benutzt schalten die Noten automatische in die Balkenansicht um und man sieht wie sich
der vertikale Balken verändert. Der Lautstärkebalken ist nicht mit der Tonhöhe verknüpft, er startet
immer von der gleichen Grundlinie. Die Lautstärken der Noten sind also miteinander vergleichbar.

Man kann bei Balken-Noten auch die Maus benutzen um die Lautstärken zu "ziehen".

==== Bindebögen oder Legatobögen

`Objekte Einfügen` -> `Bindebogen` (Taste S für engl. Slur) setzt ebendiesen in die Spur.

Alle Noten unter einem Bindebogen werden ineinander übergehende gespielt. D.h. die Länge jeder Note
ist etwas länger als ihre normale Gesamtlänge. Die exakte Länge, was "legato" bedeutet, kann im
Spur-Editor in den erweiterten Optionen pro Spur eingestellt werden. Siehe das dazugehörige
Kapitel.

Bindebögen sind tatsächliche Objekte (im Gegensatz zu Rhythmusbalken) in der Spur. Ob ein Bogen
geöffnet oder geschlossen wird entscheidet sich aus der Reihenfolge. Das bedeutet implizt, dass
Bindebögen nicht verschachtelt werden können. Für ungeübte Augen sieht es manchmal in gedruckten
Noten so aus, als gäbe es dieses Phänomen. Es handelt sich jedoch bei übergeordneten Bögen stets um
sogenannte "Phrasierungsbögen". Phrasierungsbögen gehören in den Bereich der gedruckten Noten und
sind unspezifische Interpretationshinweise, die meist eine zusammengehörende Melodielinie
kennzeichnen, damit der Interpret das z.B. durch Lautstärke (cresc) oder Geschwindigkeit (accel)
subtil umsetzt. Da diese Art von Interpretation in Laborejo explizit gesetzt wird gibt es
Phrasierungsbögen nur als Lilypond-Befehl.


==== Instrumentenwechsel (das Objekt)

Das Objekt `Objekte Einfügen` -> `Instrumentenwechsel` ist eine Möglichkeit das Midi-Instrument zu
wechseln, indem Program und zwei Bankparameter eingegeben werden. Das ist äquivalent zur
Einstellung des Spur-Editors.

Es können beliebig viele Instrumentenwechsel in die Spur eingefügt werden.

Ihre Auswirkung hängt allein vom über JACK verbundenen Instrument ab.

Zusätzlich kann noch ein Instrumentenkürzel (z.B. Vla für Viola) eingegeben werden. Das kann rein
der Übersicht dienen, wird aber auch von der Lilypondausgabe als Instrumentenwechsel interpretiert.

Bitte beachten Sie, dass Program/Bank-Changes exakt dann gesendet werden, wenn der Cursor sie
berührt. Springt man manuell in einen Bereich mit einem anderen Instrument so wird dies nicht
zusätzlich gesendet. Die in die Spur (durch den Spur-Editor) eingebauten Werte werden genau einmal
am Anfang gesendet, wenn der Cursor auf Position 0 steht (`Steuerung` -> `Wiedergabe vom Anfang`).


==== MIDI-Kanäle

Sample-Instrumente benutzen oft MIDI-Kanäle um unterschiedliche Spielweisen schnell
ansteuern zu können. z.B. um zwischen Auf- und Abstrichen von Streichern hin- und herzuschalten.

Dem MIDI-Kanal wird daher besondere Aufmerksamkeit zu teil.

Im Spureditor (Strg+T) kann der Basiskanal für eine Spur eingestellt werden. Die Kanäle für MIDI CCs
sind etwas besonderes, hier können mehrere auf einmal ausgewählt werden (oder gar keiner). Diese
Option gibt es genau aus dem Grund, dass Instrumente auf mehrere Kanäle verteilt sind aber
Parameter, die durch CCs vorgenommen werden (Lautstärke, Modulation, Filter etc.) auch auf all
diesen Teilkanälen eingstellt werden müssen. 

Möchte man Noten auf zwei Kanälen gleichzeitig senden gibt es entweder die Möglichkeit die Spur mit
Hilfe von verlinkten Blöcken zu doppeln, oder ein externes Programm zu nutzen (z.B. mididings oder
einen von mehreren MIDI-Filtern im LV2 Format).  Letztere Möglichkeit wird klar empfohlen.

Im Noteneditor werden nun die Noten auf dem eingestellten Kanal gesendet. Nun zu den kurzzeitigen
Veränderungen:

Im Menü `Werkzeugkasten` -> `MIDI` ist `Channel Change einfügen`. Hiermit kann man den Kanal ab dem
Objekt einstellen.

Im Menü `Musikobjekte Bearbeiten` kann man für jedes Objekt, meistens Noten und Akkorde, `Midi
Channel +`, `Midi Channel -` und `Midi Channel zurücksetzen` auswählen.

Plus und Minus verändern den Kanal um je 1, ausgehend vom derzeitigen Basiskanal (ausgewählt durch
den Spureditor oder den Werkzeugkasten). Man kann den Befehl mehrfach auf das gleiche Objekt
aufrufen um um +3 etc. zu verändern. `Zurücksetzen` löscht die Veränderung wieder.

Diese Veränderungen sind Eigenschaften der Noten selbst, bzw. des gesamten homophonen Akkordes.
Auch hier ist echte Polyphonie nur durch mehrere Spuren möglich.

Sie sind selber dafür verantwortlich, dass der Kanal nicht 1 unter- und 16 überschreitet.

Die drei Befehle sind sehr nützlich, haben aber keine Standardtastaturkürzel. Für diesen
Einsatzzweck sind sogenannte "Hover Shortcuts" gedacht. TODO: interner link


TODO: Hier weiter machen: 
Triolen
N-Tole
Zweiteilen/Dreiteilen/X-Tteilen. auch als altenrative um Triolen zu setzen.
Balken, auch mit dem Selection-Trick. balken ist ein switch in der note, so wie legatobögen. Mit start/end 
Tenuto, Staccator, Haltebogen/Tie


=== Blöcke und Blockmodus

Laborejos Spuren bestehen aus Blöcken. Jede Spur hat automatisch einen Block, der so lange ist wie
die Spur, d.h. es ist möglich Noten zu setzen ohne jemals mit Blöcken in Berührung zu kommen.

Nun kann dieser Block um weitere ergänzt werden, in die Noten eingetragen werden können.
Ein Blockende ist durch eine geschwungene Linie gekennzeichnet, über die der Cursor mit einem 
Extraschritt navigieren muss. 

Blöcke und deren Grenzen sind in der Wiedergabe nicht zu hören. Auch für die Notenlogik existieren
die Grenzen nicht. Es wird weiterhin von Links nach Rechts ausgewertet: Momentan geltende Schlüssel,
Tonarten, Dynamikanweisungen usw. bleiben über die Blockgrenzen gültig. 

Es gibt mehrere Gründe Blöcke zu verwenden:
* Übersicht: Unterschiedliche Teile ("Strophe, Refrain" oder einfach "A, B, C"
* Erleichtertes Arbeiten: Blöcke duplizieren ist manchmal einfacher als Kopieren & Einfügen, selbst wenn man anschließend unabhängig an ihnen weiterarbeitet.
* Wiederverwendung: Wiederholungen gehören zur Musik. Wörtliche Wiederholungen können durch verlinkte Blöcke hergestellt werden. 
* Dopplung in anderen Spuren: Blöcke können auf andere Spuren verschoben werden, auch verlinkte Blöcke. Damit können zwei Instrumente das gleiche spielen. 

Es können neue Blöcke am Ende der Spur erschaffen werden, der Block am Cursor geteilt werden oder 
zwei Blöcke vereint werden.  

Um Blöcke umzubenennen und hin- und herzuschieben muss man sich in den Blockmodus begeben. Siehe
das entsprechende Kapitel.

Normale Blöcke, und auch verlinkte Blöcke, werden immer direkt in eine Spur eingefügt und befinden
sich aufgereiht auf der selben Ebene. Das heißt, man kann keine Blöcke in andere Blöcke (und keine 
Spuren in Blöcke) einfügen. Verschachtelung und Rekursion sind nicht möglich.

Welche Dauer ein Block haben soll richtet sich ganz nach Ihren Vorlieben. Wir empfehlen allerdings
eine Länge von einigen Takten. Zumindest sollte im Blockmodus die Beschriftung des Blocks ("ABC
Start" und "ABC Ende") nicht länger sein als der Block selbst.

Die Farbe eines Blockes ergibt sich aus seinem Namen. Siehe dazu "Blockmodus". 

==== Blöcke Erschaffen und Duplizieren

Das Strukturen-Menü beinhaltet alle Befehle um mit Blöcken umzugehen.

Die schnellste Art einen neuen Block zu erschaffen ist die Einfügentaste (Insert). Befindet sich der
Cursor in einem Block wird dieser an der Cursorposition getrennt. Am Ende der Spur hat das den
selben Effekt, als würde ein leerer Block angehängt.

Wenn Sie verlinkte Blöcke trennen und vereinen gibt es Spezialfälle zu beachten, siehe dazu das
Kapitel "Blöcke Trennen und Vereinen".

In seltenen Fällen benötigt man zwingend die Funktion explizit einen leeren Block ans Ende zu
setzen, etwas wenn man nach einen verlinkten Block am Ende einen eigenständigen, leeren Block haben
möchte. Hierzu gibt es im Menü `Strukturen` den Befehl `Leeren Block ans Ende anhängen`

Der Befehl "Duplizieren" erschafft eine Kopie des ausgewählten Blocks und platziert sie rechts
nebem dem Original. An den Namen wird ein "Copy" (engl. Kopie) angehängt. Die Kopie teilt sich
zunächst den Inhalt mit dem Original, ist aber ab jetzt unabhängig. Die Kopie kann auch in eine
andere Spur verschoben werden (siehe Kapitel "Blockmodus").

Um eine Kopie zu erhalten, die sich den Inhalt mit dem Original teilt siehe "Verlinkte Blöcke".


==== Blöcke Löschen

Blöcke löschen Sie über das Menü `Strukturen`->`Diesen Block löschen`. Der Befehl hat mit Absicht
kein Tastenkürzel, da eine Blocklöschung nicht ausversehen passieren soll. Möchten Sie mehrere
Blöcke hintereinander löschen, etwa in einer "Aufräumphase", begeben Sie sich in den Blockmodus
um dort mit der rechten Maustaste Blöcke löschen zu können.

Der letzte bzw. einzige Block einer Spur kann nicht gelöscht werden.

Manchmal erschafft man ausversehen mehrere leere Blöcke hintereinander. Etwas am Anfang der Spur,
oder weil man zweimal hintereinander auf die Einfügentaste gedrückt hat ohne es zu bemerken.
Für diesen Fall muss man nicht umständlich den Cursor zwischen zwei Blockgrenzen bewegen, was man
nicht sehen könnte, sondern es gibt `Strukturen`->`Alle leeren Blöcken löschen`.

==== Blöcke mit fester Mindestdauer

Ein Block kann, entweder durch das Sturkturmenü oder durch das Kontextmenü im Blockmodus, auf eine
feste Mindestdauer eingestellt werden ("Eigenschaften Bearbeiten"). Nach Auswahl zeigt sich ein
Untermenü, dass eine Berechnung der "Ticks" erlaubt. Das ist die MIDI-Einheit für Rhythmus.
Es entsteht eine Art Platzhalter, der erst länger wird, sobald der Inhalt auch länger wird.

Oft weiß man schon im Vorraus, wie lange eine Strophe, ein kontrastierender Formteil, oder ein
Gitarrensolo sein wird. Mit Mindestdauern (und evtl. verlinkten Blöcken) kann man sich bereits ein
Grundgerüst für die Komposition erstellen, dass man anschließend mit Musik füllen kann.

==== Verlinkte Blöcke

Ein verlinkter Block teilt sich den Inhalt mit einem, oder mehreren, anderen. Ändert man einen, 
Noten einfügen, löschen etc. ändern sich auch automatisch alle anderen. Auch andere Eigenschaften,
wie der Name und die Mindestdauer, sind geteilt.

Im Blockmodus können verlinkte Blöcke beliebig verschoben werden, etwa an das Ende einer Spur oder
sogar in eine andere Spur.

Das ermöglicht viele nützliche Arbeitstechniken. Zum Beispiel:
* Ein Refrain kommt nach der Strophe noch ein weiteres mal, oder generell mehrmals im Stück
* Zwei Instrumente spielen die gleichen Noten für eine Weile. 
* Oder ein Instrument spielt zu einem späteren Zeitpunkt etwas, dass vorher woanders vorkam.

Verlinkte Blöcke erzeugt man fast wie normale Kopien auch: `Strukturen`->`Diesen Block mit Link
verdoppeln`. Oder im Blockmodus durch das Rechtsklick-Kontextmenü.

Das Bearbeiten von verlinkten Blöcken sollten Sie vorzugsweise in der ersten Version (ganz links)
machen, da hier die Ansicht am "stabilsten" ist. Würden Sie etwa im vierten verlinkten Block einer
Spur arbeiten würde sich jedes Einfügen einer Note darin auswirken, dass der Cursor optisch viermal
so weit nach rechts "springt", wie man eigentlich erwartet, da jetzt weiter links (also früher) in
jedem der vier verlinkten Blöcke diese Note eingefügt wurde.

Löscht man einen verlinkten Block so ändert sich dadurch nichts an den anderen Versionen.

Um einen verlinkten Blöck zu einer eigenständigen Version zu machen benutzen gibt es `Link des
Blocks lösen` im `Struktur`menü, sowie als Kontextmenüfunktion im Blockmodus.

Um von einem verlinkten Block eine eigenständige Kopie zu erstellen können Sie einfach das normale
`Duplizieren`benutzen.

Bitte bedenken Sie, dass die Ansicht der Noten nicht deren Inhalt bedeutet. Laborejo speichert
Tonhöhen, und nicht Positionen auf Linien. Haben Sie also zwei verlinkte Blöcke, bei einem steht
ein Violinenschlüssel vorher (in einem anderen Block) und beim anderen ein Bassschlüssel, so sehen
die Noten auch anders aus.

Gleiches gilt auch für Lautstärken und andere Parameter, die von der Umgebung abhängig sind:
Befindet sich vor der erste Kopie des verlinkten Blocks eine Dynamikanweisung "piano" und vor dem
zweiten ein "forte", so werden die Blöcke auch unterschiedlich laut gespielt.


==== Blöcke Trennen und Vereinen

Um einen existierenden Block zu trennen, also zwei daraus zu machen, drücken sie die Einfügen Taste
oder benutzen den Befehl `Strukturen`->`Diesen Block teilen`. Da diese Funktion eine Cursorposition
benötigt kann sie nicht im Blockmodus benutzt werden.

Beide Blöcke haben zunächst den gleichen Namen, und damit die gleiche Farbe. Sie stehen auch noch
an der alten Position, musikalisch ist noch keine Veränderung eingetreten. Ab nun sind sie aber
individuell veränderbar und können im Blockmodus auch verschoben werden.

Das Gegenteil von Trennen (abgesehen von Undo, Strg+Z) ist  `Mit nächstem Block vereinen`, das es
im `Struktur`menü gibt, sowie als Kontextmenüfunktion im Blockmodus. Die zu vereinenden Blöcke
müssen nicht vorher getrennt worden sein, alle Blöcke sind geeignet.

Eine Besonderheit ergibt sich bei verlinkten Blöcken. Diese können, wie normale Blöcke, getrennt
werden. Die Trennung geschieht dann in allen verlinkten Versionen. Als Resultat erhalten Sie einen
neuen Satz an verlinkten Blöcken, die jeweils zweiten Hälften.

Vereinen geht auch, aber nur unter eine Bedingung: Alle Versionen müssen von jeweils dem gleichen
verlinkten Block gefolgt werden. Beispiel: A ist ein Set verlinkter Blöcke, B ebenso, C und D sind
unabhängige Blöcke. X ist ein neu enstandener verlinkter Block.

* `ABAB` kann vereint werden. Es ensteht: `XX`
* `ABCAB` kann vereint werden. Es ensteht: `XCX`
* `ABAC`kann nicht vereint werden, da B und C verschieden sind.
* `AABBAB`kann nicht vereint werden, da auf A jeweils B folgen müsste.
* `AA`ist ein Spezialfall und kann nicht vereint werden.

==== Blockmodus

Der Blockmodus ist eine Spezialansicht des Noteneditors, wie auch Control Changes. Durch
`Steuerung`->`Modus zur Ansicht und Bearbeitung` -> `Blöcke` (Taste F6) kann man ihn aktivieren.
Die Noteneingabe und viele andere Befehle, auch per Midi, werden deaktiviert.

Blöcke werden nun deutlich mit Namen und Farbe dargestellt, ohne Noten und andere Objekte.
Die Skalierung (Steuerung+Umschalten mit Plus oder Minus) ist jetzt besonders hilfreich um das ganze
Stück auf einmal zu betrachten.

Drückt man mit der linken Maustaste auf einen Block, hält sie gedrückt und bewegt dann die Maus kann
man einen Block verschieben. Dies ist auch Spurübergreifend möglich. Sobald man die Maustaste wieder
loslässt ändert sich die Blockstruktur. 

Es ist nicht möglich Blöcke in einem Arbeitsschritt zu verschieben und zu kopieren (wie das in
einem Dateimanager oft der Fall ist). Es muss immer erst dupliziert und/oder verlinkt werden und
anschließend in einem zweiten Schritt die Kopie verschoben werden.

Da man im Blockmodus mit der Maus arbeiten muss und es keinen Cursor gibt, der den aktuellen Block
auswählt (also die Menübefehle deaktiviert sind) gibt es hier ein Kontextmenü: Mit der rechten
Maustaste lassen sich die Eigenschaften eines Blocks bearbeiten sowie weitere typische Funktionen
(löschen, duplizieren etc.) aufrufen.

Der Blockmodus kann auch benutzt werden um ganze Spuren zu verschieben. Hierzu die Alt-Taste
gedrückt haben, während Sie mit der Linken Maustaste Spuren hoch und runter verschieben.


== Modus für Control Changes 

Nebem dem Notenmodus und dem Blockmodus gibt es den CC-Modus. Durch `Steuerung`->`Modus zur Ansicht
und Bearbeitung` -> `Control Changes` (Taste F7) kann man ihn aktivieren.

CCs sind Bestandteil des MIDI Protokolls. Man kann sie sich als Regler oder Drehknöpfe an einem
Gerät vorstellen. Jeder der 16 Midikanäle verfügt über 128 (0 bis 127) CCs, deren Bedeutung per
Konvention oder Tradition festlegt ist, technisch aber einfach nur einen Zahlenraum, wiederum von 0
bis 127, darstellt. Zum Beispiel wird der CC Nr 7 ("CC7") oft für Lautstärke ("Channel Volume")
benutzt. Stellt man seinen Wert auf 0 ist die Lautstärke aus, auf 127 ist das Maximum. Was das
konkret bedeutet entscheidet das Gerät oder Programm (Synthesizer, Sampler etc.), an das die Spur
seine CCs sendet. Ein anderes Gerät könnte CC7 aber auch durchaus für die Helligkeit seines
eingebauten Displays benutzen. Welche CC Nummern traditionell welche Funktion haben muss außerhalb
dieses Handbuchs nachgelesen werden.


Einzelpunkte
Auswahl
Interpolation
CC Kanäle im Track editor

== Werkzeugkasten


== Tempospur

TODO

Zu Tempo gehören auch die drei "Objekte" im Objekte Einfügen menü


Bitte benutzen Sie keinen verlinkten Block als letzten, am Ende der Tempospur. Der letzte Block
wird automatisch auf die Länge der längsten Spur erweitert. Das heißt alle verlinkten Versionen
werden auch länger! Es entsteht eine unvorhersagbare Verschiebung der Tempospur, die musikalisch
unnütz ist.

== Grid

== Hover-Tastasturkürzel

Die Tastaturkürzel ("Shortcuts") in Laborejo sind festgelegt. Manche Befehle, wie z.B. alle im 
Werkzeugkasten, haben überhaupt keine Kürzel, müssen aber trotzdem sehr häufig aufgerufen werden um 
normal benutzbar zu sein. Zum Beispiel benötigt das Erzeugen einer zufälligen Melodie das vielfache
Erzeugen einer Einzelnote. Jedes mal den Menübefehl mit der Maus aufzurufen wäre eine Zumutung.

Dafür gibt es in Laborejo sog. Hovershortcuts. Hat ein Menübefehl noch kein Tastenkürzel kann man
mit dem Mauszeiger über diesem schweben, also einfach darauf zeigen, und dann eine Tastenkombination
drücken um sie dem Menübefehl zuzuweisen. Natürlich können nur Tasten verwendet werden, die noch 
nichts anderes auslösen.

Versucht man einen bereits benutzten Hovershortcut an einen anderen Befehl zu binden wird dessen
alte Verwendung gelöscht.

Diese Einstellungen werden auf dem Computer (für Experten: Im Config-Verzeichnis des Benutzers) 
gespeichert, aber nicht in der Datei. 

== Tickwidget

== Metronom



== Lilypond Ausgabe

TODO: Lilypond gibt es, soll hier aber als eigenständiger Bereich erklärt werden.
So z.B. transponierte Instrumente hier, anstatt im Transpositionskapitel.

== Eigene Scripte

TODO: Das Interface und Menü fehlt noch.  Geht aber schon mit der Testdatei.

== FAQ und Detailerklärungen

Um ehrlich zu sein, niemand hat diese Fragen gestellt. Aber es sind dennoch wichtige Details. Daher
verzichten wir auch auf tatsächliche Fragestellungen.

=== Die gleiche Note zweimal in einem Akkord

Die gleiche Note kann nicht zweimal in einem Akkord vorkommen. Auch Fis mit Fes nicht. z.B. für
diese Stimmführung über zwei Leittöne mit zwei Stimmen: `<g g> <ges gis> <f a>`

Das wäre echte Polyphonie und gehört auf eine eigene Spur. Laborejos Philiosohpie ist es, dass eine 
Spur eine Stimme darstelle. Akkorde oder einfache Polyphonie sind aus Bequemlichkeitsgründen 
möglich, aber bestimmte, komplexe, Stimmführung erfordert echte Stimmführung. Im Fis/Fes-Beispiel 
ist außerdem zu überprüfen, ob es sich nicht um einen ortohraphischen Fehler handelt.

=== Extreme Notenwerte- und Dauern 

Nur weil extreme Werte theoretisch unterstützt werden (Maxima- und 1024tel Noten, Noten tiefer oder höher als 
MIDI 0 und 127) heißt nicht, dass diese auch zur Benutzung gedacht sind. 
Extremwerte sind ein Toleranzbereich, der es erlaubt während der Bearbeitung kurzzeitig Grenzen zu 
überschreiten, die nicht erklingen sollen.

z.B. soll eine ganze Reihe Noten, inkl der Midi-Note 120, eine Quinte (7 Halbtöne) nach oben 
transponiert werden. Der Benutzer entscheidet sich aus Übersichtsgründen erst eine Oktave nach oben 
(12 Halbtöne) zu transponieren und dann wieder nach unten zu korrigieren. Hier wird kurzeitig die 
Midi-Note 132 erreicht. Würde Laborejo die pure Existenz dieser Werte ablehnen würde der ganze 
Prozess gestoppt werden, im schlimmsten Fall mit Datenverlust, da 120 + 12 = 132 ergibt, aber 
127 erzwungen wird. Anschließend würde von 127 abwärts gerechnet und es käme die falsche Note 
heraus.

Analog kann man sich vorstellen, dass so etwas auch mit rhythmischen Längen passieren kann.

Es kann auch vorkommen, dass ein Wert rechnerisch unterstützt wird aber in der grafischen Oberfläche
keine Entsprechung hat. Das kommt nur selten vor (z.B. 1024tel Noten) und ist generell unkritisch.

Sollte sich ein Datenverlust dennoch einstellen, der nicht mehr rückgängig gemacht werden kann, 
bleibt nur noch die Undo-Funktion, da diese sich die tatsächlichen Werte gemerkt hat und nicht 
einfach den gegenteiligen Befehl ausführt (also nicht Dauer halbieren durch verdoppeln rückgängig machen).

=== Eine Note auf mehreren Channels gleichzeitig senden

Channel Ranges, also eine Midi-Note mehreren kanälen gleichzeitig, müssen extern gemacht werden.
Es gibt eine Reihe an Midi-Programmen und Plugins, die so etwas machen.


=== Relative MIDI Programchanges oder Bankchanges

Es gibt zwar relative Midi-Channelchanges, z.B. vom jetzigen Channel +1, aber keine relativen
Programchanges oder Bankchanges. MIDI-Kanäle sind in den Zeiten eines Jack-Systems fast schon
obsolet und werden hauptsächlich unterstüzt um all die alten Softwaresampler, wie sf2 Player, zu
unterstützen, die Kanäle benutzen um Artikulationswechsel (z.B. Aufstrich und Abstrich) zu
implementieren.

Programchanges haben historisch nie diese Rolle übernommen und werden daher auch nicht in dieser
Funktion unterstützt.

=== Notizen des Autors. Wenn Sie die sehen habe ich vergessen sie umzuschreiben.

Ideen: Das Handbuch ist dafür da wie man Laborejo am besten benutzt, nicht eine plumpe beschreibung.
Für Triolen ist es einfacher eine Viertelnote zu setzen und zu splitten anstatt drei Achtelnoten umzuformen.

Beams sind einfachs per Selection, statt Start und Ende zu markieren.

Slurs sind eigene Objekte, Beams nicht. Erklären warum: Bei Slur schreibt man dazwischen, Beam gehört zu einem notenwert, den kann man nicht einfach ändern.

Trackname mit rechtsklick auf den namen geht nur im Blockmodus. Das ist gewollte, damit das nicht im Weg ist.
Der normale Weg ist der Trackeditor.


Bei Copy und Paste am besten nicht auf zero-duration items anfangen oder aufhören, und auch auf allen Spuren gucken, dass das so ist. Copy weiß nicht welches davon gemeint ist in der zweiten Spur.

Objekt/Auswahl verdoppeln noch irgendwo ein.

Hover Shortcuts



== Installation und Start

Laborejo ist exklusiv für Linux. Am besten installieren Sie Laborejo über deinen Paketmanager.
Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre 
Linuxdistribution Laborejo bereitzustellen.

Falls in den Paketquellen vorhanden bitte direkt bei "laborejo im Non Session Manager starten" weiterlesen.
Falls nicht kann man Laborejo auch selbst "bauen".

.Abhängigkeiten* 
* Eine Liste der Abhängigkeit befindet sich in der README.md
* Kompilieren und Installieren geht entweder mit einem Releasedownload oder mit der Git-Version:
  ** Lade von https://www.laborejo.org/downloads die aktuelle Version herunter und entpacke sie.  
  ** `git clone https://git.laborejo.org/lss/laborejo.git`
* Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle:
*`./configure --prefix=/usr`
  ** Das Standardprefix is /usr/local
* `make`
* `sudo make install`

.laborejo im Non Session Manager (NSM) starten
* Starten Sie `non-session-manager`
* Knopf `New`, geben Sie einen Namen für das Musikstück ein.
* Knopf `Add Client to Session`, geben Sie hier `laborejo` ein, kleingeschrieben.
* Nochmal Add Client, diesmal `jackpatch`.
* Fügen Sie beliebige kompatible Programme hinzu, z.B. Synthesizer.
** Siehe auch das NSM Handbuch: http://non.tuxfamily.org/nsm/
** Und die Liste der NSM kompatiblen Programme: http://non.tuxfamily.org/wiki/ApplicationsSupportingNsm

In der Datei README.md befinden sich weitere Möglichkeiten laborejo zu starten. Diese sind zum
Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.

== Helfen und Entwicklung
Sie können Laborejo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing,
anderen Nutzern helfen und schließlich programmieren.

=== Testen und Programmfehler
Falls Sie einen Fehler im Programm entdecken (oder es zu langsam läuft) melden Sie diese bitte auf
eine Art und Weise, die ihnen am besten passt.

.Kontaktmöglichkeiten
* Bugs und Probleme melden: https://www.laborejo.org/bugs
* Webseite: https://www.laborejo.org
* E-Mail: info@laborejo.org
* Wenn Sie die Gelegenheiten sehen und wissen, dass ein Entwickler es lesen wird sind auch Foren, Socialmedia etc. möglich.

== Entwicklung
Falls Sie an der Entwicklung interessiert sind, melden Sie sich am besten direkt bei uns (s.o.)
Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns eine git URL zukommen lassen.

=== Übersetzungen
Laborejo ist mit Hilfe der Qt-Toolchain sehr einfach zu übersetzen, ohne, dass man dafür Programmieren muss.
Die einfachste Variante ist es einfach die Entwickler anzusprechen und sie werden die neue Sprache einrichten.

Hier ist dennoch die komplette Anleitung, um eine Übersetzung komplett alleine anzufertigen und in 
das Programm einzubinden. Das Programm ist in zwei Teile aufgeteilt: Ein gemeinsames "Template" 
(für alle Laborejo Software Suit Programme) sowie das eigentliche Programm.

Der Übersetzungsprozess ist der gleiche für beide Teile, man muss ihn jedoch in unterschiedlichen
Verzeichnissen durchführen:
`template/qtgui` und nur `/qtgui`, relativ zum Stammverzeichnis, wo sich die ausführbare Datei
laborejo befindet.

Jedes "template/qtgui" hier kann durch nur "qtgui" ersetzt werden um den zweiten Teil zu übersetzen.

So fügt man eine neue Sprache hinzu:

* Öffnen Sie ein Terminal und navigieren zu template/qtgui/resources/translations
* Bearbeiten Sie die Datei `config.pro` in einem Texteditor.
  ** Hängem Sie in der letzten Zeile den Namen der neuen Sprache an, in der Form `XY.ts`, wobei XY der Sprachcode ist.
  ** Achten Sie bitte darauf ein Leerzeichen zwischen den einzelnen Sprachen zu lassen
* Führen Sie `sh update.sh` im selben Verzeichnis aus.
  ** Das Programm hat nun eine neue `.ts`-Datei im Verzeichnis erstellt.
* Starten Sie Qt Linguist mit `linguist-qt5` (kann evtl. anders heißen) und öffnen von dort die neu generierte Datei.
* Wählen Sie die "Target Language", also Zielsprache, aus und benutzen das Programm um eine Übersetzung anzufertigen.
* Senden Sie uns bitte die .ts Datei, z.B. per E-Mail an info@laborejo.org (s.u bei Bugs und Programmfehler für mehr Kontaktmöglichkeiten)

Die Übersetzung können Sie auch selbst, zum Testen, in Patroneo einbinden. Dafür sind rudimentäre
Python Kentnisse nötig.

* Im Qt Linguist "Datei" Menü ist eine "Release" Option. Das erstellt eine `.qm` Datei im gleichen Verzeichnis wie die `.ts` Datei.* Bearbeiten Sie `template/qtgui/resources/resources.qrc` und kopieren die Zeile `<file>translations/de.qm</file>` . Dabei das Länderkürzel zum Neuen ändern.
* Führen Sie `sh buildresources.sh` aus
* Bearbeiten Sie `engine/config.py`: Die neue Sprache hinzufügen. z.B. `{"German":"de.qm", "Esperanto:"eo.qm"}` 
  ** Um den Sprachstring herauszufinden öffnen Sie den `python3`-Interpreter im Terminal und führen aus:
  ** `from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())`


Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese
Sprache eingstellt ist.
Ansonsten starten Sie laborejo mit diesem Befehl, Sprachcode ändern, vom Terminal aus:

* `LANGUAGE=de_DE.UTF-8 ./laborejo -V`
