| Port | Richtung | Adresse | Argumente | Benutzt von |
|---|---|---|---|---|
| 50001 | → AmbiEncoder | /icst/ambi/source/xyz /icst/ambi/sourceindex/xyz |
i ff (index, x, y) oder fff | pendulum_12ch, pendulum_waves, ICST_Lissajous16 |
| 9001 | → AmbiEncoder | /icst/ambi/source/aed | fff (az, el, dist) | ICST_Lissajous_OSC (konfigurierbar) |
| 50002 | → Csound | /xy | ff (vowel 0–1, octDiv 0–4) | fof_choir_osc (Empfänger) |
| 50002 | → Csound | /xyz | fff (toneVar, pitch Hz, dustFreq) | dust_osc (Empfänger) |
| 50010 | → Max | /act/scene/target | s (scene_name) | REAPER → ACT_Circle_Mover_Main |
| 4000 | → AmbiEncoder | /icst/ambi/source/xyz | i ff | pendulum_waves_osc (alt. Port) |
Verstehen wie bformenc1 eine Mono-Quelle in B-Format enkodiert und der ICST AmbiDecoder VST3 diesen für ein Lautsprecher-Array aufbereitet. Zwei Quellen — eine rotierende und eine statische — demonstrieren den Unterschied.
vst4cs Opcode-Plugin installiert/Library/Audio/Plug-Ins/VST3/ICST Ambisonics Plugins/Modul_1_Decoder/ambisonics_icst_decoder.csd öffnen.vst3init – Pfad auf dein System anpassen falls nötig. Standard: /Library/Audio/Plug-Ins/VST3/ICST Ambisonics Plugins/AmbiDecoder.vst30.5 auf 1.0, 2.0, 3.14 etc. ändern und Effekt beobachten.bformenc1 aW,aX,aY,aZ, aSig, kAzimuth, kElevation — Azimuth in Radians (0=vorne, π/2=links, π=hinten); FOA Encoding einer Sinusquelle mit rotierendem Azimut
instr 1
kAzimuth phasor 0.1 ; langsame Rotation (0.1 Hz)
kAzimuth = kAzimuth * 6.2832 ; → 0..2π
aSig oscil 0.5, 440
aW,aX,aY,aZ bformenc1 aSig, kAzimuth, 0
vst3audio iVST, aW,aX,aY,aZ ; → AmbiDecoder
endin
Additive Synthese und Ambisonics-Encoding direkt verbinden: Jeder Oberton hat seine eigene Raumposition. Klangfarbe ≡ Klangbild im Raum.
reverbsc) auf allen 16 Kanälen gleichzeitig aktiv.Csound als räumlichen Algorithmus-Generator: Physikmodelle und Lissajous-Figuren liefern XYZ-Koordinaten, die via OSC den AmbiEncoder in Echtzeit steuern.
/icst/ambi/source/aed mit Azimuth, Elevation, Distance./icst/ambi/sourceindex/xyz — AmbiEncoder muss 16 Sources unterstützen.Csound als «Instrument», das von aussen — aus Max, REAPER, einem anderen Csound-Patch oder einem Controller — gesteuert wird. OSC-Empfang kombiniert mit Ambisonics-Routing.
/xy, 2 Floats: vowel (0.0–1.0 = A→E→I→O→U), octDiv (0–4 = Oktav-Division)import socket, struct
def osc(addr, *floats):
def pad(d): return d + b'\0'*((4-(len(d)%4))%4)
p = pad(addr.encode()+b'\0')
p += pad((','+'f'*len(floats)).encode()+b'\0')
p += struct.pack(f'>{len(floats)}f', *floats)
socket.socket(socket.AF_INET,socket.SOCK_DGRAM).sendto(p,('127.0.0.1',50002))
# Vokal = 0.3 (zwischen A und E), Oktav-Division = 1
osc('/xy', 0.3, 1.0)
/xyz, 3 Floats.