Basicconfiguration and tips to set-up
OpenSuSEas a Digital Audio Workstation
Written by: https://forums.opensuse.org/members/f_sauce.html
Content:
Introduction
Preconditions
Requirements
Configuration Audiousers group
Priorities
CPU frequencyscaling
File-system
Swappiness
Hardwaretimers
JACK/QjackCtlsettings
Software Analysisand visualising tools
Editors
Effect-boxesand amplifiers
Harddrive recorders, HDR, and MIDI-sequencers
Mixingand mastering tools
Players
Samplers
Notationand tablature writers/editors
Synthesisers
Utilitiesand libraries
Sound-fonts
Variousfree and commercial software
Start-upselection suggestion
Testof a synthesiser
Advancedconfiguration and testing realTimeConfigQuickScan
Hardware,kernel and IRQ.
AdvancedJACKconfiguration
Monitoringtools and commands
UsingPulseAudio
Benchmarktests
Troubleshooting
Somefinal tips
Sources
Introduction:
Thisdocument will explain how to set-up a basic digital audio workstation, DAW, using [i]OpenSuSE[/i]. There will be manyadjustments and improvements one further may do to optimise thesystem in regards real-time audio which this guide not will cover,however, links will be provided in-text when relevant and at the endfor more in-depth reading, if one wish to enter deeper into thematerial.
Thatsaid, the settings and configuration explained here should be sufficient to get a decent foundation and starting point to buildupon, both concerning system set-up and knowledge. Note also thatthis guide will not make use of [i]PulseAudio;[/i] if one wish touse [i]PulseAudio[/i] most of the configuration explained in thisdocument will still be relevant, and there will be references onemay consult on how to proceed further to tune the system when using[i]PulseAudio [/i]alongside [i]JACK[/i].
Thisdocument will mainly use [i]OpenSuSE[/i] 12.2 as reference, but in regard configuration and system settings it should be quite version independent.
Preconditions:
Thisdocument will assume that the reader is familiar with the basics of [i]GNU[/i]-[i]Linux[/i] and in particular [i]OpenSuSE,[/i] i.e.directory structure, how to operate as super-user/root,using [i]YaST[/i], installing packages, creating and editingconfiguration files etc.
Thedocument will also assume that one has an up and running [i]OpenSuSE[/i]system with one or several audio-devices functioning.
Otherwise,open a terminal and type in this command to find out which sound-devices which are installed on the computer:
[ul]
[li]#cat /proc/asound/cards[/li][/ul]
andconsult this link to see if the sound-device is supported:
[ul]
[li]ALSA Souncard Matrix[/li][/ul]
andthese links for setting up the SuSEbox for multimedia usage:
[ul]
[li]NEW Users - openSUSE-12.2 Pre-installation[/li][/ul]
[ul]
[li]Multimedia and Restricted Formats Installation Guide 12.2 [/li][/ul]
(notethat this link points to the present [as of 08.03.2013] OpenSuSEversion, 12.2)
Requirements:
Oneshould have enabled these repositories:
Standardofficial repositories:
[ul]
[li]OSS, [/li][li]Non-OSS [/li][li]Update, [/li][li]Update-Non-OSS[/li][/ul]
(Theseshould have already been added to [i]YaST[/i] as software repository sources)
Additionalrepositories:
[ul]
[li]Packman - packman.inode.at[/li][li]mulimedia:apps - multimedia:/apps[/li][li]multimedia:libs - multimedia:/libs[/li][/ul]
Addthe link which correspond to ones version of OpenSuSE;
copythe URL and add it as a YaST source, read the link below if you don't know how to proceed.
Itis advised to disable both multimedia repositories after one hasfinished installing from this repository, and it would also be good practise to look through the dependency added software; check Installation Summary in YaST Software Management and see which repository they inherit from; a basic rule should be to only useapps and libs from these two repoes when they are not suppliedfrom the official ones, or from Packman. Use these precautions toavoid package version mix-up and possible system inconsistency.
Lookhere for more about repositories:
[ul]
[li]SDB:Add_package_repositories[/li][li]NEW Users - openSUSE-12.2 Pre-installation[/li][/ul]
Makesure the following packages are installed:
[ul]
[li]pam [SIZE=1](installed by default in most cases)[/SIZE][/li][li][SIZE=3]jack (use the -oss version, not Packman, this applies to all jack related apps when available)[/SIZE][/li][li]qjackctl [/li][li]yast2-power-management[/li][li]perl[/li][li]kernel-desktop, or kernel-rt if available.[/li][/ul]
(kernel-defaultis not a low-latency kernel, thus not suited for our purpose)
Makesure that [i]PulseAudio[/i] is disabled:
[ul]
[li]go to: YaST Control Centre > Hardware > Sound [/li] click on Other > PulseAudio Configuration
PulseAudio is installed by default, however, it is not a necessity to use this framework, whether or not one wish to set up the system as a DAW or not;
deinstall it if one wish.
[/ul]
Configuration:
Audiousers group:
[ul]
[li]go to: YaST Control Centre > Security and Users > User and Group Management, click on Edit on the Users tab, change tab to Details and tick the audio box under Additional Groups.[/li][/ul]
Priorities:
[ul]
[li]open the file-manager in root mode, navigate to /etc/security and open the file limits.confwith a text editor; add the following two lines:[/li][/ul]
@audio - rtprio 90
@audio - memlock unlimited
Thiswill give the audio users group, in which one now belong, importantreal- time priority that will prevent the real-time processes frombeing interrupted, and give those processes priority on RAM. Onemight experiment with these values; maximum recommended value forrtprio is 99; the memlock value could be adjusted by setting anumber which correspond to amount of memory one wish to dedicatefor this purpose in KB, (8GB RAM approximately correspond to 8000000KB).
CPUfrequency scaling:
Checkwhat frequency governor which is currently active on the system,type in a terminal the following:
#cat/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Thedefault governor is ondemand[i],[/i]thismodus will cause trouble. Change the governor here:YaST Control Centre > System > Power Management, select LowLatency Computing
Thefrequency scaling daemon may cause interrupts on the real-timeprocess by failing to increase the CPU frequency in accordance towhat is demanded by the load of DSP quick enough. There is also aproblem with synch between JACK and a dynamic CPU frequency settingwhen using a CPU with several cores, so one has to set a staticfrequency. Note also that one may switch between default andperformance (Low Latency Computing) as one likes, if one wish to save power when doing other tasks than audio work.
File-system:
Itis recommended to use either [i]ext3[/i] or [i]ext4[/i]; [i]ReiserFS[/i]is said to be a poor choice, however, this seems to be debatable.And at this point the file-system has already been selsected, sojust proceed and see how it works with whatever file-system beingused.
[SIZE=3] Theimportant thing now is that one mounts the partitions with thenoatime parameter (No Access Time): [/SIZE]
[ul]
[li] Go to: YaST Control Centre > System > Partitioner, right click on each of the partitions belonging to the system in turn (apart from SWAP) and select Edit, then click on FstabOptions and tick the No Access Time box.[/li][/ul]
Swappiness:
By default the swappiness valueis set to 60, this is considered too high; set the swappiness to10:
[ul]
[li] test the current swappiness value on your system, in terminal type:[/li][LIST]
[li] # cat /proc/sys/vm/swappiness[/li][/ul]
[li] open a file-manager session in root mode, navigate to the /etc directory and open the file sysctl.confwith a text editor and add the following line at the bottom:[/li][ul]
[li] vm.swappiness = 10[/li][/ul]
[/LIST]
[SIZE=2]Swappinessis a feature, controlled by the kernel, which controls when ones system should start writing to SWAP. This feature has aconfigurable value: 0-100. A low value which means that the SWAPis not used until memory is inversely proportionally full is whatone wants, as frequent SWAP writing decreases system performance.[/SIZE]
Hardware timers:
Make sure the audio user haspermission to use the real-time clock and[i] HPET[/i]:
[ul]
[li]open a file-manager session in root mode, navigate to /etc/udev/rules.d, create a new text file and call it 40-timer-permissions.rules, open it with a text editor and add the following two lines: [/li][LIST]
[li] KERNEL==“rtc0”, GROUP=“audio” [/li] KERNEL==“hpet”, GROUP=“audio”
[/ul]
[/LIST]
Havethe above timers used with a higher frequency than the default 64:
[ul]
[li] see which frequency is set; in a terminal type in these two commands [SIZE=2](one at a time):[/SIZE][/li][LIST]
[li] # cat /proc/sys/dev/hpet/max-user-freq[/li] # cat /sys/class/rtc/rtc0/max_user_freq
[/ul]
[li]open a file-manager session in root mode, navigate to /etc/rc.d/, open the file boot.localwith a text editor and add the following two lines:[/li][ul]
[li] echo 2048 > /sys/class/rtc/rtc0/max_user_freq[/li] echo 2048 > /proc/sys/dev/hpet/max-user-freq
[/ul]
[/LIST]
Reboot!
To activate the changes done tothe system a re-boot is required
JACK/QjackCtlsettings:
Open[i]QjackCtl[/i],click on Setupand on the tab Settings;here there are a lot of options to adjust, and one may experienceas one like at a later stage, but first concentrate on thefollowing:
[ul]
[li]tick the box labelled Realtime(this is usually set already)[/li][li] set the Priority of jackd to 70[/li][li] adjust Frames/Period, Periods/Buffer and Sample Rate:[/li][LIST]
[li] Sample Rate: this should be adjusted according to the capabilities of the sound-device and the user’s preferences, and, preferably, also be uniform among the various audio apps used with JACK. Default frequency is 48000.[/li][li] Periods/Buffer: set this to 2 which is also the default value; some suggest the value 3if using external USB based sound-devices and if using certain on-board chip types. [/li][li] Frames/Period: adjust this setting so that you get a Latency between 5and10 msec,128or256 should be close to it. [/li]
Latency is displayed at the bottom right and is a value composed from the three variables above.
[/ul]
[/LIST]
Thevarious variables settings and parameters which one may start theJACK server with are dependent on many factors to be working ornot; this includes the sound-device, CPU, RAM, software, systemconfiguration and so on, so it is not possible to suggest somesetting that will work on every system.
Software:
A software recommendation forreal-time audio use. Some packages are not provided in the setrepositories but may be found in [i]OpenSuSEBuildService[/i]:[OBSsearch](http://software.opensuse.org/search);some software are not pre-built for [i]OpenSuSE[/i] and requires amanual installation.
Much of the categorisation thatfollows is a bit by random, as many of these application would fitin to more than one of the categories created. At the end of thisparagraph there is a suggestion for a basic start set-up softwareselection.
Analysisand visualising tools:
[ul]
[li]Sonic Visualiser[/li][li]VAMP PLUGINS[/li][li]JACK Meterbridge[/li][li]Le Biniou[/li][li]projectM[/li][li]VisualJackM[/li][li]baudline[/li][li] Jaaa[/li][/ul]
Editors:
[ul]
[li]Audacity[/li][li]Sweep[/li][li]Swami[/li][li]SND[/li][li]Kwave[/li][li]Linux Sampler[/li][/ul]
Effect-boxesand amplifiers:
[ul]
[li]Rakarrack[/li][li]LADSPA[/li][li]Guitarix[/li][li]LV2[/li][li]FreqTweak[/li][li]jackEQ[/li][li]JACK Rack[/li][/ul]
Hard drive recorders, HDR, andaudio/MIDI-sequencers:
[ul]
[li] Ardour[/li][li] LMMS[/li][li] Rosegarden[/li][li] Qtractor[/li][li] Hydrogen[/li][li] Non[/li][li] MusE[/li][li] SEQ24[/li][li] Schism Tracker[/li][li] jackbeat[/li][li] Ecasound[/li][/ul]
Mixing and mastering tools:
[ul]
[li] jack_mixer[/li][li] KMix[/li][li]ALSAMixerGui[/li][li] Gmixer[/li][li] JAMin[/li][li] JackMix[/li][li] JackMaster[/li][/ul]
Players:
[ul]
[li] Audacious[/li][li] Mplayer[/li][li] VLC[/li][/ul]
Samplers:
[ul]
[li] Linux Sampler[/li][li] Linux Sampler[/li][li] Qsampler[/li][li] SooperLooper[/li][li] kluppe looper software[/li][li] samplv1[/li][li] drumkv1[/li][/ul]
Notationand tablature writers/editors:
[ul]
[li] LilyPond[/li][li] MusicTeX/MusixTeX[/li][li] TuxGuitar[/li][li] MuseScore[/li][/ul]
Synthesisers:
[ul]
[li] amSynth[/li][li] FluidSynth[/li][li] Qsynth[/li][li] ZynAddSubFX[/li][li] synthv1[/li][li] Xsynth-DSSI[/li][li] PHASEX[/li][li] din is noise[/li][li][Bristol](file:///home/kernelcruncher/Downloads/Synthesiser%20Emulations%20on%20Linux)[Synthesiser Emulations on Linux](file:///home/kernelcruncher/Downloads/Synthesiser%20Emulations%20on%20Linux)[/li][li]Timidity++[/li][li]Ingen[/li][li]Aeolus[/li][li]Yoshimi[/li][/ul]
Utilitiesand libraries:
[ul]
[li] Jack Audio Connection Kit[/li][li] QjackCtl[/li][li] GNU Solfege[/li][li] QMidiArp[/li][li] FST[/li][li] DSSI [/li][li] dssi-vst[/li][li] ASIO to JACK driver for WINE[/li][li] JUCE[/li][li] LASH[/li][li] Virtual Keyboard[/li][li] Virtual MIDI Piano Keyboard[/li][li] Csound[/li][li] KMetronome[/li][li] Kmidimon[/li][li]Free Music Instrument Tuner[/li][li]JackTrip[/li][li]Jmess[/li][li] ALSA Sequencer Event Viewer[/li][li]sfArk[/li][/ul]
Sound-fonts (.sf2, .gig, .gus,.h2drumkit, .sfz etc), and
audio-samples (.wav, .aif, .flacm.m.):
[ul]
[li]http://www.hammersound.net/[/li][li]http://linuxsampler.org/instruments.html[/li][li]http://sourceforge.net/apps/trac/fluidsynth/wiki/SoundFont[/li][li]http://www.freesound.org/[/li][li]http://soundfonts.homemusician.net/[/li][li]http://gigasamples.com/free-giga-samples/[/li][li]http://www.hydrogen-music.org/hcms/node/16[/li][li]http://sso.mattiaswestlund.net/[/li][li]http://www.kvraudio.com/forum/viewtopic.php?t=37272[/li][/ul]
Various free and commercialsoftware:
[ul]
[li] linuxDSP[/li][li] Loomer Online[/li][li] Renoise[/li][li] Indamixx[/li][li] Harrison Mixbus[/li][li] energy-XT[/li][li] KVRaudio[/li][/ul]
Start-up selection suggestion:
If new to [i]Linux[/i] andunfamiliar with the software assortment available, reading throughthe package list above and then deciding which packages to startwith, might be a bit exhausting; the package collection proposalbelow might constitute a decent foundation; take it for what it is,just a suggestion made by the author:
[ul]
[li]ardour, a professional hard-drive recorder; Ardour v3 also comes with a sequencer.[/li][li]audacity, an audio editor and recorder.[/li][li] ladspa or lv2 (LADSPA v2), various plug-ins collection packages.[/li][li] lmms or rosegarden or qtractor, sequencers and notation editors may be the main tool if one wish to compose and/or programme music with the computer.[/li][li]qsynth, a front-end to Fluidsynt which is a sample based synthesiser; you need a sound-font, download it here: [/li] Fluid GM r3.sf2, or install it system wide fluid-soundfont (multimedia:apps).
[li]synthv1, a synthesiser.[/li][li]yoshimi, a synthesiser.[/li][li]xsynth-dssi, a synthesiser which uses the DSSI API[/li][li]dssi: ‘DSSI (pronounced “dizzy”) is an API for audio processing plugins, particularly useful for software synthesis plugins with user interfaces.’, http://dssi.sourceforge.net/. [/li][li]hydrogen, a drum machine.[/li][li]sooperlooper, a live sampler.[/li][li]vkeybd, a virtual MIDI keyboard.[/li][/ul]
Test of a synthesiser:
Openup QjackCtland click on Start,this starts [i]JACK [/i][SIZE=2](jackd);start the synthesisersynthv1andthen start the virtual keyboard Vkeybd;look at QjackCtlagain and click on Connect,one now views the Audioconnection table, here one needs to connect the OutputPortsof synthv1totheInputPortsonthesystem; thereafter, click on the tab ALSAto go to the ALSA(midi)connectiontable and connect vkeybd(output)tosynthv1(input), the virtual [i]MIDI[/i]keyboard is now connected to synthesiser and should be able tohave the synthesiser produce sound. [/SIZE]
(I chose to use synthv1 in thistest as it neither auto-connect to the system or has its ownkeyboard, thus, including several steps to exemplify a possible virtual cabling procedure; use this test with Qsynth instead ifyou like.)
Advanced configuration andtesting:
This paragraph will mainly be arelevant place to consult if you wish to do more advancedconfiguration to your system, though also if the guide so far hasproved insufficient and hence a need for some alternative approachesto set up the system as a DAW are required. However, the followingsection, the running of the realTimeConfigQuickScan script, is astep which one should go through, as it checks the configuration steps explained above and test whether they have been activated orif something has gone wrong in the process; further down, there willalso be some relevant tips on monitoring tools which might be ofinterest.
The topics mentioned below aremostly beyond the scope of this document and just briefly examined,it is therefore advised to consult the reference sources as thesubject matter is complex and quite technical, so to get a betterunderstanding of them if one wish to make further adjustments;besides, bear in mind that real-time audio on [i]Linux[/i] is andhas been a field in frequent development and change.
RealTimeConfigQuickScan:
Download this script, and itsbelonging modules, to check the configured system:https://github.com/raboof/realtimeconfigquickscan;place all the files, script [.pl], modules [.pm], license, readme,in a directory called realTimeConfigQuickScan,create this directory somewhere in
/home/(user).Open a terminal and navigate to the realTimeConfigQuickScandirectory e.g.: [SIZE=2] #cd /home/[user]/realTimeConfigQuickScan[/SIZE]
Thentype:
# perlrealTimeConfigQuickScan.pl
Readthrough the terminal output, most of the concept which follows thereshould now be familiar; check for results goodor not good
Most tests should be confirmed aspositive, good, but you will
most likely still have these two:
[SIZE=2]Kernelwith Real-Time Preemption… not found -not good, [/SIZE]
Checking checking sysctl inotifymax_user_watches… < 524288 - not good
The first one confirms whetherone has a running real-time kernel or not; regarding the secondoutput, whether or not increasing this value has any effect in thecontext of real-time audio processing seems doubtable, so justignore it:
http://linuxaudio.org/mailarchive/lau/2012/10/11/193535
Hardware, kernel and IRQ:
With [i]Linux[/i] kernel version3.x.x and onwards much of the real-time processing issues which thert-patch addressed are incorporated into the kernel itself, thus,the need for a kernel-rt (real-time kernel) is no longer pressing.Test which kernel which is currently running on the system with thiscommand, in a terminal type:
# uname -a
If the system runs kernel versionpre 2.6.39, one should consider upgrading, or build a kernel-rt: [https://rt.wiki.kernel.org/index.php/Main_Page](https://rt.wiki.kernel.org/index.php/Main_Page)
http://wiki.linuxaudio.org/wiki/lowlatency_deprecated
[i]OpenSuSE[/i] did ship, thoughnot included on the downloadable DVD, with a kernel-rt around the time of versions 11.0 – 11.3; you might find one in adiscontinued repository.
Kernelversion 2.6.39 introduced the [u]threadedIRQ[/u], acore part of the rt- patch; test if the kernel is capable and bootedwith the [u]threadirqs[/u]option enabled, in terminal type (thisis one long command):
[ul]
[li] # grep -e CONFIG_IRQ_FORCED_THREADING=y -e CONFIG_PREEMPT=y /boot/config-uname -r
[/li][/ul]
With default kernel-desktopon OpenSuSE 12.2 the output of that command shouldstate:
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_PREEMPT=y
This outputconfirms that the kernel is running with threadirqsenabled.
One might end up with only:
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_PREEMPT=n
In that case use the bootparameter:
threadirqs
(type thiscommand into grub at boot time, with grub2 see link below)
http://forums.opensuse.org/english/get-technical-help-here/…
Ifone ends up with none, the kernel is not capable of using threaded IRQs, suggestion would be to switch to kernel-desktop,if available, build a kernel-rt or upgrade the system; which optionthat would be most suitable and relevant depends on preferences andpriorities, currently running OS and kernel. #the_kernel
Use this command to check if yoursound-device is sharing IRQ with other devices; sharing IRQ withother devices might cause x-runs:
#cat /proc/interrupts
Uselspci to list information about devices on the system, lspci has tobe run as root:
#lspci
‘lspciis a utility for displaying information about PCI buses in the system and devices connected to them’, manpage lspci.
Moreon IRQ and /proc/interuptshere:
[SIZE=3]http://www.linuxmusicians.com/viewtopi…[/SIZE]
[SIZE=3]http://www.centos.org/docs/5/html/5.1/De……[/SIZE]
IRQstands for interrupt request level:
[SIZE=3] http://en.wikipedia.org/wiki/Interrupt_request[/SIZE]
In a terminal type this to see alist of running threads, and their priorities:
# ps axHouser,lwp,pid,rtprio,ni,command
More on IRQ device/threadpriorities here:
[SIZE=3] http://subversion.ffado.org/wiki/IrqPriorities[/SIZE]
[SIZE=3] #priorities[/SIZE]
(Learning how to adjust priorityof devices or even how to unbind devices might be essential in somecases, in particular when audio-devices are sharing IRQ with otherdevices; lifting the priority of the audio-device/irqthread if itshares IRQ with e.g. a USB port in use could be very a importantstep towards getting rid of x-runs. I did not include this as astep in the configuration paragraph as I do not know enough aboutit; it is a complex area and it varies what, and if, are requiredto the various systems, so I found it difficult to suggest a general approach to the topic.)
PCI bus hogging might also be anissue to address:
[#pci_bus_latency](http://wiki.linuxmusicians.com/doku.php?id=system_configuration#pci_bus_latency)
[http://lists.linuxaudio.org/pipermail/linux-audio-u...](http://lists.linuxaudio.org/pipermail/linux-audio-user/2007-April/044371.html)
[SIZE=2](I am unsurewhether there is a close interconnection with this topic andirqthreading, though it seems to address a different approachfor improving performance.)[/SIZE]
One should carefully read thelinks provided above if one wish to start experimenting withirqthreading priorities and PCI bus latency; it might also beadvised to consider possible impacts it might have on other aspectsof the systems day to day activity, i.e. consider how dedicated thesystem should be tuned in regards real-time audio processing.
Advanced [i]JACK[/i]configuration:
It may sometimes be required todo more advanced tuning in QjackCtl to get proper sound quality;some might also find it easier to start JACK from a terminal andexperiment with various parameters and variables that way, learnabout them here:
#manjackd
jackd(1) - Linux man page(I find it easier to read manpages here)
Twonice articles on JACK:
http://www.linuxjournal.com/node/1004080
http://w3.linux-magazine.com/issue/67/JACK_Audio_Server.pdf
Monitoring tools and commands:
[ul]
[li] top[/li][li] lsof[/li][li] fuser[/li][li] lsmod[/li][li] latencytopLatencyTop[/li][li] cyclictestCyclictest[/li][/ul]
Use topto monitor system load, process name, pid, memory, processpriorities, owner, mother process etc., type in a terminal:
# top
UseLatencyTopto find out which processes which causessystem latency, open terminal and become superuserand type:
#latencytop
[SIZE=3]#latencytop[/SIZE]
TryCyclicTestwith this command in terminal, cyclictest measures kernel latency:
#cyclictest -t1 -p 80 -n -i10000 -l 10000 -m
[SIZE=3]#cyclictest[/SIZE]
List what audioapplications/processes are connected with the
sound-device:
# lsof/dev/dsp* /dev/audio* /dev/mixer* /dev/snd/*
dsp,audio and mixer are related to OSS [open sound system] in theabove command; starting with OpenSuSE 12.1 [if I remember correctly] the OSS module(s) is not loaded at boot time, so you may get an error message concerning that
https://forums.opensuse.org/english/get-technical-he…
#lsmod | grep snd
lsmodlists currently loaded modules, snd is ALSA related, you can swapsnd with oss, audio or mix etc.,
#fuser /dev/snd/*
#fuser /dev/dsp
olav@DDAmt:~>fuser /dev/snd/*
/dev/snd/controlC0: 1578 3045
/dev/snd/controlC1: 1578 3045
/dev/snd/controlC2: 1578 3045
/dev/snd/controlC3: 1578 3045
olav@DDAmt:~>fuser /dev/dsp
/dev/dsp: 28307
olav@DDAmt:~>ps aux | grep 28307
olav 28307 4.2 0.1 169192 18096 ? Sl 21:50 0:01/usr/bin/zynaddsubfx
olav 29559 0.0 0.0 8260 872 pts/1 R+ 21:50 0:00 grep–color=auto 28307
olav@DDAmt:~>
[SIZE=2]Anillustration of using fuser and ps to identify which sound modules are in use, the process using the different modules and the common name of that process. [/SIZE]
All of the above programmestakes various parameters, read the help section and the man pagesfor tips and information, e.g.:
#top–h
#man latencytop
Using [i]PulseAudio[/i]:
'Basicallyall modern distros come with PulseAudio installed. PulseAudio (PA)is a sound server (like JACK) that takes care of mixing the output of all applications that can output sound. Since PulseAudio is designedto work in as much situations and with as much hardware as possibleit is not the best choice for a real-time, low-latency Linuxaudio set-up. In other words PulseAudiois more suited for consumer audio and JACK is more suited for proaudio.', [#pulseaudio](http://wiki.linuxmusicians.com/doku.php?id=system_configuration#pulseaudio).
Also,the use of [i]PulseAudio[/i]might easily get in your way working with real-time audio;[i]PulseAudio[/i] and [i]JACK[/i]has been known not to work very well together, one server blockingthe other from accessing the audio-device, although there seems tobe some development in this regard. Ifone persists wanting to use [i]PulseAudio[/i]alongside or on the same system as [i]JACK[/i]here are some information which should be useful:
[ul]
[li]http://jackaudio.org/pulseaudio_and_jack[/li][li]http://wiki.linuxmusicians.com/doku.php?id=sy …[/li][li]http://docs.fedoraproject.org/en-US/Fedora_Draft_Documen …[/li][li]http://ubuntuforums.org/showthread.php?t=1768036[/li][li]https://github.com/jackaudio/jackaudio.github.com …[/li][/ul]
Benchmark tests:
http://elinux.org/Realtime_Testing_Best_Practices
Troubleshooting:
http://www.troubleshooters.com/linux/sou…
http://wiki.linuxmusicians.com/doku.php?id=troubleshooting
http://www.linuxjournal.com/node/1000244
[SIZE=3] http://www.linuxjournal.com/node/1000254[/SIZE]
[SIZE=3] http://www.linuxjournal.com/node/1000262[/SIZE]
[SIZE=3] https://help.ubuntu.com/community/SoundTroubleshooting[/SIZE]
[SIZE=3] Troubleshoot: Common Solutions - LinuxMusicians
Some final tips:
[ul]
[li] Disable screen-saver when doing audio production: [/li] open the file-manager and navigate to the directory
/home/[user]/bin, create a new text file and name it [COLOR=#7ac142]ScreenBlankOFF; open the file with a text editor and type in the following lines, save it:[/COLOR]
[/ul]
#!/bin/bash
#
# This script, if run, willprevent blanking of the
# screen for the currentsession.
#
xset -dpms &
xset s noblank &
xset s off &
Run the script:
firstly one should make thescript executable, open a terminal and navigate to/home/[user]/bin:
# cd/home/[user]/bin
thereafter,type in the following:
# chmodu+x ScreenBlankOFF
[SIZE=3]Youshould now be able to start ScreenBlankOFFby clicking on it, you could also start it like this:[/SIZE]
#ScreenBlankOFF
[ul]
[li] End processing intensive tasks which does not relate to the audio work; be conscious to which programmes run on the system, particularly processes and daemons running in the background. Use a system monitor e.g. top, or issue this terminal command[/li] to list running processes:
[LIST]
[li] # ps -F -e | less[/li][/ul]
[li] NetworkManager and WiFi might cause x-runs, buffer under-runs or over-runs, as the NetworkManager daemon keeps scanning for network in the background; consider disabling it while working or set up your network using ifup. [/li][/LIST]
[ul]
[li] Consider using a lightweight DE, desktop-environment, or just a plain WM, window-manager; especially if there are limited hardware resources available on the system e.g. processor speed, amount of memory; DEs like KDE and GNOME might be demanding too much of these resources, alternative candidates might be: IceWM, Openbox, Fluxbox, Enlightnment16, LXDE and TWM.[/li][/ul]
[ul]
[li]Openbox[/li][li] Fluxbox[/li][li] Enlightenment16[/li][li] IceWM[/li][li] http://en.wikipedia.org/wiki/Twm[/li][li]LXD[/li][/ul]
Sources:
This document has beenextensively relying on information from the LinuxMusicianswiki; however, the text has also been dependent on other sources:
[SIZE=2] http://wiki.linuxmusicians.com/doku.php[/SIZE]
[SIZE=2] http://jackaudio.org/[/SIZE]
[SIZE=2] Professional audio - ArchWiki [/SIZE]
[SIZE=2] http://forums.opensuse.org/forum.php[/SIZE]
[SIZE=2] HowTo: Fully disable screensaver/screen blanking (Page 1) / Tips, Tricks & Scripts / CrunchBang Linux Forums
[SIZE=2] http://www.linux-archive.org/ubuntu-studio-user/136653-xruns-network-manager.html[/SIZE]
[SIZE=2] http://www.rosegardenmusic.com/wiki/low-latency_kernels[/SIZE]
[SIZE=2] http://en.wikipedia.org/wiki/Swappiness[/SIZE]
[SIZE=2] https://en.opensuse.org/Help:Standard_templates[/SIZE]
[SIZE=2] http://linuxaudio.org/mailarchive/lau/2012/10/11/193535 [/SIZE]
[SIZE=2] Ubuntu Forums
[SIZE=2] http://jack-audio.10948.n7.nabble.com/A-lot-of-Xrun-Callbacks-really-xr…[/SIZE]
[SIZE=2] how to build your own ubuntu rt-kernel? - Page 2 - LinuxMusicians1&hili…[/SIZE]
[SIZE=2] http://dssi.sourceforge.net/[/SIZE]
[SIZE=2] http://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-interrupts.html[/SIZE]
https://forums.opensuse.org/english/get-technical…
https://forums.opensuse.org/content/127-mult…
[SIZE=2] http://subversion.ffado.org/wiki/IrqPriorities[/SIZE]
http://elinux.org/Realtime_Testing_Best_Practices
https://forums.opensuse.org/english/get-technical-help-he…
http://jackaudio.org/pulseaudio_and_jack
http://ubuntuforums.org/showthread.php?t=1768036
http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation…
http://www.troubleshooters.com/linux/sound/sound_troubleshooting.htm
[SIZE=2] http://www.linuxjournal.com/node/1000244[/SIZE]
[SIZE=2] http://www.linuxjournal.com/node/1000254[/SIZE]
http://www.linuxjournal.com/node/1000262
http://wiki.linuxmusicians.com/doku.php?id=troubleshooting
http://linux.die.net/man/8/lspci
http://lists.linuxaudio.org/pipermail/linux-audio-user/2007-April/044371.html
https://github.com/jackaudio/jackaudio.github.com…
[SIZE=2] http://linux.die.net/man/1/jackd[/SIZE]
[SIZE=2]http://www.linuxjournal.com/node/1004080[/SIZE]
[SIZE=2]http://w3.linux-magazine.com/issue/67/JACK_Audio_Server.pdf[/SIZE]
Othersources:
http://linuxaudio.org/
[SIZE=2] http://linux-audio.com/[/SIZE]
[SIZE=2] http://ardour.org/[/SIZE]
[SIZE=2] http://www.opensuse.org/en/[/SIZE]
http://www.linuxmusicians.com/
http://ubuntustudio.org/
http://www.rosegardenmusic.com/
[SIZE=2] http://en.wikipedia.org/wiki/High_Precision_Event_Timer[/SIZE]
[SIZE=2] http://linux.die.net/man/4/rtc[/SIZE]
[SIZE=2] http://wiki.linuxaudio.org/apps/start[/SIZE]
[SIZE=2] http://lists.linuxaudio.org/listinfo/linux-audio-user[/SIZE]
[SIZE=2] http://www-ccrma.stanford.edu/planetccrma/software/[/SIZE]
[SIZE=2] https://rt.wiki.kernel.org/index.php/Main_Page[/SIZE]
[SIZE=2] http://wiki.linuxaudio.org/wiki/lowlatency_deprecated[/SIZE]
[SIZE=2] http://www.alsa-project.org/main/index.php/Main_Page[/SIZE]
[SIZE=2] http://www.rncbc.org/drupal/[/SIZE]
http://linux-sound.org/
A close look at ALSA