Spatialized


Mac OS X

audio flow : ableton - jack - pd (vbap) - jack - dac

Using jack allows the connection of multiple audio softwares allowing Ableton Live to therefore communicate with
Pd and dac. Midi CC values are used to sequence the panning parameters allowing for events to be synced
between pd and ableton.


Windows XP

audio flow : reason (rewire) - ableton - pdVst (vbap) - ableton - dac

using PdVst allows for pd to be run inside of Ableton Live with a series of sends and returns creating 8 channel ins
and outs. The vbap object was used to care of panning amplitudes while tables where setup to do sequencing of
pans.

xp version needs to be updated to handle midi
Spatialized_Ableton.pngreasonShot.png
spacialization patch in pure data using vbap
Pd_patch_Spatial.pngangles_tables.png
here is an older version of the 8 channel patch with effects added.
8.1 panner.zip
and here is a.....
5.1 spatialization using pure data adhering to "movie standards" as per Thomas Holmann
5.1_panner.zip

using these instructionsi was able to open Pd as a VST on a computer with Windows XP



Midi

okay so this project is turning into a ton of midi mapping. here i will cover how midi is integrated into the spatialization.

first a realization that the midi sequencing and assignment is so bomb in ableton that i decided to do away with any use of tables in pd and
just write tons of midi clips in the ableton session view. These clips are then sending CC values to pd and ableton to control a variety of parameters. Namely a spatialization angle, which with using vbap is something between -180 and 180 (or 0 to 360 offset by -180). Now midi goes from 0-127 so basically 0-127 is scaled to 0-360 then i don't do the offset however because of the nature of angles being circular this works out to being a value of 180 is dead center above that moves clockwise until 360 which is directly behind you and below 180 moves counterclockwise. So in midi values thats essentially 64-127 starts center and goes clockwise, 63-0 starts center and goes counterclockwise. Make sense? A diagram would be nice here. Vbap also has a spread parameter which is sent as well. Spread is a value from 0-100 so 0-127 gets scaled and voila. Spread refers to the specific location of a sound is it only in one location, spread 0, or does it kind of leak out everywhere losing some of its directionality, spread 100.


So there are 8 midi tracks each with their own set of clips sending an angle (azimuth) and spread value to 8 vbap objects inside of pd.

Within ableton I also am using midi clips to send cc values to each channel to control the send values for each track. Every audio track has 8 sends, corresponding to the 8 vbaps in pd, and these midi clips act as presets to create which spatialization path each individual audio track follows or maybe it goes to multiple tracks. Basically this is just mixing but in this complicated setup some automated mix levels will be helpful to allow me to 'perform' as instrumentalist more then as a mix dj.

way too much midi mapping...
on the korg microKontrol

scene
type
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
encoder
angle A1
angle B2
angle C3
angle D4
angle E5
angle F6
angle G6
angle H7









fader
spread A1
spread B2
spread C3
spread D4
spread E5
spread F6
spread G7
spread H8









pads
angle monitor







1on
2on
3on
4on
5on
6on
7on
8on
2
encoder

















fader

















3
encoder

















fader
















4
encoder

















fader
















5
encoder

















fader
1 send A
1 send B
1 send C
1 send D
1 send E
1 send F
1 send G
1 send H








6
encoder

















fader
2 send A
2 Send B
2 send C
2 send D
2 send E
2 send F
2 send G
2 send H








7
encoder

















fader
3 send A
3 send B
3 send C
3 send D
3 send E
3 send F
3 send G
3 send H








8
encoder

















fader
4 send A
4 send B
4 send C
4 send D
4 send E
4 send F
4 send G
4 send H








9
encoder

















fader
5 send A
5 send B
5 send C
5 send D
5 send E
5 send F
5 send G
5 send H








10
encoder

















fader
6 send A
6 send B
6 send C
6 send D
6 send E
6 send F
6 send G
6 send H








11
encoder

















fader
7 send A
7 send B
7 send C
7 send D
7 send E
7 send F
7 send G
7 send H








12
encoder

















fader
8 send A
8 send B
8 send C
8 send D
8 send E
8 send F
8 send G
8 send H