Audio Production

marshc marshc187 at
Sun Sep 21 12:21:42 UTC 2008

Nash Nipples wrote:
>>> m cassar schrieb:
>>>> Does anyone here use freebsd for serious
>> audio/video production work? or
>>>> know if there is some kind of community?
>>> Didn't try it, but looks like
>> what you are looking for.
>>> See
>>> --
>>> Timm
>> thanks but this wasn't exactly what i was asking about
>> in the original post.
>> ardour *is* in ports, as with most other good open-source
>> audio applications
>> ( and propbably the best program out there - though i'm
>> new) but what i was
>> looking for is related to custom/optimizted kernels either
>> known as
>> low-latency or real-time kernels in linux; to help reduce
>> recording
>> latencies, audio dropouts, etc. like studio 64 rt-kernel on
>> ubuntu, planet
>> ccrma on fedora.
>> what i was trying to find out is whether there is such
>> projects on freebsd,
>> or more importantly, if freebsd kernel had the potential to
>> be similarly
>> optimized. (not that i myself have any expertise, [hence my
>> question])
>> on the other hand, if you are interested in audio programs,
>> ardour is good,
>> hydrogen is good and fun. not to mention easy.
> i have experienced a delay when i was recording voice and sort of laying it on a track. but removing a few miliseconds off the beginning didnt make a big trouble for me and thats when i have discovered this phenomenom but thought it was rather because my sound card is old. is this any close to something that you mean?
it is related, but what you mentiioned is a slightly different area in 
computer audio than what i mean with respect  to kernels.

An old card is likely to produce greater delays under any setup, but 
that is more a factor of its capabilities and quality of its parts than 
just purely because it is old.  If you were using JACK (linux) or ASIO 
(windows) the delay could be minimized to some extent, but no miracles 
there, and that is about the most you can do.

i'm only at entry level on audio engineering, but in a nutshell here is 
an overview to explain your delay, (latency) and my kernel related question.

first of all, computers are always prone to latencies, or delays, 
because of the time it takes the cpu to process  the audio data, 
read/write from disks, convert between audio signals and digital data, 
etc, etc. All take up cycles and valuable milliseconds.

when playing normal music like mp3s in itunes and such, you wouldn't 
notice any delay because the data is simply read from disk and output 
thru speackers as they come, though technically there would be a short 
period between the time the data was read off disk and then heard out 
the speakers. in audio production that slight delay, or latency, is 
everything, especially when you have multi-track recording and syncing 
with external gear. (latencies range from under 10ms to over 100ms)

Latency would be more noticeable, say when recording, and would sound 
like an echo if you were talking into a mic and listening thru 
headphones or speakers, on an average setup at least. roughly becase of 
the time needed to process the signal.

Also, If you were to use a midi controller/keyboard connected via midi 
to play a software instrument, you would notice a delay between the time 
you hit a key on the keyboard and when you actually heard the sound. The 
key press transmittes midi data to the software instrument, the software 
triggers the desired sound immediately, but there is that slight delay 
to create the sound and push it out the speakers.

Audio interfaces can have a latency around 5ms, which is very good,  yet 
may still be faintly noticable, and that also depends on the power of 
the pc and the actual load ( number of tracks, effects, instruments 
playing), and latency is still a *phenomenon* and something you *have to 
live with* in computer audio production; as opposed to hardware gear 
like samplers, drum machines, synths, etc. and short of buying a $10K 
protools "soundcard". a _hobbyist_ audio interface can be decent with 
latencies under 20ms.

In application, multi-track  recording programa like Cubase, Logic, 
Ardour, Ableton, Cakewalk etc, do fairly well (with a good setup) when 
all material is confined within the computer and not communicating with 
the outside world.  When you are recording say a vocalist, chances are 
you're playing back all the other tracks (drums, bass, etc) at the same 
time for the vocalist to listen and sing to, plus possible playing back 
the vocalist with added effects likde reverb; a mixture of delays going 
in, and the same amount going out.

Simillarly, if you had one or more audio tracks, (playing back audio 
recordings or samples off hard disk), and had any midi track there being 
sent to external hardware like a drum machine ,to play drum parts from 
there, or a hardware synth playing a bass or pad track,  then the 
practice is to compensate for latency by having the midi track play or 
transmit with a 5ms delay, to give the computer that little time to 
process the audio, and so the whole mix would sound in sync (since midi 
to external gear to sound heard would be instant). 5ms for a sytem with 
5ms latency, 20ms would require 20, 100 would require 100, etc.

There is a lot more to computer audio production, but basically the  
efforts are always, or mainly, to reduce that latency as much as 
possible. Better audio interfaces not only have better components and 
AD/DA converters, they are also intented to take as much load off the 
cpu as possible, and handle what they can themselves. Also, the more 
power a computer has never eliminates latency or delay completely, it 
just generally means you can play more tracks at once and use low 
latencies more comfortable without dropouts, glitches, clicks and pops.

( Latency is more or less adjustable by configuring the audio buffer 
size and the number of said buffers to find the best setting on your 
system. That is, you stop at the lowest setting that works without 
glitches and gaps in the music playback or recording. The best way to 
demonstrate or understand that is by using propellerheads reason or 
rebirth's settings on windows. Also, when you install kde3 on freebsd, 
you might notice system sounds play with a delay, especially when they 
are part of an error message with a dialog box - sometimes the sound 
comes out even a second after the dialog box is displayed. This is 
mainly because the default buffer size in kde3 is set way too high using 
about 10 buffers. from ocntrol centre you can set the number of buffers 
to 5 or less and still work well))

Further to all that,  JACK on linux/unix, Coreaudio on OSX , or ASIO on 
Windows are technologies developed for low latency audio performance, 
and basically handle the communication between software and audio 
hardware. You would definately have to use these for serious audio use ( 
protools also have DAE, but not the point)

With common or old audio hardware, you could still get some benefit 
using them, but i think you would be lucky if you got anywhere close to 
50ms, with ASIO on windows at least, and as opposed to over 100ms with 
the default windows sound system. something like that.

Finally, what i was inquiring about was this. In windows xp, to optimize 
the system for better performance and squeeze more juice, the most you 
can do is a few system settings, stopping services you don't need, and 
similar stuff. in OSX there is no real need , particularly on intel 
macs,. and in linux there are a few projects that specialize on 
low-latency/ rt kernels such as planet ccrma on fedora, studio64 on 
ubuntu, and a couple of others on suse and debian of knoppix that i have 
heard of.

At face value, most would think they are just distributions that come 
prepackaged with all the best open-source audio/video production 
software available, but their real strength and claim to fame is their 
rt kernels. Technically i have no real clue what work goes into 
these,but have heard something like real-time scheduling ( i could be 
off) , and just imagine  that they are made to dedicate most of their 
resource and attention to assure an uninterrupted audio *path*.  At the 
mment i have just started to use studio64 and haven't really been 
working on audio yet (just checking my miail infact).  About a week or 
two ago, on their mailing list, the developers were asking users whether 
they would prefer to stick to the current rt kernel, or go with the 
latest and greatest non-rt intrepid kernel as part of ubuntu's next 
major release. This was because the rt kernel developement took alot of 
work and rt kernels are not as easy as they sound from what i can make 
of it. 100% of replies were in favour of current rt kernel.

Freebsd has most of the software you would need, that linux has, in 
ports, but what i was inquiring about was whether anyone knew of a 
similar project or group working on freebsd, or at least i wanted to 
know if fbsd kernel had the potential, in which case i would rather have 
a audio-wise sluggish fbsd and watch it mature, then switch to linux at 
this point.

I hope all this was not that boring and gives a basic idea,  and just 
think that if fbsd had the potential and had a project  based on it one 
day, it would be a winner.

More information about the freebsd-questions mailing list