Author: Laborejo Software Suite

# Fluajho

Laborejo Software Suite

Für Programmversion 1.3

## 1. Benutzung

Schön, dass du dich für Fluajho entschieden hast. Fluajho ist ein Sampler für sf2 Soundfonts. Dies ist ein altes Dateiformat um MIDI-Signale durch virtuelle Instrumente hörbar zu machen.

Du kannst jeweils eine Soundfontdatei pro Fluajho-Instanz laden, was bedeutet das aus dieser Datei jeweils 16 Instrumente gleichzeitig in MIDI Kanäle eingeordnet werden können.

"Fluajho" (mit jh wie in Jalousie) heißt Flüssigkeit auf Esperanto. Denn im Hintergrund Programmes arbeitet die Programmbibliothek "Fluidsynth".

### 1.1. Anwendungszweck und Zielgruppe

Es gibt viele Soundfontsampler für Linux, die meisten auf Fluidsynthbasis. Fluajho wurde für einen klar umrissenen Anwendungsfall geschrieben: Ein .sf2 im Non Session Manager laden und das Soundfont im Sessionverzeichnis mit abzuspeichern. Das ermöglicht es die Session zu archivieren, etwa als Backup oder um sie weiterzugeben.

### 1.2. Schnellstart

Um die wichtigsten Funktionen und Arbeitsabläufe kennenzulernen ist dieses Video erstellt worden.

Your browser does not support the video tag.

Oder auf Youtube

### 1.3. Grundlagen

Fluajho läd genau ein `.sf2` Soundfont. Ein Soundfont kann mehrere Instrumente enthalten, davon können bis zu 16 gleichzeitig benutzt werden.

Jeweils ein Instrument kann in je einen MIDI Kanal geladen werden. Dazu wählt man in einem Kanal zuerst eine Bank aus (im Zweifelsfall Bank 0) und dann ein Programm.

Beim ersten Aufruf wird ein kleines Standard Soundfont geladen, welches General Midi (GM) kompatibel ist.

Fluajho selbst hat keine Möglichkeit Noten abzuspielen. Um die Klänge anzusteuern, sendet man per JACK Mididaten in unseren Eingangsport. Der Kanal ist eine Eigenschaft des Midisignals und wird bereits im Sequencer ausgewählt.

Jeder Kanal hat zwei eigenene Audioausgänge in JACK: Links und Rechts.

Das Speichern und Laden deines Projektes wird durch den Non Session Manager erledigt. Dort befindet sich ein "Save" Knopf.

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

Benutze die Suchfunktion deines Browsers um nach den einzelnen Buchstaben wie [B] und deren Erläuterung zu suchen.

Im [A] Datei Menü befindet sich nur der Befehl "sf2 Soundfont laden" (Tastaturkürzel: Strg+O). Es kann jeweils nur ein Soundfont zur gleichen Zeit geladen werden. Möchtest du mehrere verschiedene Soundfonts auf einmal benutzen starte Fluajho einfach mehrmals.+Es ist ebenfalls möglich ein .sf2 mit Drag&Drop aus einem Dateimanager irgendwo in das Fluajhofenster zu ziehen.

Bei [B] steht der Name der momentan geladenen Datei.

Die Option [C] Ignoriere MIDI Bank und Program Nachrichten lässt nur noch Instrumentenänderungen über die grafische Benutzeroberfläche zu. Sie ignoriert alle Nachrichten, die über die JACK Midi Verbindung herein kommen.+ Das ist manchmal nötig, wenn man es mit Midi-Hardware, wie Keyboards, zu tun hat die beim Start Bank- und Programchanges schicken und damit unsere Einstellungen kaputt machen. Du kannst diese Option aber auch einfach so aktivieren sobald du alle Instrumente eingestellt hast, denn ein Programm-Change passiert leider schneller als man denkt.

Die Kanäle sind mit [D] Channel durchnummeriert. MIDI unterstützt genau 16 Kanäle, hier gibt es keine Einstellmöglichkeit. Mehr Kanäle mit dem gleichen Soundfont erhält man, indem man Fluajho einfach noch einmal startet.

Ein Klick mit der mittleren Maustaste (Scrollrad) auf einen Kanal spielt eine kurze Testmelodie ab, damit man auf die schnelle ein ausgewähltes Instrument vorhören kann.

Die aktuelle [E] Bank wird immer als Nummer angezeigt. Man kann sie durch Auswahl in der Liste ändern. Es werden nur die Bänke angezgeit, die im aktuellen sf2 vorhanden sind.

Das aktuelle [F] Program ist das tatsächliche Instrument. Es wird mit seiner MIDI Nummer und seinem tatsächlichen Name angezeigt. Es werden nur die Programme angezeigt, die im aktuellen sf2 vorhanden sind.+ Oft sind die Soundfonts allerdings falsch, indem sie mehr Instrumente anzeigen, als sie tatsächlich haben. In diesem Fall wird man statt dessen irgend ein anderes (vorhandenes) Instrument hören.

Es gibt keine interne Möglichkeit Fluajho zu schließen. Benutzt man die Funktion seinen Fenstermanagers wie [X], Alt+F4 etc. wird die grafische Oberfläche lediglich versteckt.+ Um Fluajho 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. Das hat den Grund, dass man normalerweise nur relativ kurze Zeit damit verbringt ein Soundfont zu laden. Anschließend wäre das Fenster nur im Weg.

## 3. Installation und Start

Fluajho ist exklusiv für Linux. Am besten installierst du Fluajho über deinen Paketmanager. Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitte deine Linuxdistribution Fluajho bereitzustellen.

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

- Wechsele in das neue Verzeichnis und benutze diese Befehle: *`./configure --prefix=/usr`

  - Das Standardprefix is /usr/local

- `make`

- `sudo make install`

fluajho im Non Session Manager (NSM) starten

- Starte `non-session-manager`

- Knopf `New`, gib einen Namen für dein Musikstück ein.

- Knopf `Add Client to Session`, gib hier `fluajho` ein, kleingeschrieben.

- Nochmal Add Client, diesmal `jackpatch`.

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

## 4. Helfen und Entwicklung

Du kannst Fluajho in vielen Art helfen: Testen und Fehler melden, übersetzen, marketing, anderen Nutzern helfen und schließlich programmieren.

### 4.1. Testen und Programmfehler

Falls du einen Fehler im Programm entdeckst (oder es zu langsam läuft) melde dich bitte bei auf eine Art und Weise, die dir am besten passt.

Kontaktmöglichkeiten

- Webseite: https://www.laborejo.org

- E-Mail: info@laborejo.org

- IRC: #laborejo auf dem Server irc.freenode.org

- Wenn du die Gelegenheit siehst und weist, dass ein Entwickler es lesen wird meinetwegen auch Foren, Socialmedia etc.

## 5. Entwicklung

Falls du an der Entwicklung interessiert bist melde dich am besten direkt bei uns (s.o.) Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns deine git URL zukommen lassen.

### 5.1. Übersetzungen

Fluajho 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.

- Öffne ein Terminal und navigiere ins Patroneo Verzeichnis

- Im Patroneo Verzeichnis: `cd gui/translations`

- Bearbeite die Datei `config.pro` mit einem Texteditor

  - Hänge in der 2. Zeile den Namen deiner Sprache an, in der Form `XY.ts`, wobei XY der Sprachcode ist.

  - Achte darauf ein Leerzeichen zwischen den einzelnen Sprachen zu lassen

- Führe `pylupdate5 config.pro` aus.

  - Das Programm hat nun eine neue `.ts` Datei im `translations` Verzeichnis generiert

- Starte Qt Linguist mit `linguist-qt5` (kann evtl. anders heißen) und öffne von dort deine neu generierte Datei

- Wähle deine "Target Language", also Zielsprache, aus und benutze das Programm um eine Übersetzung anzufertigen

- Sende uns 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 kannst du 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 deine `.ts` Datei.

- Öffne die `patroneo` Starterdatei im Texteditor

  - Scrolle nach ganz unten, dort wird die Sprache eingestellt.

  - Um deinen Sprachstring herauszufinden (German, Esperanto etc.) entferne die # Raute aus der bereits vorhandenen Zeile `#print (language)`. Starte NSM aus einem Terminal, starte Patroneo und der Sprachstring wird dort ausgegeben (man muss ein bischen suchen)

  - Am Ende der Datei ist ein Dictionary `supportedLanguages`. Füge deine Sprache hinzu. z.B. `{"German":"de.qm", "Esperanto:"eo.qm"}`

### 5.2. Übersetzungen

Fluajho 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 einrich

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 fluajho 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:

- Öffne ein Terminal und navigiere zu template/qtgui/resources/translations

- Bearbeite die Datei `config.pro` in einem Texteditor.

  - Hänge in der letzten Zeile den Namen deiner Sprache an, in der Form `XY.ts`, wobei XY der Sprachcode ist.

  - Achte darauf ein Leerzeichen zwischen den einzelnen Sprachen zu lassen

- Führe `sh update.sh` im selben Verzeichnis aus.

  - Das Programm hat nun eine neue `.ts`-Datei im Verzeichnis erstellt.

- Starte Qt Linguist mit `linguist-qt5` (kann evtl. anders heißen) und öffne von dort deine neu generierte Datei

- Wähle deine "Target Language", also Zielsprache, aus und benutze das Programm um eine Übersetzung anzufertigen

- Sende uns 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 kannst du 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 deine `.ts` Datei.

- Bearbeite `template/qtgui/resources/resources.qrc` kopiere die Zeile `<file>translations/de.qm</file>` , aber änder das Länderkürzel zu deinem neuen.

- Führe `sh buildresources.sh` aus

- Bearbeite `engine/config.py`: Füge deine Sprache hinzu. z.B. `{"German":"de.qm", "Esperanto:"eo.qm"}`

  - Um deinen Sprachstring herauszufinden öffne den `python3`-Interpreter im Terminal und führe aus:

  - `from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())`

Um deine neue Übersetzung zu testen starte dein Programm, falls dein System bereits auf diese Sprache eingstellt ist. Ansonsten starte fluajho mit diesem Befehl vom Terminal aus:

- `LANGUAGE=de_DE.UTF-8 ./fluajho -V --save /dev/null`