I felt like making this as I think it may help out quite some people out there. In this tutorial I will cover how to get Synthesia running in Linux, but also how to get a built-in output (softsynth). This method does not require JACK, as some other softsynths probably do. The advatage of this method is that you can use SoundFonts and you avoid using the awful Timidity.
Note This project is not appliable on the RPi as mentioned in their FAQ (You can't run Wine on it). Even if it would be possible, the graphics should be reduced in such a way it won't be that fun anymore to utilize it. But this doesn't mean you cannot run it on Debian.
Note (For the experienced Linux users)
- Synthesia (obviously)
Obtain the non-installer, the latest development version from the development section or the installer version of Synthesia (if you choose for the last one, make sure you install it with PlayOnLinux)
This is the Windows environment Synthesia will be running in. If you haven't installed it yet, you can either obtain it with your softwaremanager-application or right from yum/apt-get.
You can install FluidSynth the same way you did with wine, just type "fluidsynth" instead of "wine".
Also downloadable the terminal-way. This is also available in the Ubuntu Software Center.
- (optional) PlayOnLinux
Front-end for wine. Manages installed apps, this isn't so necessary (I like it without, but if you want to use install-versions of Synthesia this may come in useful).
- With apt-get (for Ubuntu and variants)
Code: Select all
sudo apt-get install wine fluidsynth qsynth
- With yum (Fedora, CentOS, Red Hat Enterprise, and other variants)
Code: Select all
sudo yum install wine fluidsynth qsynth
Step 1 Obtain required software
Install wine, fluidsynth and Qsynth. Then download Synthesia, save it to a folder.
Note If you have the option, stick with Wine 1.4.1. I have tested the (unstable) development version 1.5.16, everything works just fine, except that all the text in the game is twice as small as it should be, and also it is in some other font than Trebuchet (Arial?). I have reported this over at the WineHQ app-database testresults. To downgrade Wine to 1.4.1, checkout the downloads section at Launchpad. (download for ubuntu)
Step 2 Configure WINE so that Synthesia is able to see your MIDI files stored on physical drive
Go to Applications > Wine > Configure Wine (or open terminal and execute winecfg)
Then go to the Drives tab and add a drive which represents the folder you have your MIDIs stored in (let's say f.e. drive S:\) and close it.
Step 3 Optional Configure PlayOnLinux
So if you want an installed version of Synthesia, go ahead and install it with PlayOnLinux. Download and install PlayOnLinux.
Open it, go to Install. Over there a new window will appear. In the bottom left, do "Install a non-listed program" (do NOT select Synthesia from the programs list, as the installer may install it in some other way. Follow the wizard, and after it is installed it will appear in the list (if you have made a shortcut to Synthesias synthesia.exe). From now on, you can open Synthesia from here.
Step 4 Set up FluidSynth through Qsynth
Open Qsynth. (or execute qsynth from terminal)
Click Setup. Give your softsynth a name (e.g. fluidsynth), Enable MIDI Input, put as "MIDI Driver" alsa_seq if it isn't already. Put "MIDI Channels" on 16. It should look like this:
Note If you like, you can adjust the output of the SoundFont right in the main window of Qsynth.
In Qsynth, press "Start" if the synthesizer hasn't started already (you can tell it is already started if it says Restart on the same button where it should say Start)
Go to where you saved Synthesia, open it in Wine (If installed in PlayOnLinux, open it from there). In Synthesia, go to the MIDI settings and you will see a weird called "Synth Input Port (29527:0)" or something similar. That's fluidsynth, you need that one.
Feel like resizing Synthesia or running it windowed? I personally run Wine windowed (Wine configurations > Graphics tab), therefore being able to drag Synthesia around but it is also possible to make Synthesia itself windowed through its own Configuration Manager.
Congratulations, you should now have properly set up Synthesia in Linux.
Note To keep your settings on exit, keep pressing [Esc] until Synthesia closes. Also, if you restart Qsynth, the engine may have a different name and will require you to set it up again as MIDI Out.
If you are using the GNOME workspace (not sure if it works on KDE or others) and are having Synthesia running in full-screen in a Wine emulating window, hover with your mousecursor over the window titlebar of the Wine window, and press the scrollwheel of your mouse to the left (if your mouse is capable of), you'll see that the window will become opaque. You can put a nice picture in the background if you are working so. You can also use Compiz, just download the packages and configure it so that you can make the Wine window opaque.
- Multiple instances of FluidSynth
In Qsynth, you can have multiple synths running at the same time. You can also have multiple synths selected in Synthesia, so you can do some crazy things with this. You can even route them to Jack and then to MuseScore, Rosegarden, etc.
- Fraps alternative
If you like to record Synthesia in Wine, you can use glc or other apps like kazam (again, to install these, simply do 'sudo apt-get install PACKAGE' or if you have yum, do 'sudo yum install PACKAGE'). If you want to get the current FPS, run Wine thru a terminal and do a 'export WINEDEBUG=+fps' which will return it. Or you can use Synthesias built-in FPS counter by pressing [F6].
- I have trouble opening Qsynth
Are you sure you have python-qt4 installed? Copy what is in between the quotes "sudo yum install python-qt4||sudo apt-get install python-qt4" open up a terminal window, and paste it in there with [Ctrl]+[Shift]+[V] then press [Enter] if neccessary to run the command if it hasn't already.
- I have no sound
Have you set the sound output in the Qsynth settings to alsa (check step 4)? Have you selected it as MIDI output in Synthesia? Check you sound hardware.
- The sound ouput is aweful
Try using a better SoundFont (here are some). You can modify the output a little with the Reverb and Chorus in the main screen of Qsynth. Just make them Active (the checkbox for that is beneath its modules) and off you go.
- FluidSynth doesn't show up in Synthesia
Are you sure fluidsynth is running? Press the Start button in Qsynth if it isn't already. Then open Synthesia, there should be an odd named MIDI port in the list of MIDI devices. That must be it.
- The text is rendered too small/in a different font than it used to be
In the development (as I am writing this) version 1.5 of Wine, the text gets a bit rendered weird. Downgrading the package to 1.4.1 should do the trick. If you are unable to downgrade, try forcing version 1.4.1 as specific pre-installed version and apply changes afterwards as an update of the packages.
For the experienced users, try and see if you can get Microsoft's own gdiPlus to work (cross-post link)
- There is too much lag
Is your hardware able to run Synthesia as if running it on Windows on the same machine? Are you sure your CPUs aren't overloaded because of other applications? Are you using an in-development version of Wine? Have you configured Synthesia and/or Qsynth and/or FluidSynth this way? Perhaps it is a bug in Synthesia?
- Synthesia is glitchy/blacked out after hibernation/sleep
There are some distros out there that make Synthesia glitch after a hibernation. IIRC Xubuntu did this in the past.
Synthesia on Linux with Wine, JACK, and ALSA
Synthesia Wiki page: Linux
1. MIDI in WINE at WineHQ: http://wiki.winehq.org/MIDI
2. Fluidsynth at SourceForge: http://sourceforge.net/apps/trac/fluidsynth/
3. Qsynth at SourceForge: http://qsynth.sourceforge.net/qsynth-index.html
4. PlayOnLinux: http://www.playonlinux.com/en/
Please refer to the documentation of your Linux distro if the commands and/or actions to take in this guide differ from how it should be done on your distro. I am not responsible for loss or damage of any dependent system packages. I confirm that following the steps in this guide will set up Synthesia on Linux properly using Ubuntu 12.10 x64, Synthesia r2014 ran in wine 1.4.1 and qsynth 0.3.6 with fluidsynth 1.1.5. I also confirm running the Synthesia 0.8.4 installer through playonlinux 4.1.1 works properly as well, if executed as 'not-listed program'.