You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

213 lines
10 KiB

:Author: Laborejo Software Suite
:Version: 1.7.3
: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: Table of Contents
:toclevels: 3
= Fluajho
// Don't write in the empty line above line. It will be interpreted as author html tag
For program version 1.7.3
== Introduction
"Fluajho" (with jh as in pleasure) means fluid in Esperanto. It is a simple sf2 soundfont
host/player for Linux. Behind the scenes the Fluidsynth library is at work, hence the name.
This program is feature-complete with version 1.7.1 in 2022.
Further releases will be limited to maintenance and fixing problems.
.sf2 is an old file format for making MIDI signals audible through virtual instruments, although it
is still in moderate use today.
Why does Fluajho exist? There are already many soundfont players for Linux,
most of them even based on Fluidsynth. Fluajho was written for a clearly defined use case:
Load an .sf2 in the New Session Manager (Agordejo) and save the soundfont in the session directory.
This makes it possible to archive the session, for example as a backup or to share it.
If you already have a DAW, host or plugin that reliably saves soundfont files together with the
session you do not need Fluajho.
You can load one soundfont file per Fluajho instance. Each instance holds 16 of the soundfonts
instruments that can be assigned to 16 MIDI channels. All access to MIDI parameters like Volume or
Pan needs to be done via midi control changes.
Finally connect external sequencers, such as Laborejo or Patroneo, through JACK-Midi to play the
instruments. There is only one JACK-Midi input but each of the 16 midi channels has it's own stereo
JACK audio output. Additionally there is a stereo mix output pair.
=== Basic Principles
2 years ago
Fluajho loads exactly one `.sf2` soundfont. A soundfont can contain several instruments, of which
up to 16 can be used simultaneously.
Each of the instruments can be loaded into one MIDI channel. To do this, first select a bank in a
channel (Bank 0 if in doubt) and then a program.
On the first launch a small standard soundfont is loaded, which is General Midi (GM) compatible.
2 years ago
Fluajho itself has no option to play notes. To control the sounds, you send MIDI data to our input
port via JACK. The channel is a property of the midi signal and is already selected in the
sequencer.
Each channel has two separate audio outputs in JACK: Left and Right.
Saving and loading your project is done by the New Session Manager (Agordejo). There you will find
2 years ago
a "Save" button.
== Description of the graphical user interface and its functions
2 years ago
Use your browser's search function to locate the individual letters like [B] and their explanation.
image::overview-english.png[Screenshot with Captions, link="overview-english.png"]
The *[A] File* menu contains "sf2 Soundfont load" (keyboard shortcut: Ctrl+O).
2 years ago
Only one soundfont can be loaded at a time. If you want to use several different soundfonts at
once, just start Fluajho several times. Saving and Closing is also here.
2 years ago
It is also possible to load an .sf2 through drag & drop from your file manager into the Fluajho
window.
The option *[B] Ignore MIDI Bank and Program Messages* only allows instrument changes via the
2 years ago
graphical user interface. It ignores all messages coming in via the JACK Midi connection.
This is sometimes necessary if you are dealing with midi hardware, like keyboards, which send bank
and program changes at startup and break our settings. You can also activate this option as soon as
you have set all instruments, because a program change unfortunately happens faster than one would
think.
The option *[C] Play test sound after selecting a program* can be activated to hear some played
notes right choosing a different instrument through the program change dropdown [G]. The test signal
is *not* played when changing an instrument through an external midi signal.
2 years ago
Channels are numbered *[D] Channel N* . MIDI supports exactly 16 channels, there is no adjustment
possible. More channels of the same soundfont can be obtained by simply starting another Fluajho
instance. Next to the channel is a small rectangle that lights up if MIDI is coming in.
2 years ago
*Play Test [E]* plays some test notes after a click. This can be used even if option [C] is not
currently activated.
The current *[F] Bank* is always displayed as a number. You can choose them from the drop down
2 years ago
list. Only the banks, which actually exist in the current sf2 are listed.
The current *[G] Program* is the instrument. It is displayed with its MIDI number and actual name.
2 years ago
Only the programs present in the sf2 are displayed.+ However, the soundfonts are often wrong in
that they display more instruments than they actually have. In this case you will hear a more or
less random (existing) instrument instead.
If you run Fluajho under Session Management, as intended, tere is no internal way to *close* it.
If you use the function of your window manager like [X], Alt+F4 etc. the graphical user interface
is only hidden.
To really close Fluajho you can use Agordejo (New Session Manager). Here you can
2 years ago
also restore visibility by showing the GUI again.
2 years ago
The current visibility setting is saved. This is because you normally only spend a relatively short
time loading a soundfont. Afterwards, the window would only get in the way.
== Installation and Start
Fluajho is exclusive for Linux. The best way to install is to use your package manager.
If it is not there, or only in an outdated version, please ask your Linux distribution to provide a recent version.
If available in the package repository, please continue reading directly at "Start fluajho from Agordejo / New Session Manager".
If not, you can build Fluajho yourself.
.Build and Install
* Please check the supplied README.md for dependencies.
* You can download a release or clone the git version
** Download the latest version from https://www.laborejo.org/downloads and extract it.
** git clone https://git.laborejo.org/lss/fluajho.git
* Change into the new directory and use these commands:
* `./configure --prefix=/usr`
** The default prefix is /usr/local
* `make`
* `sudo make install`
.Start fluajho from Agordejo (New Session Manager, NSM)
* Run `agordejo`
* Press the `New` button, and enter a name for your piece of music.
2 years ago
* Use the launcher to add `fluajho` to the session.
* Add any compatible programs, e.g. synthesizers.
Please read README.md for other ways of starting fluajho, which are impractical for actual use but can
be helpful for testing and development.
== Help and Development
You can help Fluajho in several ways: Testing and reporting errors, translating, marketing, support, programming and more.
=== Testing and Reporting Errors
If you find a bug in the program (or it runs too slow) please contact us in a way that suits you best.
We are thankful for any help.
.How to contact us
* Report bugs and issues: https://www.laborejo.org/bugs
* Website: https://www.laborejo.org
* E-Mail: info@laborejo.org
* If you see the opportunity and know that a developer will read it also forums, social media etc..
=== Programming
If you want to do some programming and don't know where to start please get in contact with us directly.
The short version is: clone the git, change the code, create a git patch or point me to your public git.
=== Translations
Fluajho is very easy to translate with the help of the Qt-Toolchain, without any need for programming.
The easiest way is to contact the developers and they will setup the new language.
However, here are the complete instructions for doing a translation completely on your own and integrating it into the program.
The program is split in two parts. A shared "template" between the Laborejo Software Suite and the actual program.
The process is the same for both parts, but needs to be done in different directories:
`template/qtgui` and plain `/qtgui`, relative to the root directory, where the fluajho executable is.
Everytime you see "template/qtgui" below you can substitute that with just "qtgui" to translate the other part of Fluajho.
You can add a new language like this:
* Open a terminal and navigate to template/qtgui/resources/translations
* Edit the file `config.pro` with a text editor
** Append the name of your language in the last line, in the form `XY.ts`, where XY is the language code.
** Make sure to leave a space between the individual languages entries.
* Run `sh update.sh` in the same directory
** The program has now generated a new `.ts` file in the same directory.
* Start Qt Linguist with `linguist-qt5` (may be named differently) and open your newly generated file
* Select your "Target Language" and use the program to create a translation
* Send us the `.ts` file, such as by e-mail to info@laborejo.org
You can also incorporate the translation into Fluajho for testing purposes. This requires rudimentary Python knowledge.
* Run the "Release" option in QtLinguists "File" menu. It creates a `.qm` file in the same directory as your `.ts` file.
* Edit `template/qtgui/resources/resources.qrc` and duplicate the line `<file>translations/de.qm</file>` but change it to your new .qm file.
* run `sh buildresources.sh`
* Edit `engine/config.py`: add your language to the line that begins with "supportedLanguages" like this: `{"German": "de.qm", "Esperanto: "eo.qm"}`
** To find out your language string (German, Esperanto etc.) open the `python3` interpreter in a terminal and run the following command:
** `from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())`
To test the new translation you can either run the program normally, if your system is set to that language. Alternatively start fluajho via the terminal:
* `LANGUAGE=de_DE.UTF-8 ./fluajho -V --save /dev/null`