个人工具

UbuntuHelp:UbuntuStudioPreparation

来自Ubuntu中文

Wikibot讨论 | 贡献2009年11月17日 (二) 20:58的版本

跳转至: 导航, 搜索

You will find on this page what to do if you want to setup a multimedia production workstation with a standard Ubuntu installation (means without installing Ubuntu Studio).


However, users with Firewire hardware, pci professional sound card, even on Ubuntu Studio, or simply having questions, may find tips on this page. First of all, be sure to have the multiverse, universe, main and restricted repositories activated in Synaptic. Everything on this page has been tested and works successfully with Ubuntu Hardy LTS and Karmic Beta. Currently, the Ubuntu preferred version for production is Ubuntu Hardy LTS. It is indicated on this page where to find backports for important applications like Ardour. Only LTS and current version will be documented on this tutorial.

Install the "must have" packages

If you prefer to install the packages with Synaptic, you can.

The basics

If you are still unsure of which you would like to use, or where to start, a sane set of defaults can be installed by doing this:

 sudo apt-get install ardour hydrogen jackd jack-rack qjackctl seq24 vkeybd zynaddsubfx patchage vlc kino pitivi acidrip ubuntu-restricted-extras ubuntustudio-menu gcdmaster

Ardour is a very good audio recorder and sequencer, seq24 is a midi sequencer, vkeybd is a virtual midi keyboard, zynaddsubfx a very good modular synth, hydrogen is a drum kit and sequencing application, jackd is the sound daemon and qjackctl is to setup it well with a GUI, patchage is a very useful application to patch audio/midi applications and the I/O, gcdmaster allows creation of a master audio cd.

Specific Pci and USB hardware

First of all, check on this page if your card is supported : http://alsa-project.org/main/index.php/Matrix:Main If your card is said to be supported, but you know is it a low latency sound card, do:

 sudo apt-get install alsa-firmware-loaders alsa-tools alsa-tools-gui

If your card is still not supported, download this package at this place, whatever version of Ubuntu and Alsa you are using: http://apt.64studio.com/backports/pool/main/a/alsa-firmware/alsa-firmware_1.0.15-2.64studio1~jaunty1_i386.deb You may find alsa-firmware in the Medibuntu repository, if you are using it. it is not working good at least for RME sound cards, so don't forget do force version of the alsa-firmware; you can do that in Synaptic: "Package/Force Version" and selection the downloaded one. Your card will work at reboot. For card like RME hdsp, you may want to run manually the command line "hdsploader". Feel free of course to create a shortcut in your menu or Gnome panel.

Firewire (ieee1394 / raw1394) sound cards and cameras

If you can't get your Firewire sound card working with Freebob/FFADO and Jack, please first of all have a look at http://ffado.org/?q=devicesupport/list and check if your sound card is supported. In Hardy LTS and Karmic you can do it in terminal this way:

 sudo adduser <username> video
 sudo adduser <username> audio

Think to change <username> below with the concerned user name. Then, you have to give the access right to "/dev/raw1394" to the "video" group:

 sudo gedit /etc/udev/rules.d/65-permission-raw.rules

And make a copy/paste of this into the file:

 KERNEL=="raw1394", OWNER="root", GROUP="video", MODE="660"

Restart the workstation is necessary to get the acces right. In Karmic, install then the ffado utils:

  sudo apt-get install ffado-dbus-server ffado-mixer-qt4 ffado-tools libffado1

So you will have the access to raw1394 without being root. NB: it may cause a security problem if you are using ieee1394 for other than hard disk, camera or sound card connection, but for exemple with ieee1394 networking. You will have to run one time with the sound card "on" before starting the workstation, in order to confirm right access. Then it is not necessary anymore. In Qjackctl setup, choose in the "Driver" list "freebob" if you are in Hardy, and "firewire" if you are using Karmic. In the "Interface" list, choose "hw:0". In Karmic, you may need to install "a2jmidid" package. This application allows you to make connections between alsa-midi and jack-midi peripherals, sound cards in/out and audio applications. The new FFADO driver create now only jack-midi instance for the physical input and output of your firewire sound card. So if you are using them, you will need to launch "a2jmidid" in a terminal, or to add this command line to the Qjackctl start option to be launched automatically. You can find some GUI tools and howto on the Ubuntu Studio FireWire Audio documentation. However, take care using the Ubuntu Studio Control Gui, it is very buggy.

Effect Plugins, Instruments and Codecs

Install the LADSPA plugins so you get some effect plugins for your audio applications to use. For audio processing:

  sudo apt-get install blop caps cmt fil-plugins rev-plugins swh-plugins tap-plugins

For synthetisers:

  sudo apt-get install blepvco mcp-plugins omins 

Install the DSSI host and plugins:

 sudo apt-get install dssi-host-jack dssi-example-plugins fluidsynth-dssi hexter xsynth-dssi

More infos are provided below, see the "VST Instruments" section. Install the video codecs:

 sudo apt-get install gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse ffmpeg

If you use the Medibuntu repository, you can add other codecs, and encrypted DVD support to Ubuntu:

 sudo apt-get install non-free-codecs libdvdcss2

Please see http://medibuntu.org for more information. Think to update, because Medibuntu may provide more complete version of VLC, Mplayer, Mencoder, etc...

VST Instruments

You can use Windows VST plug-ins (with certain limitations) via dssi-vst, which will make them available as if they were native Linux (DSSI) plug-ins. Unfortunately, this adaptor is not readily available as a .deb package due to licensing restrictions, so you may need to build it yourself from source. If you attempt this, make sure you have the ALSA and Wine sources installed first, as these are pre-requisites. You'll also need the DSSI and liblo headers.

~/dssi-vst-0.8$ sudo apt-get install libasound2-dev wine-dev liblo-dev dssi-dev
~/dssi-vst-0.8$ make && sudo make install

Once you have dssi-vst installed, copy the .DLLs for your VST plug-ins into the directory /usr/local/lib/vst, restart JACK, and they should automatically appear in any applications which make use of DSSI plug-ins (such as Rosegarden).

Real Time Kernel & Xruns

Xruns. What are they? Well, simply put, either they are buffer underruns or buffer overruns.

  • A buffer underrun happens during playback, when your sound card tries to read data from the buffer, but your software has not yet filled it.
  • A buffer overruns happens during recording, when your sound card tries to write data to buffer, but your software has not yet emptied it.

The only acceptable time to receive Xruns is during application startup. Currently, for whatever reason, JACK applications usually cause a few Xruns as they connect to the JACK server, but these will not hurt you in any way. The most damaging time to receive an Xrun is during recording, because it causes a permanent glitch in your audio, which may or may not be easily heard. So, now you should understand basically why you want to avoid Xruns. They will cause issues with your recordings, or cause annoyance during playback. Thankfully, you can get these down to a minimum, if not eliminate them altogether. The best way to avoid XRuns is to install a real time kernel, optimized for audio production with low latency. You can simply do:

 sudo apt-get install linux-rt linux-headers-rt

Then follow the advice below under 'Real-Time Support' and you should be set up to run jackd and other applications in real time low latency mode. You need to reboot after you've installed the low-latency package and made the changes below. Make sure you reboot into the right kernel - it will come up in the list on the boot screen, but may not be set as the default option. Take care, with some nVidia or AMD/ATI graphic card, the linux-rt kernel will not work with restricted driver. It always better to avoid use of restricted drivers if you don't need them. If your aim is audio production (recording, live performance) at low latency, my advice is to stay at the moment on Ubuntu Hardy LTS. Karmic is under testing.

Real-Time Support

After you've got the kernel you still need to set up real-time access for your applications. All you have to do for this is give your audio group permissions to access the rtprio, nice, and memlock limits. To do this, you just need to run these commands, which will add some lines to the file /etc/security/limits.conf:

 sudo su -c 'echo @audio - rtprio 99 >> /etc/security/limits.conf'
 sudo su -c 'echo @audio - nice -10 >> /etc/security/limits.conf'
 sudo su -c 'echo @audio - memlock unlimited >> /etc/security/limits.conf'

These value are suggested by http://jackaudio.org/faq. The memlock line determines how much of your memory can be locked by audio processes. Some recommend setting this as half of your total memory (RAM, in KB). See Florian Paul Schmidt's page. If you use a Firewire sound card, you already done the step described here: in Hardy and Karmic beta, this group is already created at installation. You just have to do:

 sudo adduser <username> audio

Restart Ubuntu and it is ok. If you experience freezes after rebooting Jaunty Jackalope, try removing the "memlock unlimited" line or changing it to a different value. Always keep a -generic kernel on your Grub list. If for some reason you can't boot with the -rt kernel, it will be very usefull.

ALSA Sequencer

If you can not have midi sequencing enabled, or if you have midi error message, the Alsa midi sequencer module of the kernel may not be loaded. Try that:

 sudo modprobe snd-seq

If it works, to have your system load it at bootup, you have to add it to the /etc/modules file, do:

 sudo su -c 'echo snd-seq >> /etc/modules'

USB MIDI Keyboard/USB Secondary Sound Card Fix

Since Hardy LTS, this should be already done. You can see below how to tweak if necessary.

Configuration of more than one pci/usb sound/midi card

When having more than one soundcard, it often appears that one card is one time the default device, other times it's an other one. This has led to a lack of output because the "System/Preferences/Sound" control panel seems to only consider card "0" to be the default, even if you change it. So, to make a long story short, you can ensure that one of your sound-devices is always "0" with this small modification: Edit the following file with your favorite editor, e.g, For Hardy LTS:

sudo gedit /etc/modprobe.d/alsa-base

For Karmic:

sudo gedit /etc/modprobe.d/alsa-base.conf

and append this to the bottom of the file, making adjustments as required for your setup, see example below:

options snd_hda-intel index=0
options snd_indigoio index=1
options snd_hdsp index=2
options snd_foo index=3
#etc...

Where "foo" is the name of the alsa driver for the soundcard (pci or usb, audio or midi). Not Firewire! To find the name of your sound card driver, go there : http://alsa-project.org/main/index.php/Matrix:Main

Unofficial Backports

In Karmic, all seems to be up to date at the beta time. For Hardy LTS, I suggest you to go to Launchpad PPA search page, and look if you can find what you are looking for (you may find VLC with jack support, LMMS, etc... in their current stable/dev version). Go there: https://launchpad.net/ubuntu/+ppas

Getting it All Going

First, you will want to launch QjackCtl by itself, and configure it for your soundcard. Follow the HowToJACKConfiguration page if you need help. Next, we recommend you to use Patchage to connect applications within them and with hardware I/O (audio and midi), as you want.

Comments

  • It is just an update of the original Gutsy page for Hardy LTS, Intrepid, Jaunty and Karmic Beta.
  • This page is aimed to be a reference of tweaks and steps for setting up a multimedia workstation from a standard Ubuntu installation. I and others are doing their best, testing with our available hardware, to provide the best information available as possible. In order to be the more and more complete and stable, if you find something wrong, feel free to correct it. In the same way, you can add good infos once you are sure it works well. Please, think to respect the layout. ttoine
  • Don't hesitate to come on #ubuntustudio on freenode's irc if you have any question, or you want to help. You can write to the Ubuntu Studio devel mailing list too.
  • If you want to add tips for an application, this is not the right place. Please create a new page or fill the page dedicated to this software in the UbuntuStudio pages of the wiki