|
1090
hits since
Sun Apr 4 11:07 2010 CEST
|
|
The SLab FAQ:
This is the first SLab FAQ file. It is being maintained, but has
yet to be formatted. Updates will follow. If you run into something
that you feel should be included in this file, please email to
ncopeland@cie.tm
What is SLab?
SLab is a digital audio recording software suite for UNIX platforms.
It is currently supported on most versions of Linux, and FreeBSD.
What can SLab do?
It can record from up to 8 stereo soundcards, and take digital audio
data from those soundcards onto a disk file. The audio data can then
simultaneously read back from disk as separate tracks, and mixed down
back to the audio devices. SLab supports up to 64 tracks, although
your CPU might not. A P133 will max out at about 8 tracks, a P450 has
been tested to 16 tracks (even with the more intensive mix algorithms)
with capacity to spare.
What can SLab NOT do?
SLab is not a realtime mixer (as of the current 4.0 release), so it
is of little use for live work. It is a disk recording system.
What do I need for SLab? [requirements]
You need a reasonable PC, preferably with Linux (FreeBSD generally
trails the release cycles by up to several months), a soundcard, a
reasonable musical talent. You need audio drivers for your soundcard,
and SLab supports both ALSA and OSS (Free, or the 4Front Technologies).
You should check for soundcard support before buing the latest and
greatest soundcard.
How to I start SLab?
Typically you would use the "startSLab" script, but you may need to
give yourself a SLAB_HOME environment variable first. The default
value for this variable is configured in the startSLab script:
setenv SLAB_HOME /usr/local/slab
How do I configure my soundcard?
The bottom row of buttons in the first window that opens has a devConfig
option. You should open this by clicking on it. You should now get a
rather large window allowing you to configure your soundcards. You can
either pull down a menu button on the name of the card, or "drag and drop"
a soundcard from the SoundCard database in the middle section of this
window.
The default configuration is a 16 bit full duplex stereo device.
What can SLab do?
SLab can record up to 64 tracks of 16 bit samples at up to 48kHz. Each
track is MONO, so a stereo recording takes 2 tracks.
How do I record a track?
1. Select an input channel to be Line, Mic, whatever.
2. Select the tracks to record with the L/R buttons at the top of track.
3. Set the gain level on the red Gain controller on these tracks.
4. Press recPause button on tape.
5. Press Play on tape.
How do I attach FX to a track?
1. Pull down the FX menu on the return bus - 3rd mouse button.
2. Select "Attach FX".
3. Choose from available DSP code.
4. Give the return bus some volume level.
5. Attach a track to the bus [* see below]
6. Give the send controller some gain level.
[* either enter that track number in the small text display, then select
I/O a couple of times, OR pick up the return bus with the middle mouse
button, and drag it to the track, OR pick up the send control and drag
it to the return bus].
[All FX busses are MONO, which means a stereo device will take 2 busses.
You need to have a return level on each bus to make them work correctly].
Why can't I hear the result of effects on a track.
1. Most effects will only return the modified signal, it does not include
any of the original (there are exceptions). Quite often, the modified
signal is very low level, so you need to boost the result with high gain.
2. Make sure the return bus has a value on left/right and volume.
3. Make sure the send bus has a send level, and that the I/O button is
selected. Otherwise there will be no signal sent to the effects bus.
4. Check the "trim" levels: Pull down the menu on the return bus (3rd
mouse button), select ChainSLab. Pull down the 3rd mouse button menu on
the icon of the effect, select the "Trimming" option. Make sure that you
either have a trim level, or the trim is "deselected".
5. Make sure the effect is turned on. There is a button to enable/disable
the FX (actually only applies to wet/dry signal passthrough).
Why does the tape stop at 00:00:08?
This is typically a problem with the audio driver, or audio interface in
SLab. If the interface blocks then the tape counter will only write a
single buffer of data (8 SMPTE frames typically). If the read/write fails
then the audio daemon will exit, leaving the same state.
A fix would be to debug the audio interface. Try configuring the debug
option in the devConfig (or File->StudioDevices window). Try EMailing
me the output ncopeland@cie.tm, or try and get some new audio drivers.
Why does the output sound "chopped up"?
One of the most common reasons for ticking and stuttering is background
system activity, especially when it is disk swapping. The processes which
comprise SLab have been designed to be efficient in the way they process
audio, and how they exchange audio streams between processes. The effects
of disk activity are difficult to avoid, since if a swapped out process
is one of the SLab daemons then the audio buffer can drain before the
process is swapped back in. The buffer capacity can be adjusted to reduce
this effect.
The same kind of problems occur if parameters from the song "data" file
are altered. If you do not keep a song audio file with its associated
datafile, then the format of the recorded audio can default to the wrong
value, and difference in the audio fragment size will cause choppy audio.
The same kind of symptoms can occcur with some soundcards, so you should
also check out for new driver code. Email me if you have problems that
will not go away - ncopeland@cie.tm
Why does the output sound like "grunge" distortion?
This is normally due to record format problems, but some other reasons
are given below. If your audio device only supports 8 bit, but you tell
SLab the device is 16 bit, then mixing will be done on "mangled sample"
pairs. The result is, well, noisy.
The same effect can be heard if you have an excessive input gain, or
use a lot of filtering, but generally this is not at the same level and
is due to clipping of the top end of signals.
This can also happen if you use audio compression - reducing the amount
of data saved to disk. SLab supports 2:1 and 4:1 compression algorithms,
but the algorithm is configurable per track. If you record a track with
compression algorithm number 3, and replay it later with algorithm
number 1, it will produce similar noisy distortion. This should not
happen if you are careful about saving baseline files.
Why do I see no signal on the VU meters?
There are two typical reasons for this. If you have the ALSA drivers then
all the inputs are muted per default. The bottom button on the deviceSLab
removes the mute.
Alternatively you could have a problem with the audio drivers. Press the
play button, and see if the tape stops after 00:00:08 frames. If so, see
the section above on audio drivers.
You might also make sure the VU meters are enabled - there is a pull down
menu under the 3rd mouse button on the VU display, for enable, disable and
configuration of the meters.
Why do I get library revision problems when I start SLab?
SLab uses glibc2.1 for compilation, so if you run it on a system which
has other library versions, it is possible you will get complaints from
the linker. A typical remedy for this is to rebuild the source code [see
next sections].
Note that this is a general compatability issue between most Linux
versions, and suze, debian, linux, slackware, others can all show such
problems.
Where is the source code?
On my system. SLab is not opensource, at least, not all of it. Most of
the APIs are available as source, to access the database, build effects,
extend some of the mixing algorithms, and all of the audio driver interface
code is on GPL, so if you have audio interface issues you can actually fix
them yourself. The code to the mixing daemon is not on general release,
although this is gradually changing. At the moment, slab is freeware.
The parts of the source that are visible are under GPL, and can be found in
$SLAB_HOME/src
How do I rebuild the source code?
Typically, you can do the following:
1. cd $SLAB_HOME/src
2. make install
In many cases this will not work, since the default build includes the ALSA
driver interface. As such, if you do not have ALSA installed then the build
will fail when it looks for the ALSA header files.
To overcome this, edit the file $SLAB_HOME/src/include/slabrevisions.h, and
look for the compilation option ALSA_SUPPORT - comment this out by placing
a leading "/*" on this line, then do a `make clean ; make install`.
Why is SLab so slow?
[or Why does SLab slow down?]
SLab uses TCL/TK for most of the interface, and whilst this was a useful
toolkit to quickly put the GUI together, it is now starting to show its
limitations with SLab. Basically SLab has outgrown TCL/TK, and the added
complexities of the interpreted language result in a less than efficient
GUI interface. A side effect of the use of TCL/TK is that object lists
eventually become excessively long, and this will show itself as a GUI that
slows down gradually - the more tape resets you give, the more different
songs you open, will all gradually slow down the interface.
The resolution to this issue? There is a development underway at the moment
to define a control API, allowing third parties to develop their own mixing
desks. The main direction is to allow for a MIDI control interface, but it
will be used in house to support another mixer design. This will be written
in a programming language, rather than a scripted language. The current
advise is to use Gtk, or Qt. I personally would like to do this in Java, but
the general consensus is that this would probably be even slower.
How do I configure a personal database?
Each user can configure a variable called SLAB_DB, and SLab will use that
location for all configuration files, song files, effects, and the rest.
If this variable points to a non-existant or empty directory, startSLab
will call a script to create a skeleton database. The database is just a
directory tree with a specific structure.
How do I save my mix settings?
[also: What are baseline memories?]
You can save a mixer setup so that you will get exacly the same sound
between different uses of SLab. To do this, pull down the menu
File->BaseLine->SaveBaseline
You can save multiple different baseline memories.
How can I automate the controls?
SLab supports a feature called "Controller Automation". You do this by
pressing the "Session Recording" button on the tape deck. The tape will
start immediately, and changes you make to the mix controls will be
recorded. If you already have some automation it will also be played back
at the same time.
You can save the "Session" information from
File->Session->Save
Why are some effects parameters not automated?
Most of them are, but some of the effects are "external", and these are
not controlled by SLab session recording (future enhancement). The current
external effects are BlueValeIt, Leslie, StereoGraphic and Chambre. The
SLab effects have the visually simpler interface (they are all racked
together), and are controller by session recording. External effect have
to provide their own GUI, and as such are not under control of the SLab
GUI.
How can I make a Master Mix file?
Pull down the menu Audio->MasteringOutput and give a file name. SLab
supports Wave, CDR and MP3 output formats. You then press play - all the
mixed data will be saved to the output file (and converted to MP3 by
BladeEnc if you have it on your system). The mastering output will be
automatically disabled when you press the stop button.
How can I master a CD?
You first need to make a Master Mix file of each track you want on the CD.
You then call the MasterSLab, and select one of your CDs. MasterSLab will
list all the ".cdr" (dot CDR) files you have built, and allow you to put
them on a CD with whatever ordering you want.
You will need cdrecord to actually write the CD, and this is generally
not distributed with SLab. Copies are out on the net, or drop me an email
for details.
Why does my SoundBlaster 16 not work with SLab?
Soundblaster SB16 (SB_16 SB-16) soundcards do not work in full duplex at
16 bit resolution. Either use 8bit, or only use this as a half duplex device.
This is true of all soundblaster AWE series cards. Read the readme.soundcards
file for details. (SB32, SB64, SB_32, SB_64).
What soundcards does SLab support?
SLab will operate with any card that is supported by either ALSA, OSS/Free
or OSS/Linux. SLab does not include audio drivers, so it relies on a system
having these.
What is the EffectsTool database?
This is used to manage audio DSP programmes for SLab. You have a list of
different types of effects, and you can "drag and drop" them onto return
busses with the middle mouse button.
What is the SoundCard database?
This section of the database directory tree is a set of configuration
files for some known soundcards. The files are organised into either
driver releases or manufacturers. They are text files. These files can
be dragged to the devConfig icon at the bottom of the main window, and
will activate the configuration for that card. Conceptually it is to
simplify the audio device config which is one of the most awkward and
troublesome parts of SLab.
Why is the devconfig window so large?
Yeah, this is being worked on - the window is visible on a 1280x1024
display, but on lower resolution units this can give problems. The window
is undergoing reorganisation to have basic and advanced parameters for
each soundcard separately, and thereby reduce the realestate required to
show it.
Does SLab support floating point mixes?
Yes, you need to check the floating point options in the Audio->Algorithms
menu. When you do this, SLab will give you an empty mixing desk. Pull down
the menu under
View->BuilderSLab
and design your own mixing desk: each controller is listed as "none" per
default, but the text contains a pulldown menu on the first mouse button,
and you can configure the mixing sequences either globally, or on a per
track basis (the latter is available on the mixing desk once you have
applied the changes).
What is the little group of sliding controls in the top right of the desk?
This is known as the "micromixer", it gives you quick access to the audio
card parameters from the main screen. For more detailed control you should
open the deviceSLab.
What is the WaveSLab?
This is a tool to allow you to edit waves. You can load multiple tracks into
a single window, and cut/paste/modify sections of the wave. If you zoom to
negative values you can paint the wave in freehand with control-button1 (or
was that Alt? Or Meta?).
You can select "Bars" or "Beats" and logical edit positions, and SLab will
select audio data in these amounts. This links in to the metronome settings.
(see Audio->Metronome for timing). You can also edit down to SMPTE frames.
Zero crossing detection is implemented to reduce pops and clicks at edit
positions.
What is the TapeSLab?
This is intended to be a tape controller, with the normal spooling buttons.
In addition it hosts up to 8 memory locations, and you can select between
them with memF and memB. Each memory location also has a mixer baseline
settings file. You can disable the memory baseline file from:
View->GuiOptions
What are the Bus Groups? [bussing, grouping]
These are also known as Stereo Busses, and can be used to link a set of
tracks together and control their volume as a group. To link a track to
a bus group, pull down the menu on the button which shows "direct" at the
middle of each mixer track. It has a list for each of the bus groups, plus
the "direct" option. Direct means the track is sent directly to its main
output, bypassing the busses. Typically all the drums would be on a single
group, backing vocals on another, rythm on a 3rd, and the vocals and lead
instruments would be sent direct to the outputs (for example). Bus groups
are virtual, they exist only within the mixing process, ie, you cannot
attach FX to the bus groups, and they do not support filters, etc.
Does SLab support MIDI?
No, not at the moment. SLab will probably never support MIDI recording,
but work is in progress to allow MIDI to control SLab. This will allow
for SMPTE sync between MIDI and SLab, amongst other things.
Does SLab support SMPTE?
No, not really. Editing can be done on SMPTE frames, and the main tape
counters are actually SMPTE values, however there is no SMPTE sync. This
will be implemented after MIDI sync is finalised.
Does SLab support multichannel soundcards?
Only if your audio drivers do. 4Front support the StudI/O card, and can
represent the hexaphonic inputs as 8 stereo devices. This has never been
tested, but theoretically it should work (yeah, right). This may be in
5.0 if I can save enough K dollars to buy on of these interfaces.
Why does my SoundBlaster Live! fail with SLab?
As of the current release (SLab 4.0-5b) there are a lot of problem reports
with the SBLIVE! soundcards. The same is true of the PCI-512 cards, and I
do not have either of these to test with. You may want to try some newer
audio drivers if they are available. (dated 12th March 2000).
There are still issues with synchronisation with the Live! cards, where
spurious samples will appear on the start of a track, and the number of
samples is indeterminate. Makes the cards all but useless, since you
cannot record two tracks in sync. This is being worked with OSS, since
with SB-64 and SB-128 the sync is perfect. (dated 29th March 2000).
What soundcard should I buy?
I hate this question. I would generally advise a cheap and cheerful
Ensoniq Audio PCI card (also known as SoundBlaster 64 PCI and 128 PCI).
These cards are cheap, and have very reasonable quality - the design
was made by Ensoniq who also build pro-audio synths. If you want to
spend money on a more expensive card, check out the ALSA and OSS support,
or perhaps email me (ncopeland@cie.tm).
If you are building a new system for SLab, don't buy a whole load of
soundcards - buy one of the 128-PCI units, and test SLab with that. You
can always buy more, but taking them back to the shop can be difficult
when you find out SLab does not do quite what you want it to.
What system should I buy?
I also dislike this question. Put it this way, P300, P450, P500 are the
current lowprice units, and they are very good for audio processing (SLab
is currently developed on a P450, and has been tested to 16 tracks with
loads of FX and operators. SLab can use up to about 8MB of memory buffering
for disk, FX and audio buffers (this is mostly readahead buffer, but since
it still introduces some latency the buffer capacity is configurable), and
perhaps 8 to 16 MB of executable, plus the shared libraries. It should run
on a 32MB system, but if Linux starts swapping processes you can get
st-st-st-stuttering.
If you are thinking of going for a "top of the range" model, price up a
system with dual lowspeed intel CPUs - they are typically cheaper and
faster than the current fastest CPU. SLab was designed to work optimally
in a system with multiple CPUs - it uses multiple co-operating processes,
each of which has a similar CPU profile. Get a BIG disk, a set of 16 track
mix files for a complete CD will take about 5 gig: you may want multiple
CDs on your system, and some duplicates or backups.
Does SLab support 24 bit sample resolution?
Not in the current release. This is intended to be a part of the support
for multichannel soundcards. As of SLab release 4.0-5b (12th March 2000)
SLab supports 8 and 16 bit resolution from 8 kHz up to 96 kHz. All tracks
us the same diskfile, so they will have the same set of parameters.
What is SLabIO?
This is a set of tools donated to SLab by Toby Sheppard, allowing access
to the SLab song data file. The tools use the libslabdata library, and
can extract any number of tracks into a WAV format file. They will allow
you to pipe data to and from a track:
slabio | fx-algo | slabio
This provides offline DSP code which is not SLab savvy to be applied to
audio tracks recording within SLab. The software is on the same website(s),
http://dutw1288.wbmt.tudelft.nl
or:
http://slabexchange.org/ (same machine, "official" domain name)
|