Author: Laborejo Software Suite

# Vico

Laborejo Software Suite

Für Programmversion 1.1

## 1. Bedienung

Schön, dass Sie sich für Vico entschieden hast. Es handelt sich um einen minimalistischen Midi-Sequencer, der parallel zu anderer Software eingesetzt werden soll.

"Vico" (mit c als 'z'/'ts' wie in Zirkel) heißt Reihenfolge auf Esperanto, da es sich um einen "Sequencer" handelt.

### 1.1. Anwendungszweck und Zielgruppe

In einer loop- oder patternbasierten Umgebung möchte man oft einen 'freien' Track habe, um etwa ein Instrumentalsolo umzusetzen. Manchmal möchte man auch nur schnell eine Skizze oder Idee aufnehmen und dazu nicht gleich ein ganzes DAW-Projekt öffnen oder erstellen.

Vico erfüllt diese Bedingungen indem es genau eine Aufnahmequelle mit einer Ausgabe verbindet und dazwischen aufnehmen und bearbeiten kann. Oder anders gesagt: man bekommt nur einen Track, gedacht für ein Instrument (dafür aber mit nützlichen Ebenen)

Vico ist in erster Linie für Benutzer von Patroneo geschrieben worden, hat dazu aber keine engere technische Bindung. Patroneo ist ein Programm geprägt von strengen Wiederholungen und ständiger Wiederverwendung von sehr kurzen Mustern. Damit kann man schnell ganze Arrangements für Schlagzeug, Bass und Begleitakkorde aufbauen, aber eine schöne, lange Melodie ist extrem umständlich. Daher hier das Programm für genau diesen Zweck.

Alle Programme, die als JACK-Transport-Master oder JACK-Timebase-Master laufen können Vico fernsteuern.

### 1.2. Grundlagen

Vico erzeugt selbst keine Klänge und bietet nur einen einzigen Ausgang für JACK-Midi und ordnet alle Events auf bis zu zehn Ebenen, ähnlich wie in Grafikprogrammen.

Es gibt einen Eingang für JACK-Midi, an dem man MIDI-Instrumente oder andere Programme anschließen kann.

Beim Start sieht man einen leeren Track. Der Playhead befindet sich immer an der Stelle, an der JACK Transport sich befindet. Die Taktstriche werden ebenfalls im Metrum des JACK Masters gezeigt. Falls nicht vorhanden gibt es keine. Ein roter Playhead zeigt an, dass man sich im Aufnahmemodus befindet; Läuft Transport wird aufgenommen, etwa von einen Midikeyboard.

Mit Maus und Tastatur können außerdem alle Events von Hand gesetzt und nachträglich verändert werden (s.u.). Bis auf Velocity werden alle Events im Haupttrack dargestellt.

Zur Vereinfachung kann man ein Rhythmusraster ein- und ausschalten sowie einstellen in welchem Raster Events erzeugt oder verschoben werden sollen.

Alles Bearbeiten erfordert das Erstellen einer Auswahl ("Selection") indem man mit Umschalten und der linken Maustaste einen Rahmen zieht. Ein Klick mit der rechten Maustaste beendet die Auswahl.

Starten, speichern, laden und schließen deines Projektes wird am besten durch den Non Session Manager erledigt.

### 1.3. MIDI-Unterstützung

Vico unterstützt alle MIDI Channel-Nachrichten:

- Noten (ON 0x80 und OFF 0x90 sind als Rechtecknote zusammengefasst)

- Control Changes (0xB0)

- Program Change (0xC0)

- Channel Pressure / "Monophonic Aftertouch" (0xD0)

- Pitch Bend (0xE0 - nur 7bit MSB)

- Polyphonic Aftertouch (0xA0)

Alle Nachrichten können entweder live aufgenommen werden oder mit der Hand eingetragen werden. Nachbearbeitung ist für alle Channel-Nachrichten möglich.

Der Midikanal wird bei der Aufnahme verworfen. Statt dessen hat jede Ebene die Möglichkeit einen Kanal einzustellen, auf dem gesendet wird.

Alle nichtmusikalischen Events (0xF…​) werden ignoriert, inkl. aller Nachrichten zu MIDI-Transport (nicht JACK-Transport), Tune-Request usw. Gleiches gilt für SystemExclusive Events.

### 1.4. Maus und Tastaturkürzel

Alle Tastaturkürzel ("Shortcuts") sind in den Menüs zu finden, es gibt keine "geheimen" Tasten.

Im Gegensatz dazu sind Mausbefehle überhaupt nicht in der grafischen Oberfläche einzusehen und müssen hier gelernt werden:

(LM = Linke Maustaste, RM = Rechte Maustaste, Rad = Mausrad bewegen, MM = Mittlere Maustaste, meistens das Rad selbst drücken)

- Umschalten + LM gedrückt halten, Maus bewegen: Zieht einen Rahmen um Events auszuwählen.

- RM auf den Hintergrund: Löst die Auswahl wieder auf.

- LM auf ein ausgewähltes Event, dann Maus bewegen: Verschiebt die ausgewählten Events nach oben/unten oder links/rechts

- Steuerung (Strg) dabei gedrückt halten: Bewegt nur nach links / rechts

- Alt dabei gedrückt halten: Bewegt nur nach oben / unten

- MM: Spielt die Note unter dem Mauszeiger ab. Es muss keine tatsächliche Note dort sein, die Position alleine reicht. Dies geht auch auf dem Klavier am linken Rand.

- RM auf ein Event: Öffnet ein Menü mit weiteren Funktionen.

- Rad: Scrollt den Notenbereich hoch und runter

- Rad, dabei Alt gedrückt halten: Scrollt den Notenbereich links und rechts

- Rad auf Velocities im unteren Bereich: Ändert die Lautstärke der einzelnen Note, unabhängig der momentanen Auswahl

- Strg + Leertaste: Startet Playback an der Mauszeigerposition

## 2. Beschreibung der grafischen Oberfläche und ihrer Funktionen

Alle Punkte, und mehr, werden weiter unten ausführlich besprochen.

- [A] Menüleiste

- [B] Hauptansicht (Noten und Events)

- [C] Klavier am linken Rand

- [D] Velocityansicht

- [E] Einige Noten

- [F] Ein weiteres Event, als Beispiel

- [G] Statusleiste mit aktueller Ebene und Ebenen-MIDI-Kanal

Im Normalfall, wenn Vico im Non-Session-Manager läuft, gibt keine interne Möglichkeit das Programm zu beenden. Benutzt man die Funktion seinen Fenstermanagers wie [X], Alt+F4 etc. wird die grafische Oberfläche lediglich versteckt.

Um Vico wirklich zu schließen kann man im Non Session Manager auf das STOP Icon klicken. Hier kann man auch die Sichtbarkeit wieder herstellen, indem man auf den GUI Knopf klickt.

Die momentane Sichtbarkeitseinstellung wird gespeichert.

## 3. Klavier am linken Rand

Am linken Rand des Programmfensters befindet sich eine gedrehte Klaviatur. Sie dient ausschließlich als Orientierungshilfe.

Die Zahlen zwischen 0 und 127 in den Tasten sind MIDI-Tonhöhen. 60 ist in diesem System das mittlere C.

Hält man die mittlere Maustaste gedrückt und fährt über die Tastatur erklingt der Ton über das verbundene Instrument.

## 4. Hauptansicht

Die Hauptansicht nutzt Rhythmus als lineare Ausdehnung (technisch: Midi-Ticks). Das bedeutet, dass eine Note mit gleicher Dauer immer gleich lang aussieht. Verändert sich das Tempo (BPM) dann bewegt sich der Playhead schneller oder langsamer. Im Umkehrschluss bedeutet das, dass es keine Zeitleiste geben kann, an der man sieht bei welcher Sekunde ein Event stattfindet.

### 4.1. Bewegen und Navigation

Mit dem Mausrad scrollt man die Hauptansicht nach oben und unten. Mit gedrückter Alt-Taste scrollt man stattdessen nach vorne oder hinten (links / rechts)

Das "Navigation"-Menü bietet weitere Möglichkeiten.

### 4.2. Zoom und Skalierung

Hält man Strg gedrückt und dreht das Mausrad wird die Ansicht größer oder kleiner.

Hält man zusätzlich noch Umschalten gedrück wird nur die Zeitachse skaliert. Noten werden zusammengedrückt oder auseinandergezogen, so dass man entweder mehr auf einmal sehen kann oder genauere Anfangs- und Endpositionen setzen kann.

Zoom und Skalierung ist rein grafisch und hat keinerlei Auswirkung auf die Musik selbst.

### 4.3. Ebenen

Noten werden nicht in Tracks, sondern in Ebenen organisiert. Es gibt derer zehn. Im "Ebenen"-Menü, oder mit den Funktionstasten F1 bis F10, kann die momentane Ebene ausgewählt werden.

#### 4.3.1. Schatten

Ebenen liegen hintereinander und verdecken sich gegenseitig. Man kann allerdings sogenannte Schatten aktivieren, die eine andere Ebene auf die momentane projizieren. Schatten können nicht bearbeitet werden. Alle Schatten verschwinden,sobald man die aktive Ebene verändert.

Umschalten+Funktionstaste, z.B. F3, zeigt die dritte Ebene als Schatten. F12 zeigt alle als Schatten.

#### 4.3.2. Farben

Jede Ebene kann eine Farbe haben, diese ist im Ebenenmenü auswählbar. Hauptsächlich sind Noten und Events in dieser Farbe. Der Mauszeiger ist immer in der gegenteiligen Farbe.

#### 4.3.3. Midi-Kanal

Kanäle sind keine Eigenschaften der Events. Jede Ebene hat einen eigenen Midikanal, zwischen 1 und 16, auf dem gesendet wird. Bei einem neuen Projekt ist das immer Kanal 1.

Bei der Aufnahme wird zwar auf allen eigehenden Midikanälen zugehört, allerdings wird der Kanal sofort verworfen und auf den jeweiligen Ebenenkanal geändert.

## 5. Live Aufnahmen

Vico hat einen MIDI-in Jackport, an dem man beliebige Programme oder Hardwareinstrumente anschließen kann.

Der Eingangsport leitet, unabhängig von der Verarbeitung in Vico selbst (Aufnahme oder nicht), alles sofort an den Ausgangsport durch, allerdings mit dem Kanal der jeweils aktuellen Ebene. Die Weiterleitung geschieht in Echtzeit (Realtime).

Um etwas aufzunehmen muss der Aufnahmemodus aktiviert sein (Bearbeiten→"Aufnahmemodus umschalten"). Dies ist bei Programmstart bereits der Fall. Ein roter Playhead zeigt Aufnahmebereitschaft, ein schwarzer ist reines Abspielen. Zusätzlich muss Transport laufen. Ist beides nicht der Fall reagiert Vico, z.B. auf Noten, indem es die Tonhöhe farbig markiert.

Da Vico immer der JACK Timebase folgt (s.u.) geschieht die Aufnahme auch an dieser Position. Man kann also in einem anderen Programm genau an die Stelle springen zu der man etwa ein Solo aufnehmen möchte und in diesem Programm auch auf Play drücken. Im Prinzip kann Vico wie ein im Hintergrund laufendes Programm benutzt werden (was mit NSMs GUI-verstecken auch tatsächlich geht).

### 5.1. Ebenen-Filter

Es passiert schnell, dass man eine Fülle von Events aufzeichnet, die das weitere Bearbeiten extrem erschweren können. Man stelle sich vor, dass zu einer Melodie auch noch MIDI Aftertouch auf jeder Note aufgezeichnet wird und darüber hinaus das Modwheel (CC) benutzt wird. Schon ist der ganze Bildschirm voller Symbole.

Im Menü "Filter" befinden sich mehrere Möglichkeiten um Events auf Ebenen umzusortieren.

Die einfachste Anwendung ist einen Filter für alle Ebenen zu benutzen und dort lediglich den Event-Typ einzustellen, z.B. Aftertouch. Nun werden alle Aftertouch-Events auf die aktuelle Ebene verschoben.

Darüber hinaus kann man die Zielebene natürlich selbst einstellen. Auch ist es möglich die jeweiligen MIDI Bytes als Ober- und Untergrenze zu definieren.

Beispiel: Event-Typ "Note" mit Byte1 Minimum 0 und Maximum 59 verschiebt alle tiefen Noten, z.B. die Begleitung eines Klavierstückes, auf die Zielebene aber lässt alle hohen Noten stehen.

Die weiteren Menübefehle in "Filter" bieten Variation, funktionieren aber nach dem gleichen Muster.

### 5.2. JACK Transport und Timebase: Taktstriche

Vico wurde mit dem erklärten Ziel konstruiert, untergeordnet in einer Session zu laufen. Startet man es alleine kann man natürlich aufnehmen und alle Funktionen benutzen, aber man sieht keine Taktstriche und es ist ein bischen schwieriger die richtige Stelle zu finden.

Gibt es hingegen ein Programm, dass als JACK Timebase "Master" fungiert folgt Vico dessen Taktart und Position.

Mit "Bearbeiten"→"Zeige Rhythmus Raster" (Taste L) kann man Taktstriche auch komplett ausschalten.

Vico hat keine festgesetzte Länge. Die Hauptansicht hat praktisch unendliche Länge, und man arbeitet stets an der Stelle, an der sich alle anderen Programme auch befinden.

Sobald Transport läuft springt die Hauptansicht zum Playhead, es sei denn Bearbeiten→"Playhead stets zentrieren" ist ausgeschaltet.

Starten und Stoppen des Transports ist von jedem laufenden JACK-Programm möglich, inkl. Vico selbst. (Leertaste)

## 6. Noten und Events

Möchte man Noten und Events mit Maus und Tastatur einfügen, und nicht per MIDI Instrument aufnehmen, stehen in den Menüs "Eingabe" und "Raster" zahlreiche Möglichkeiten zur Verfügung.

Alle Events werden immer auf dem Midi-Kanal ihrer Ebene gesendet.

### 6.1. Events löschen

Momentan ausgewählte Events (s.u.), inkl. Noten, können mit der Entfernen Taste gelöscht werden. Alternativ kann man im "Bearbeiten"-Menü löschen.

### 6.2. Noten

Bei Programmstart ist der Mauszeiger ein kleines Rechteck mit einem Text zur Tonhöhe. Dies ist der Modus zum eingeben von Noten mit beliebiger Länge. Durch gedrückt halten und ziehen der linken Maustaste können Noten gezeichnet werden. Man muss zuerst den Mauszeiger auf die richtige Tonhöhe bringen, dann anfangen zu zeichnen.

Im Eingabemenü stehen feste Tondauern zur Verfügung. Diese können durch die Zahlentasten ausgewählt werden. Nach Taste "1" fügt ein Klick mit der linken Maustaste eine Ganze Note ein, mit "2" eine Halbe Note usw. "0" wählt wieder den freien Modus aus.

Punktierte Notenlängen können hier für alle festen Dauern an und ausgeschaltet werden.

Eingefügte Noten haben eine Durchschnitts-Velocity (Median) aus allen bisherigen Noten.

### 6.3. Weitere Events

Alle anderen Events können ebenfalls mit der Maus eingefügt werden. Das ist aufgrund großer Datenmengen evtl. nicht sehr bequem oder schnell, aber immerhin möglich. Eine Liveaufnahme ist wahrscheinlich vorzuziehen.

#### 6.3.1. Control Changes (0xB0)

Zunächst muss man in einem Submenü den CC Typ auswählen, etwa "Volume (CC7)". Die Höhe in der Hauptansicht bestimmt nun die Intensität von 0 bis 127.

Möchte man Control Changes eines anderen Typs setzen muss man den Menüeintrag erneut auswählen (oder das Tastenkürzel drücken).

Control Changes können nicht nachträglich ihren Typ ändern, z.B. von Modwheel zu Volume. Man müsste sie löschen und neu erstellen.

#### 6.3.2. Program Change (0xC0)

Um das Programm zu wechseln, um ein anderes Instrument auszuwählen, muss man lediglich das Event auf eine Position setzen. Die Beschriftung zeigt an um welche Programmnummer und General-Midi-Instrument es sich handelt. Folgt das verbundene JACK-Intrument nicht der MIDI-Benennung kann man die Namen natürlich ignorieren.

#### 6.3.3. Channel Pressure / "Monophonic Aftertouch" (0xD0)

Channel Pressure präsentiert sich als ein simples X ohne weitere Beschriftung oder Auswahlmöglichkeit. Je "höher" die Position, desto intensiver.

#### 6.3.4. Pitch Bend (0xE0 - nur 7bit MSB)

Pitch Bend präsentiert sich als kleiner Kreis ohne weitere Beschriftung oder Auswahlmöglichkeit. Je "höher", desto intensiver.

#### 6.3.5. Polyphonic Aftertouch (0xA0)

Zunächst muss man in einem Submenü die Note auswählen, für die Aftertouch gelten soll. Anschließend kann man das Event einfügen. Intensität ist auch hier wieder die "Tonhöhe". Möchte man Polyphonic Aftertouch für eine andere Note setzen muss man den Menüeintrag erneut auswählen (oder das Tastenkürzel drücken).

Polyphonic Aftertouch können nicht nachträglich ihren Bezug zur Tonhöhe ändern. Man müsste sie löschen und neu erstellen.

## 7. Events bearbeiten und verschieben

Alle Events lassen sich nachträglich bearbeiten. Hat man Ordnung durch Ebenen hergestellt, etwa durch Filter, gestaltet sich dies umso einfacher.

Schreiben von Textanmerkungung ist die einzige Funktion in der Hauptansicht, die keine Auswahl benötigt.

Alles weitere benötigt zwingend ausgewählte Events, selbst wenn es nur ein einziges ist.

### 7.1. Textanmerkung

Existiert gerade keine Auswahl ermöglicht es die rechte Maustaste auf ein Event eine Textanmerkung zu schreiben. Sie hat keine Auswirkung auf die Musik.

### 7.2. Auswahl

Das wichtigste zuerst: Ein Klick mit der rechten Maustaste ist die beste Möglichkeit die Auswahl aufzuheben.

Hält man die Umschalten-Taste gedrückt verschwinden die Event-Symbole am Mauszeiger. Statt dessen erhält man den normalen Zeiger und kann durch drücken, halten und ziehen ein Rechteck ziehen um Events auszuwählen.

Zusätzliche markierte Events werden zur bestehenden Auswahl hinzugefügt.

Die Auswahl kann sich über mehrere Ebenen ausdehnen.

Die Hauptansicht scrollt automatisch wenn man mit dem Mauszeiger an den linken bzw. rechten Rand kommt. Oft ist aber rauszoomen die bessere Methode um viele Events auf einmal zu markieren.

Das "Bearbeiten"-Menü bietet die Möglichkeit die ganze Ebene zu wählen (Strg+A) oder sogar alle Ebenen (Strg+Umschalten+A)

#### 7.2.1. Auswahl umkehren

Benutzt man die Strg-Taste, anstatt Umschalten, kehrt sich die Auswahl um: Ausgewählte Noten werden aufgehoben, alle anderen werden markiert.

Das ist besonders nützlich wenn man einzelne Noten aus einer Auswahl herausnehmen möchte, etwa nach Strg+A.

### 7.3. Event-Position verändern

Durch Drück/Halten/Ziehen mit der linken Maustaste können alle Events sowohl in ihrer zeitlichen Position (links/rechts) als auch in ihrer Tonhöhe bzw. Event-Intensität (hoch/runter) verändert werden.

Hält man dabei die Alt-Taste gedrückt bewegen sich Events nur noch nach links/rechts, egal ob die Maus auch hoch und runter fährt. Das erhöht die Kontrolle und vermeidet Ausrutscher in der Tonhöhe.

Hält man dabei die Strg-Taste gedrückt bewegen sich Events nur noch nach oben/unten, egal ob die Maus auch nach links oder rechts fährt. Das erhöht die Kontrolle und vermeidet Ausrutscher in der Position in der Zeit.

Man kann auch die Pfeiltasten benutzen um Events Schrittweise in alle Richtungen zu verschieben. Diese Methode ist mitunter am schnellsten und genauesten.

### 7.4. Notenlängen verändern

Noten in der Auswahl können sowohl in ihrer Dauer nach vorne, wie auch nach hinten verändert werden. Dazu kann man mit der Maus am linken oder rechten Rand einer Note mit der linken Maustaste drücken/halten/ziehen. Alle markierten Noten werden um das gleiche Maß verändert.

Es gibt eine Mindestdauer, die nicht unterschritten werden kann. Dabei muss nur eine der ausgewählten Noten an diese Mindestdauer stoßen, damit der gesamte Prozess gestoppt wird.

Sind gleichzeitig Nicht-Noten markiert werden diese bei der Aktion ignoriert.

### 7.5. Raster und Positionen einrasten

Das "Raster"-Menü ermöglicht es Events auf feste Position zu setzen. Bei Programmstart ist das Raster zunächst ausgeschaltet: freie Positionierung auf jeder Zeitposition ist möglich.

Wie die Zifferntasten Tondauern, so stellen Umschalten+Ziffern das Rhythmusraster ein. Ein Viertelnotenraster lässt nur noch Events und Tonanfänge auf Viertelnotenpositionen zu.

Das Raster auf Achtel- oder Sechzehntelnoten zu stellen ist meistens ein guter Kompromiss zwischen robuster Eingabe und rhythmischer Flexibilität.

Bei freier Notenlänge (Umschalten+0) ist der Anfang ans Raster gebunden, das Ende ist jedoch frei.

Beim Verändern von Notenlängen ist das Raster aktiv.

### 7.6. Notenlautstärke / Velocity verändern

In der Hauptansicht kann man die Lautstärken von Noten nur durch Menübefehle verändern. Eine weitere Möglichkeit bietet die Velocityansicht (s.u.).

Das "Bearbeiten"-Menü bietet mehrere Optionen: Man kann Velocities schrittweise erhöhen oder ernierigen. Die Tastenkürzel sind + und -.

Dazu gibt es einen Befehl, der es ermöglicht entweder relativ alle Noten zu verändern oder absolute alle auf einen festen Wert zu setzen. Schreibt man ein "+" oder "-" vor den Wert in der Eingabezeile wird die Änderung als relativ angesehen.

Beispiel: "+23" erhöht alle Velocities um 23. "23" setzt alle auf 23, "-42" verringert alles um 42.

Achtung! Es wird technisch zugelassen Velocities kleiner als 0 und größer als 127 zu haben. Das ist musikalisch nicht möglich und muss von Hand beachtet und korrigiert werden.

Ein weiterer Befehl ist es Velocities zu "komprimieren". Hierbei werden alle proportional in einen neuen Rahmen gepresst. Zum Beispiel: Velocities 0 (niedrigster), 64 (mitte) und 127 (höchster) werden komprimiert in den Rahmen zwischen 70 und 90. Dann bekommen wir: 70 (niedrigster), 80 (mitte), und 90 (höchster).

Bei all diesen Befehlen werden Nicht-Noten ignoriert.

### 7.7. Kopieren, Ausschneiden, Einfügen

Wie in fast allen Programmen gibt es Kopieren, Ausschneiden und Einfügen bzw. Copy, Cut, Paste. Die üblichen Tastenkürzel werden benutzt: Strg+C, Strg+X, Strg+V.

Ausgewählten Noten werden mit Strg+C in einen Hintergrundspeicher kopiert; mit Strg+X wird die Originalauswahl zusätzlich gelöscht. Da die Auswahl mehrere Ebenen überspannen kann, kann man auch von mehreren Ebenen kopieren.

Mit Strg+V wird nun an der selben Stelle eine Kopie eingefügt. Es ist möglich die Ebene zu wechseln um dort eine Kopie einzufügen.

Fügt man auf der selben Ebene ein überlagern sich die Noten zunächst, sind also "unsichtbar"! Es ist aber nur ein Satz an Noten ausgewählt! Das heißt man kann sofort verschieben.

### 7.8. Änderungen rückgängig machen / Undo & Redo

Strg+Z ("Undo") macht die jeweils letzte Änderung rückgängig.

Strg+Umschalten+Z ("Redo") widerruft das letzte Undo, geht also wieder einen Schritt zurück (…​nach vorne?). Hat man inzwischen selber wieder etwas geändert ist Redo nicht mehr möglich.

Undo ist nur bis zum Zustand des Programmstarts möglich.

## 8. Velocityansicht

Am unteren Rand des Programmfensters befindet sich die Velocityansicht. Sie dient als Übersicht über Lautstärken und ermöglicht außerdem das Verändern von Einzelnoten.

Das besondere an dieser Ansicht ist, dass sie erstens nur Noten anzeigt, und keine anderen Events, und zweitens nur die ausgewählten Noten anzeigt. So können selbst Einzelnoten aus Akkorden genau angesehen werden.

Die Velocityansicht zeigt alle Noten unterhalb ihrer Anfangsposition in der Hauptansicht, scrollt also mit. Jeder Balken ist eine Note. Der Rhythmus wird nicht dargestellt; alle Balken sind gleich breit.

Zeigt der Mauszeiger auf einen Balken ändert das Mausrad die Velocity in Zweierschritten von genau dieser einen Note. Um Velocities aller ausgewählten Noten auf einmal zu veränden muss man jedoch die Menübefehle im "Bearbeiten"-Menü benutzen (s.o.)

## 9. Verschiedenes für fortgeschrittene Benutzer

### 9.1. Parameter und Einstellungen am Anfang des Stückes

Es gibt keine verstecken Daten oder Einstellungen. Alles, was Vico sendet ist auch für den Benutzer zu sehen. Das bedeutet vor allem, dass es keine Starteinstellungen gibt.

Zum Beispiel: Ändert man am Ende eines Stücks für z.B Geige das Instrument auf eine Bratsche (Program Change) und spielt dann von vorne ab wird es immer noch die Bratsche sein, da das verbundene JACK-Instrument keine Nachricht bekommen hat auf die Geige zu wechseln. Man muss also ganz am Anfang die Geige explizit setzen. Ähnliches gilt für Pitchbend oder Control Changes wie Klavierpedal, Modwheel, Expression etc.

### 9.2. MIDI Parameter mit hoher Auflösung (MSB und LSB)

Manche MIDI Parameter sind 14bit, statt der üblichen 7bit. Sie werden aus zwei Werten zusammengesetzt. Das ist standard Midipraxis und muss an anderer Stelle gelernt werden. Für Vico gilt, dass diese Werte auch als zwei getrennte 7bit-Einträge gesetzt werden müssen.

### 9.3. Überlappende Noten

Das MIDI Format verbietet nicht, dass auf ein Note-On ein weiteres Note-On der gleichen Tonhöhe folgt, ohne dass vorher ein Note-Off kam. Ach wenn es das in den meisten Fällen wenig musikalischen Sinn macht ist es erlaubt und von daher von Vico unterstützt. Im Allgemeinen sollte man versuchen sich überlappende Noten der gleichen Tonhöe zu vermeiden (auch auf mehreren Ebenen, wenn diese den selben Midikanal teilen).

### 9.4. "Control Changes sind falsch herum in Vico!"

Schlaue MIDI-Füchse wissen: MIDI Nachrichten haben zwei Parameter (Byte1 und Byte2). Bei Noten ist Byte1 die Tonhöhe und Byte2 die Velocity. Bei Control Changes ist Byte1 der Typ (z.B. Volume) und Byte2 die Intensität. Aber in Vico wird bei CCs Byte2 als Tonhöhe dargestellt, damit man diese hoch und runter schieben kann.

### 9.5. Rundungsfehler: Meine Noten sind an der Falschen Stelle

Mathematik und Computer lassen sich irgendwann nicht mehr austricksen. Wenn bei extremer Skalierung (Strg+Umschalten+Mausrad), wenn Noten sehr stark zusammen gepresst werden, 64tel Noten auf ein 64tel Raster gesetzt werden wollen kommt es evtl. zu Rundungsfehlern und damit zu Fehlpositionierung um einige Pixel bzw. Midi-Ticks. Lösung: Skalierung verändern, Noten "länger" darstellen lassen.

## 10. Installation und Start

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

Falls in den Paketquellen vorhanden bitte direkt bei "vico im Non Session Manager starten" weiterlesen. Falls nicht kann man Vico 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/vico.git`

- Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle: *`./configure --prefix=/usr`

  - Das Standardprefix is /usr/local

- `make`

- `sudo make install`

vico 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 `vico` 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 vico zu starten. Diese sind zum Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.

## 11. Helfen und Entwicklung

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

### 11.1. 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.

## 12. 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.

### 12.1. Übersetzungen

Vico 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 vico 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 vico mit diesem Befehl, Sprachcode ändern, vom Terminal aus:

- `LANGUAGE=de_DE.UTF-8 ./vico -V`