Linux FAQ

From Renoise User Manual
Revision as of 13:02, 9 October 2019 by Achenar (talk | contribs)
Jump to: navigation, search

Linux FAQ

Prerequisites

Renoise for Linux should work out-of-the-box by decompressing the archive into a correctly installed Linux-box, where X.org is installed and audio playback is confirmed to work through ALSA.

Checking the Graphical Environment

If you are using Linux in a graphical environment you should have X.org installed and working (X.org runs under a desktop environment such as GNOME, KDE or XFCE, so if you're using any of those then you also have X.org installed). Please avoid compositing window managers like Compiz or Beryl (or the Fusion combination) as they consume a lot of CPU resources, especially older versions which can cause problems with Renoise in Fullscreen.

Checking the Audio Capabilities

ALSA is the built-in Linux device driver for soundcards. To check if it is installed, open a terminal and type the following:

$ aplay -l
[enter]

This will list all available audio playback devices grouped by soundcard. To get a list of all available capture/recording devices, type the following:

$ arecord -l
[enter]

This lists all available capture/recording audio devices grouped by soundcard. If there is no list then it's possible that you don’t have a supported soundcard in you system, or perhaps no soundcard at all. In this case you should consult the ALSA documentation with regards to configuring your hardware under Linux. If there is no list but instead a “Command not found” error, it's possible that ALSA either isn’t installed or the installation is broken. Again, to fix this you will need to consult the ALSA documentation.

ALSA also provides MIDI I/O capabilities, which can be checked by opening a terminal and typing the following:

$ aplaymidi -l
[enter]

This will list all available MIDI playback devices. To get a list of all available MIDI recording ports, type the following:

$ arecordmidi -l
[enter]

This lists the available recording audio ports. If there is no list then you should consult the ALSA documentation with regards to MIDI I/O.

Checking the JACK Audio Capabilities

Renoise can connect to a JACK Transport server through different backends. At the time of writing, those supported are: ALSA, Core Audio, Port Audio, Free Bob, OSS and a 'dummy' backend. Please ensure that your chosen backend is correctly installed before continuing. To check if JACK is installed and working with your backend, open a terminal and type the following:

$ jackd -d your_backend —help
[enter]

This will list all available JACK server options provided by the audio backend. If there is no list, but you get a "jackd: unknown driver [your_backend]" error message, then JACK does not support that particular backend. If you get a "Command not found" error, it's possible JACK isn’t installed or the JACK installation is broken. If JACK was installed from a distribution package then check exactly how was packaged. If you compiled JACK by yourself then check if you have correctly configured everything.

A More Technical Checkup

Renoise for Linux has the following dependencies:

GCC 4.X libs, X.org 7.1+, preferably real-time kernel

  • libstdc++6 – GNU Standard C++ Library 4.2 or newer
  • X.org 7.1 – X Windows System 7.1 or newer
  • libasound2 – ALSA library 1.0 or newer

Note that when running on a 64-bit Linux environment, 32-bit compatible equivalents of the above dependencies should be installed


Renoise Single User Installation

Following the instructions of this section will install Renoise for Linux in a directory under the user home as a 'Single User Installation'. First download Renoise into a directory where you have read/write access (your home directory '~' should be a good place and the example below assumes this is what you've done). After you have acquired the Renoise archive, open a terminal and type the following commands:

$ cd
[enter]
$ tar xvf rns_x_y_z_reg.tar.gz
[enter]

Once the decompression has ended, the 'rns_x_y_z' directory is ready to be entered:

$ cd rns_x_y_z_reg
[enter]

Now we are ready to try running Renoise:

$ ./renoise
[enter]

The Renoise splash screen should pop up while the terminal is filled with log messages. If this has not happened, please see the troubleshooting section.

Renoise System-Wide Installation

Following the instructions of this section will install Renoise for Linux system-wide so all users have access to it. First download Renoise into a directory where you have read/write access (your home directory '~' should be a good place and the example below assumes this is what you've done). After you have acquired the Renoise archive, open a terminal and type the following commands:

$ cd
[enter]
$ tar xvf rns_x_y_z_reg.tar.gz
[enter]

Once the decompression has ended, the 'rns_x_y_z' directory is ready to be entered:

$ cd rns_x_y_z
[enter]

To install Renoise system-wide you should use the script provided in the installation directory. Note that to complete the system-wide installation you must have root privileges. The following instructions assume you use sudo (for Ubuntu users and users of distros derived from Ubuntu):

# sudo sh install.sh
[enter]

The system will ask for your user password (the one you use to log into the system). After entering the password, messages will be displayed regarding the install script, followed by a confirmation that the installation was successful (if not see the troubleshooting section).

Now we are ready to try running Renoise:

$ renoise
[enter]

The Renoise splash screen should pop up while the terminal is filled with log messages. If this has not happened, please see the troubleshooting section.


Troubleshooting

Performance Problems

Audio performance problems can occur in Linux for a variety of reasons. Some of the symptoms include: crackling/stuttering audio, audio with noise, or excessive Xruns. There is a class of luxury window managers like Compiz and Beryl that consume a hell of a lot of priority time from your CPU resources. Some users have reported drastically improved performance when shutting these options down. If you want the best audio performance it is recommended not to use these type of compositing window managers, instead use a lighter window manager like Openbox. Consult the documentation of your Linux distribution and the Linux community on how to modify your distribution for best-audio performance. More information and ongoing discussion.

Performance Problems With HDA/Intel Soundcards

A lot of various laptops are geared with an HDA/Intel soundcard and their buffering capabilities seem to be less than the average soundcard. If you have such a soundcard, then you will have to set the period amount for the ALSA driver in the Renoise preferences to 3 periods. If your Renoise version is lower than version 2.0, you are recommended to upgrade. In Renoise <= 1.9.1, you can only use Renoise decently with such a soundcard by setting up the Jack deamon and setting the periods/buffer to 3 in the Jack configuration.

Jack Timeout Problems When Starting Renoise

When starting up Renoise, before starting Jack there are situations where Jack shuts down immediately. The source of the problem:When Ubuntu software audio mixing (E Sound, ESD Enlightment Sound Daemon) is enabled, ALSA is always reported as being busy under Renoise. To fix this, disable the Esound mixing:system > preferences > sound selecting ALSA as device for everything, then have disabled E Sound mixing in the “Devices” tab. This way Pulse Audio is totally bypassed and can even be uninstalled. Not the cleanest solution, but works.

Setting Up Third Party Plugins

Renoise supports LADSPA plugins and VST plugins compiled for Linux. According to the LADSPA specifications, Renoise will look for LADSPA plugins by searching in the paths stored in the LADSPA_PATH environment variable. If the LADSPA_PATH variable isn’t set, Renoise will default to the paths /usr/lib/ladspa, /usr/local/lib/ladspa and ~/.ladspa. To check the value of the LADSPA_PATH open a terminal and type the following:

$ echo $LADSPA_PATH [enter]

If the result is a series of paths separated by “:”, so the plugins were searched into those directories. Check if your LADSPA plugin are stored in any of those directories. If the result is a empty line means LADSPA_PATH variable isn’t set. In this case Renoise will look for plugin in the default paths, so you have to check if your LADSPA plugins are stored in any of those directories. If you have found that your LADSPA plugins aren’t stored in any of the search paths, you can proceed in three ways: Move your LADSPA plugins in any of the search paths. Add the path where you have stored your LADSPA plugins to the LADSPA_PATH environment variable. To do this open a terminal and type the following:

$ echo LADSPA_PATH=/path/to/my/ladspa:\$LADSPA_PATH >> ~/.bash_profile
[enter]
$ echo export LADSPA_PATH >> ~/.bash_profile
[enter]

Start Renoise with a custom LADSPA_PATH environment variable available only for that Renoise run. To do this open a terminal and type the following:

$ LADSPA_PATH=/path/to/my/ladspa renoise
[enter]

(the command above assumes that you have Renoise in the path)

Setting up the VST plugins follows a procedure similar to LADSPA. There is no real VST specifications for Linux so we have chosen an environment variable based solution. Renoise will look for VST plugins by searching in the paths stored in the VST_PATH environment variable. If the VST_PATH variable isn’t set, Renoise will default to the paths /usr/lib/vst, /usr/local/lib/vst and ~/.vst. To check the value of the VST_PATH open a terminal and type the following:

$ echo $VST_PATH[enter]

If the result is a series of paths separated by “:”, so the plugins were searched into those directories. Check if your VST plugin are stored in any of those directories. If the result is a empty line means VST_PATH variable isn’t set. In this case Renoise will look for plugin in the default paths, so you have to check if your VST plugins are stored in any of those directories. If you have found that your VST plugins aren’t stored in any of the search paths, you can proceed in three ways:

Move your VST plugins in any of the search paths. Add the path where you have stored your VST plugins to the VST_PATH environment variable. To do this open a terminal and type the following:

$ echo VST_PATH=/path/to/my/vst:\$VST_PATH >> ~/.bash_profile
[enter]:
$ echo export VST_PATH >> ~/.bash_profile
[enter]

Start Renoise with a custom VST_PATH environment variable available only for that Renoise run. To do this open a terminal and type the following:

$ VST_PATH=/path/to/my/vst renoise
[enter]

(the command above assumes that you have Renoise in the path)

Because VST specifications license isn’t compatible with GPL, is possible you can find VST plugins for Linux only in binary form. ALWAYS check if the VST plugin you have installed meets all its dependencies! (to make this check see the “Checking what’s wrong” section below)

Plugins: Why Does Renoise Not List My Plugin?

Renoise cannot list your plugins for three reasons:

  1. Your plugins aren’t stored in any of the search path specified by the environment variables (see the “Setting up third parties plugins” section about this).
  2. Your plugin are buggy so they crashed (possible causes can be unmet dependencies or real buggy plugin)and Renoise black-listed them.
  3. While your plugin is made on a Renoise supported technology and works with other hosts, Renoise never list it because its structure isn’t supported. This could happen, for example, with LADSPA plugins that have no audio outputs port or which are not capable of Realtime processing. Renoise never support them at the moment.

Plugins: My LADSPA Plugin is in the Wrong List

Renoise always treats a LADSPA plugin as it was an effect, even when the plugin is a generator (e.g.: an oscillator). Cause of the LADSPA specification, Renoise cannot identify the mean of a plugin control port, so it can’t say - for example - which is the frequency control port or the trigger port. Also note that Renoise cannot try to guess the mean by matching a word in the port description.

Renoise: Checking What’s Wrong

You have decompressed the archive, you run the Renoise executable but nothing works. The following instructions can help you solving your problems. Open a terminal and go into the directory where you have decompressed Renoise by typing the following:

$ cd
[enter]
$ cd rns_x_y_z_reg
[enter]

Let’s look if the Renoise executable links to all the required libraries. Type this command:

$ ldd renoise
[enter]

The ldd command should get an output like this (if Renoise correctly finds all the required libraries):

  • linux-gate.so.1 => (0xffffe000)
  • librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7f32000)
  • libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7f2e000)
  • libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7f17000)
  • libX11.so.6 => /usr/lib/libX11.so.6 (0xb7e2b000)
  • libasound.so.2 => /usr/lib/libasound.so.2 (0xb7d65000)
  • libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7c7a000)
  • libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7c54000)
  • libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7c49000)
  • libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7b01000)
  • libXau.so.6 => /usr/lib/libXau.so.6 (0xb7afe000)
  • libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7af9000)

With the exception of the libraries linux-gate.so.1 and /lib/ld-linux.so.2, all the other libraries points to a physical file located in the path on the right of the “=>” separator. If any of those libraries has no counterpart to a physical file here’s a problem (NOTE: never care if your numbers between parenthesis or the library paths are different from mine). If some library has no counterpart to a physical file you can fix it in two ways:

  1. if you are sure you have those libraries correctly installed you must be sure that they are on the path;
  2. the required libraries aren’t installed so you have to install them. If you are in case 2 the following table shows you in which package you can find the required libraries (package names are quite distro-specific, we will create documentation for all the distro where we have knowledge of):
  • Libraries librt.so.1, libdl.so.2, libpthread.so.0, libc.so.6 and libm.so.6 are available in the libc6 package
  • Library libasound.so.2 are available in the libasound2 package
  • Library libstdc++.so.6 are available in the libstdc++6 package
  • Library libgcc_s.so.1 are available in the libgcc1 package
  • Library libXau.so.6 are available in the libxau6 package
  • Library libXdmcp.so.6 are available in the libxdmcp6 package
  • Library libX11.so.6 are available in the libX11–6 package
  • Packages libc6, libgcc1, libxau6 and libxdmcp6 are dependencies of the package xserver-xorg which is required to have the X.org graphical environment.
  • Package libasound2 is a dependency of the package alsa-utils which is installed to have the ALSA sound capabilities.


FAQ

Renoise

Why Renoise isn’t able to play when other applications are playing (or after other application have used the audio resource)?

As far as we know, in many desktop manager an audio manager is provided (ex. aRts on KDE or ESD in GNOME). The audio manager often locks the audio resource for it’s own use (this may happen while and after an application used it for playback). So, to solve the problem try disabling the audio manager and set all your audio application to use ALSA directly: ALSA is capable of sharing the audio resource out-of-the-box.

Renoise gives out of memory errors when loading particular songs / samples while i have enough memory

Be sure that you have not restricted your virtual memory settings on any global level in Linux or that no virtual memory restrictions are set. You can check out your virtual memory settings by entering ulimit -a in a console. If you want to raise virtual memory just specifically for Renoise you could set this by entering the following command:

$ulimit -v [amount of memory in bytes] && renoise[enter]

I have made a Single User Renoise installation. How can I set up desktop integration for my installation?

You can setup the desktop integration even for Single User Renoise installations with few steps. Open a terminal and go into the directory where you have extracted the Renoise archive and type the following:

$ cd Installer[enter]

Now you have to create a new desktop entry for Renoise. Start using the provided desktop entry as base; write the following:

$ cp renoise.desktop renoise_single.desktop[enter]

Now the boring stuff: editing the content of the desktop entry. Open the file renoise_single.desktop with your preferred editor. You have to modify two lines. Change the line that says:

Exec=renoise %f

to

Exec=/home/<yourloginname>/path/to/renoise %f

and change the line that says:

Icon=/usr/local/share/icons/renoise.png

to

Icon=/home/<yourloginname>/.local/icons/renoise.png

Save and close the editor. Let’s now install the entries in desktop environment. Back into the terminal and type the following:

$ cd xdg-utils
[enter]
$ ./xdg-icon-resource install —novendor —size 48 —context apps ../renoise.png
[enter]
$ ./xdg-icon-resource install —novendor —size 48 —context mimetypes ../renoise.png application-x-renoise-module
[enter]
$ ./xdg-icon-resource install —novendor —size 48 —context mimetypes ../renoise.png application-x-renoise-rns-module
[enter]
$ ./xdg-desktop-menu install —novendor ../renoise.desktop
[enter]

Now your local installation of Renoise is integrated in your user desktop environment.

How can I run a stand-alone Renoise environment?

Renoise does not need a window or desktop environment to run. This gives you the possibility to run Renoise in a stand-alone environment. The primary advantage is that quite all the system resource are dedicated to Renoise (is that enough?). If you are using a graphical login manager, a smart way to get a stand-alone Renoise environment is setting up a dedicated Renoise session. Prerequisites: you need a Renoise installed system-wide and you should be able to get root privileges. Let’s start. Open you favorite editor and write the following text in it:

[Desktop Entry]
Encoding=UTF-8
Name=Renoise
Comment=This session starts Renoise stand-alone
Exec=/path/to/renoise
Icon=
Type=Application

For example if Renoise is installed in /usr/local/bin the text above looks like this:

[Desktop Entry]
Encoding=UTF-8
Name=Renoise
Comment=This session starts Renoise stand-alone
Exec=/usr/local/bin/renoise
Icon=
Type=Application

Save this file naming it renoise.desktop. Open a terminal and get root privileges. Copy renoise.desktop file into the xsessions directory (it is usually located in /usr/share/xsessions/). Now, when you log into your machine you will be able to change the session to “Renoise” and run it stand-alone. While starting Renoise I got exceptions “Database error (File: … ): not a writeable directory”. What happened ? Renoise generate that exception when it doesn’t have write permission in its configuration directory (usually ~/.renoise). Renoise can lose the write permission in two known ways: (1) if Renoise was set SUID it will create all its directories and configuration files having root as owner; (2) you were root the first time you have run Renoise - so it created the directories and configuration file having root as owner - but you usually run Renoise as your standard user. To fix this problem check first if the owner of .renoise directory and all the files and directories stored there have the correct owner. You can do that by running this commands in a terminal:

$ cd
[enter]
$ ls -laR .renoise/
[enter]

A list of all the files in .renoise is displayed. Every line look this way:

-rw-rw-r— 1 <owner> <group> 2764 Oct 2 16:24 filename.ext

Check if all the <owner> field (the 3rd column) is equal to your username for all the files and directories. If you find some file with a different owner (usually, in the known scenario, it is set to ‘root’) change the owner of that files and/or directories. A way to change owner very fast is issuing this command on the terminal:

$ cd
[enter]
(becoming root)
$ su
[enter]
[enter the root password and press enter]
# chown -R your_username:your_username .renoise/
[enter]

On Ubuntu you can do the same this way:

$ cd$ sudo chown -R your_username:your_username .renoise/
[enter your user password and press enter]

Now the exception should disappear!

Realtime Threads

Ho do I configure Linux to enable Realtime Threads for ALSA or JACK?

To allow Renoise to create realtime threads, which are required for low latencies with ALSA or JACK, you have to edit the /etc/security/limits.conf file. A realtime kernel does NOT help here, does not set the required options automatically! To enable RT thread creation via PAM open the /etc/security/limits.conf file as root (or via sudo). Then somewhere at the end of the file add:

YOURUSERNAME - rtprio 99
YOURUSERNAME - nice −10

Alternatively you could also create a group “Audio”, add your user to that group, and use “@Audio” instead of “YOURUSERNAME”.Save. Log Out. Login. Then it should work. To make sure that it works, launch Renoise, select ALSA and make sure the “Realtime threads” option is on. You will get a friendly warning if RT creation failed. You can find a more detailed explanation about PAM and low latencies in Linux here http://tapas.affenbande.org/wordpress/?page_id=73.

See https://wiki.linuxaudio.org/wiki/system_configuration for more information and tips on how to build and tweak a real-time audio Linux workstation.

JACK

Got playback problems (crackles, drops, high latencies, etc.) when Renoise plays thru JACK. What I can do?

We have seen that many playback problems while Renoise is using JACK are often related to JACK server settings. First of all try running the JACK server in non-realtime mode: to do this remove the -R option, if you run it on command-line, or - if you run qjackctl - uncheck the “Realtime” checkbox in “Setup” → “Settings”. The JACK realtime option should be enabled only if you have a kernel with the realtime patch.

LADSPA

Renoise doesn’t list my plugin. Why?

Renoise never list a LADSPA plugin in the following cases:

  • The plugin has zero input and zero output (so it has control ports only);
  • The plugin isn’t real-time capable;
  • The plugin is real-time capable but Renoise detected that it’s unstable (it crash Renoise if it tries to load it);

Why Renoise uses the wrong in-/out- ports of my plugin?

While connecting to a LADSPA plugin Renoise can’t detect which audio ports are REAL audio (left-/right-) inputs and which are REAL audio (left-/right-) outputs. So Renoise assumes the first two input audio ports are left-input and right-input and the first two output ports are left-output and right-output. LADSPA plugins are designed to be something like basic blocks for synthesizer modelling environments. That means a single plugin can do just only logic operations (ring modulation between two audio signal, produce an ADSR envelope when an input audio signal is over defined threshold, and so on) or the plugin expects more than two audio in to produce its output (think about surround processors). That’s why Renoise can list a LADSPA plugin which output has no sense at all.

Why Renoise lists audio generators (oscillators, noise sources, etc.) in the effect list?

The answer to this question is similar to the above (“Why Renoise uses the wrong in-/out- ports of my plugin?”): Renoise can’t list generators as instrument because it can’t detect what’s the use of the plugin input control ports. Guessing the correct control port for setting the frequency by it’s label isn’t a solution: due to the nature of LADSPA plugs a frequency input can be control data as well as audio data. Also Renoise can’t know which kind of control data the plugin expects: can be a signal that raise the freq by 3dB/octave, the MIDI note number or even pure frequency as a floating point number. This is a part of the problem with LADSPA generators: another one is that note-on and note-off events are unsupported (in better cases you can have a control handling them) because LADSPA never describes instruments (unlike VSTi or DSSI).

Others

No-one of the above FAQ cover my problem/doubt. What I can do?

Renoise features an active forum where you can ask your questions, so don’t hesitate to join in with the community.