Hi,
this is the first public tarball of dssi_convolve, a DSSI wrapper around
libconvolve.
grab here:
http://affenbande.org/~tapas/jack_convolve/dssi_convolve-0.0.2.tgz
you need libconvolve-0.0.5.tgz for this, too (fixed some minor bugs)
http://affenbande.org/~tapas/jack_convolve/libconvolve-0.0.5.tgz
Features:
- no GUI yet. Send OSC commands directly to load a responsefile. If you
use the included test_dssi_convolve.om patch in om-synth (you need
latest cvs for this), you can use sclang [supercollider3] like this to
send it stuff:
a = NetAddr("localhost", 16180);
a.sendMsg("/dssi/test/Convolve_0/configure", "rtprio",
"0");
a.sendMsg("/dssi/test/Convolve_0/configure", "responsefile",
"/home/tapas/sound/ResponseFiles/room/Thick Room.wav");
The included om patch provides stereo input and stereo output. A copy of
the stereo input is delayed (by 0.68s which is just the delay introduced
by dssi_convolve at a samplerate of 48khz and a partition size of 16384)
and mixed back into the output. Both input signals are also mixed
together and fed into the single convolution input. The stereo
convolution output is mixed into the stereo patch output. While this
kinda abuses the convolution to do stuff it shouldn't it still sounds
nice :)
configure keys understood:
"responsefile" value: filename. load the specified responsefile
"rtprio" value: the desired SCHED_FIFO prio for the worker thread. when
0 is specified SCHED_OTHER is used.
- the convolution runs in a lower prio thread and a huge buffer [default
16384] is used to decouple the convolution size from the hosts
periodsize. This introduces 2*partition size frames additional latency
which is reported on the "latency" control output. The partition size
can be changed by altering the DEFAULT_PARTITION_SIZE in the source
code. A configure key for this will be added.
Bugs:
- loads only in om, not in jack-dssi-host. [any clue?]
- might have problems loading mono files. not tested.
- SConstruct broken. Use the Makefile
- might lock up your boxen. so if this is a problem for you, inspect the
source first and fix all bugs ;)
- millions more i'm sure. if you find any please let me know :)
TODO:
- GUI
- Different channel versions (mono, 4 channel, 6 channel). This provides
always a single input only but the loaded response files may then be
mono, stereo, 4-channel or 6-channel.
- Realtime mode (where partition size == hosts buffer size -> no
additional delay). Need to figure out some DSSI specifics to find out
how to discover host buffer size before initial configure call is done
(which might load a responsefile and for which the partitioon size needs
to be specified)
TODO's might take a while due to my limited time atm [studying]. Help
appreciated. Drop me a mail.
Feedback is most welcome.
Regards,
Flo
P.S.: yes i will remove the audio rate gain input port in the next
realease. I don't need it and i figure it might confuse DSSI host apps
that try to figure out themselfes how to hook it up.
--
Palimm Palimm!
http://tapas.affenbande.org