SoundMan-Server A quick overview SoundMan-Server • SoundMan-Server (or “SMS”) is a high performance sound playback and routing audio engine application – Primarily intended for theatrical and themed entertainment – Up to 512 individual live input channels – Up to 999 individual playback channels – Up to 512 output channels – A typical application might have 128 playback channels, 96 inputs, and 96 outputs. Architecture • SMS is essentially two crosspoint matrixes – One matrix between live inputs and outputs – One matrix between playback and outputs • Every input, crosspoint, and output is an identical control node: – Gain, Mute, Solo, Inversion, Delay, Delay Enable – 7 Band parametric EQ – 31 Band Graphic EQ – Two octave pitch shifter Audio Interfaces • SMS uses any sound card with an ASIO driver – Most professional cards have ASIO drivers • Typical recommended interfaces: – MOTU 424 or 424e card and interface units: • HD192, 2408 MK III, 24I/0 – Audio Science ASI6416 Cobranet cards – RME MADI cards – Audio Science or RME AES cards – Digigram Ethersound cards (currently in qualification) Non-Recommended Audio Interfaces • Anything from SoundBlaster • Crystal 6-channel cards with minijacks – They work, but can be noisy and the jacks are unreliable; some drivers are 16-bit only • Anything “Plug-n-Play” including Firewire and USB – The Windows OS tends to “forget” that units are plugged in, causing audio to cease – Can be OK for special events or temporary shows Playback File Formats • File Formats: WAVE, AIFF, Raw PCM • Sample Formats: PCM: 16, 20, 24, 24/32, 32 bit, FLOAT: 32 bit Floating Point • Sample Rates: Any (different files can have different rates) • Automatic sample rate conversion to the interface sample rate Playback Features • Start/Stop/Pause/Resume • Free running or locked to Timecode • Adjustable Start and Stop positions • Loop from any point to any point – (Or skip if loop-to is after loop-from) • Adjustable playback rate (speed/pitch) • Sample accurate playback on many channels if started together Playback • Each playback channel plays one track of one file – Use multiple playback channels to play multi-channel files – Play only the tracks you want – Play same track on multiple channels with different routing/gain/EQ – Play tracks with different offsets in the file at the same time Timecode • 24 / 25 / 29.97 / 30 FPS capability • Two timecode readers – Readers are output channels, can route any source to them • Can follow a live input or a recorded TC track • Two timecode generators – Generators are input channels, can route to any destination – Generators can be slaved to TC readers • Useful to generate 30FPS from 24FPS input Signal Generator • A low-distortion signal generator is available on input channel 1000 • Can generate Sine, Square, Triangle, White Noise, or Pink Noise • Pink noise slope ripple < 0.1 dB • Sine, Square and Triangle frequencies can be set from 1 Hz to Sample Rate / 2 • Sine/Square/Triangle frequency can be swept over arbitrary frequency range with linear or log sweep • Sweep can be paused and resumed Control Methods • SMS is controlled by simple human-readable text commands – Current command set is always available at: www.RichmondSoundDesign.com • Commands are given on Telnet port 20000 • Up to 20 telnet ports may be open at once for control and monitoring • A typical command sequence: – SET CHANNEL P12-P14 GAINDB 0 FADETIME 4.2; – PLAY P12-P14; Control Abilities • Every parameter of every control node is individually controllable – Every Input, Crosspoint, or Output is a control node • Groups of control nodes may be adjusted simultaneously – SET CHAN P0-15 GAINDB -12; • Every “analog” parameter (eg: gain, delay, EQ frequency) can be faded over time Monitoring • Every parameter of every control node can be interrogated • Channels can be interrogated in groups – GET CHAN P0-3 TRACK POSITION; • Every response begins with a unique identifier and is in a simple text format on a single line: Position P0=213022 P1=165902 P2=433662 P3=1024; Control Ranges • Gain: +20 to -144 dB – gain can be given in dB or absolute 0 to 10 range, where 1.0 is 0 dB • SET CHANNEL I0 GAIN 0; mute first input • Delay: 0 to 5 seconds – in microseconds or samples • EQ Gain: +12 to -144 dB • EQ Frequency: 1 Hz to Sample Rate/2 Command Syntax Overview • Most commands start with SET or GET – Followed by the item to act on – Usually CHAN or CHANNEL followed by a list of channel types and numbers (channel identifiers) or channel names • Followed by one or more parameter keywords and (for SET) the values for the items, for example: – GAIN 0.3 – DELAY 1.2 – TRACK FILE “C:\Audio Tracks\File1.wav” Commands are shown in uppercase, but except for strings in quotes, are case insensitive Channel Types • Channel types are: INPUT IN I OUTPUT OUT O PLAYBACK PB P CROSSPOINT XPOINT X PLAYBACKCROSSPOINT PBXPOINT PX GROUP G Channel Identifiers and Names • A channel identifier is a channel type followed by a channel number (or number.number for crosspoints) PLAYBACK 1 IN4 PX4.4 • Channels may be named and the names used: SET CHAN I0 NAME MC_MIC SET CHAN MC_MIC GAINDB -4.3 FADETIME 2; Channel Identifier Groupings • Channel identifiers may be individual, in ranges, or lists: PLAYBACK 1 PLAYBACK 0 TO 4 OUT 1-3 IN 0 1 2 3 5 PB 6 OUT7-12 I16 X0.0 1.1 2.2 X0-3.0-3 • Channel ranges are two channel numbers that are in equal or ascending order separated by “TO” or a dash Channel Parameters • All channels have the standard settings: – GAIN or GAINDB – MUTE, SOLO, PHASEREVERSE – DELAY TIME, DELAY ENABLE – Graphic EQ ENABLE, BAND GAINS – Parametric EQ BANDS, EQ ENABLE, BAND ENABLE – Each Parametric EQ Band has: • SHAPE, FREQUENCY, GAIN or GAINDB, BANDWIDTH Additional Playback Channel Parameters • TRACK parameters: – PATH “path to files” – FILE “name” TRACK number – START, STOP, REPEAT and LOOP points – PITCH or SPEED • Example: SET CHAN P0 TRACK FILE “C:\INTRO.WAV” START 20.1 STOP 40 PITCH .5 FADETIME 30; “Fadable” Channel Parameters • All “analog” channel parameters can fade over time: – GAIN, GAINDB, DELAY TIME, EQ FREQUENCY, EQ GAIN, EQ BANDWIDTH, PLAYBACK SPEED/PITCH • Fade can be specified in seconds or as a timecode – FADETIME <seconds and fractions> – FADETC <timecode value> • Examples – SET CHAN OUT1 GAINDB -144 FADETIME 5.2; – SET CHAN I1 DELAY .025 FADETIME 1.22; Example 1 CONFIG SET INTERFACE "MOTU FireWire Audio" MODE NORMAL INPUTS 0 OUTPUTS 18 PLAYBACKS 50; 2 SET MATRIX OFF; 3 SET CHAN P0 TRACK FILE "T:\AudioBox011.WAV" START TIME 13 STOP TC 0:30:27:0 REPEAT TIME 13; 4 SET CHAN P1 TRACK FILE "T:\AudioBox012.WAV" START TIME 13 STOP TC 0:30:27:0 REPEAT TIME 13; 5 SET CHAN P0-1 gaindb -3 chan O0-1 GAIN 1; 6 SET CHAN PX 0.0 1.1 GAIN 1; 7 PLAY P 0-1; Example Notes 1 Initialize SMS to use the ASIO device "MOTU FireWire Audio”. Disable the inputs and set 50 playback channels. 2 Set all input, playback, crosspoint, and output channels to 0 gain. 3 Set playback channel 0 to play the file “T:\AudioBox011.WAV” starting 13 seconds in and looping from 30 minutes 27 seconds back to 13 seconds. The full path to the file, including the filename suffix, must be specified. 4 Set playback channel 1 to play the file “T:\AudioBox012.WAV” using the same start/stop/repeat parameters as above. P0 and P1 are a stereo pair from two mono files. 5 Set both playback channel gains to -3dB and set output channels 0 and 1 to a gain of 1, which is 0dB. 6 Set playback crosspoints 0.0 and 1.1 to have gains of 0dB. This routes P0 to O0 and P1 to O1, giving stereo output. 7 Make playback channels P0 and P1 play. Since we played both channels in one channel list, they will be sample locked.