Linux FAQ: Difference between revisions

From Renoise User Manual
Jump to: navigation, search
imported>Taktik
No edit summary
imported>Taktik
No edit summary
Line 331: Line 331:


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 [https://web.archive.org/web/20081220103232/tapas.affenbande.org/wordpress/?page_id=73 http://tapas.affenbande.org/wordpress/?page_id=73].
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 [https://web.archive.org/web/20081220103232/tapas.affenbande.org/wordpress/?page_id=73 http://tapas.affenbande.org/wordpress/?page_id=73].
See [https://wiki.linuxaudio.org/wiki/system_configuration 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 ===
=== JACK ===

Revision as of 08:24, 3 August 2018

Renoise for Linux FAQ

Prerequisites

Renoise for Linux should work just out-of-the-box by decompressing the archive in any correctly installed Linux-box where X.org is installed and the sound playback thru ALSA work.

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 desktop environment like GNOME, KDE or XFCE… so if you are using any of those you also have X.org installed).Please avoid compositing windowmanagers like Compiz or Beryl (or the Fusion combination) as they consume a load of CPU resources and specially the older versions supply problems when Renoise runs “Fullscreen”. Also see:Troubleshooting → Performance problems.

Checking the audio capabilities

ALSA is the Linux sound driver. To check if it is installed open a terminal and type the following:

$ aplay -l
[enter]

The output of this command is the list of all available playback audio devices grouped by sound card. To get the list of all available capture/recording devices type the following:

$ arecord -l
[enter]

Again you get the list of available capture/recording audio devices grouped by sound card.If you don’t get any list, it is possible that you don’t have any supported sound card in you system… or you don’t have a sound card. This how-to doesn’t cover this subject: check the available documentation about ALSA and how to configure your hardware under Linux.If you don’t get any list but you get a “Command not found” error, it is possibile ALSA isn’t installed or the ALSA installation is broken. Again this how-to doesn’t cover this subject: check the available documentation about ALSA. ALSA also provides MIDI I/O capabilities so we can check them by opening a terminal and type the following:

$ aplaymidi -l
[enter]

The output of this command is the list of all available MIDI playback ports devices. To get the list of all available MIDI recording ports type the following:

$ arecordmidi -l
[enter]

Again you get the list of available recording audio ports. If you don’t get any list, look for the possible problems reading the above troubleshooting about audio devices.

Checking the JACK audio capabilities

Renoise can connect to JACK sound server. JACK has to be installed and working in order to use it. While this how-to is written JACK support different backends for playback; they are ALSA, Core Audio, Port Audio, Free Bob, OSS and a dummy backend. Be sure that the backend you want to use is correctly installed. To check if JACK is installed and works with your backend open a terminal and type the following:

$ jackd -d your_backend —help
[enter]

(your_backend can be one of these: alsa, coreaudio, portaudio, freebob, oss or dummy) The output of this command is the list of all available JACK server options of the audio backend.If you don’t get any list but you get a “jackd: unknown driver ‘your_backend’” error message, means JACK never support that audio backend. If you got JACK as a distribution package check how JACK was packaged; if you have compiled JACK by yourself check how you have configured it. This how-to stops here in covering this subject. If you don’t get any list but you get a “Command not found” error, it is possibile JACK isn’t installed or JACK installation is broken. Again this how-to stops here in covering this subject.

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

This procedure will install Renoise for Linux in a directory under the user home. At the end of this procedure you’ll get a Single User Installation of Renoise.First of all download Renoise in a directory where you have read/write access (your home directory “~” should be a good place - the example below assumes that you save the archive in your home directory). When you have 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 ended the rns_x_y_z directory has been created. Let’s go in it:

$ cd rns_x_y_z_reg
[enter]

We are ready to try running Renoise:

$ ./renoise
[enter]

Now the Renoise splash screen should pop up while the terminal is filled of log messages (nothing bad, it is all correct). If this is not what happened see the troubleshooting section.

Renoise System-Wide Installation

This procedure will install Renoise for Linux system-wide so all the users of your system can use it.First of all download Renoise in a directory where you have read/write access (your home directory “~” should be fine - the example below assumes that you save the archive in your home directory).When you have 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 ended the rns_x_y_z directory has been created. Let’s go in it:

$ cd rns_x_y_z
[enter]

To install Renoise system-wide you should use the script provided: they are stored in the decompressed Renoise installation.Attention! To complete the system-wide installation you must have root privileges.Here is what to do if you use sudo (that the way to follow for Ubuntu users and users of distros derived from Ubuntu):

# sudo sh install.sh
[enter]

the system asks for your user password (the one you use to log into the system): enter it!

Some message about what the install script is doing are displayed. When the script end it display if the installation was successful (if not see the troubleshooting section).We are ready to try running Renoise:

$ renoise
[enter]

Now the Renoise splash screen should pop up while the terminal is filled of log messages (nothing bad, it is all correct). If this is not what happened see the troubleshooting section.

Troubleshooting

Performance problems

Audio performance problems can occur in Linux for many 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 parties 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 choosed 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 threat 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 an 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 community where you can ask you questions. So don’t hesitate joining the community.