# Fluajho

Laborejo Software Suite

Für Programmversion 1.4

## 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 installieren Sie Fluajho über deinen Paketmanager. Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre 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`

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

  - Das Standardprefix is /usr/local

- `make`

- `sudo make install`

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

## 4. Helfen und Entwicklung

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

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

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

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

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

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

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