Dear SCers,
I’d like to announce miSCellaneous_lib quark v0.23 with a suite of new pseudo ugens: ZeroXBufWr, ZeroXBufRd and TZeroXBufRd for analysis of zero crossings and playing sequences of segments between them (half or full wavesets) with demand rate control.
ZeroXBufWr is for realtime analysis resp. writing zero crossings positions to a buffer, then ZeroXBufRd is for consecutive, TZeroXBufRd for triggered (possibly overlapped) reading. Parameters like zero crossing index, segment number and repetition, playback rate, power, multiplier, add, dir (forward or backward reading) can all be sequenced with demand rate ugens as well as the ‘bufMix’ option for switching between different buffers / waveforms.
ZeroXBufRd / TZeroXBufRd can thus be used for a number of synthesis / processing techniques in a field between classical wavesets [1, 4, 5], pulsar synthesis [1, 3], buffer modulation and rectification (which are both a kind of waveshaping) and stochastic waveform concatenation methods [2, 6]. Consequently soundwise the span is large, reaching from smooth pitched pads over noisy Gendy-like textures to rather bizarre microsounds (ZeroXBufRd help file Ex. 3)
The analysis can be either finished before reading (which gives most flexibility), but also be done only slightly ahead, then reading is of course restricted to already analysed sections, see examples in the help files for this quasi realtime usage. I’ve also added examples with ZeroXBufRd / TZeroXBufRd to the Buffer Granulation Tutorial (1g, 1h).
Thanks to Tommaso Settimi, the development of these classes grew out from an inspiring discussion about the topic.
There are already existing SC waveset implementations, with different emphasis though: Alberto de Campo’s Wavesets quark and Olaf Hochherz’s SPList, which do language-side analysis and Fabian Seidl’s RTWaveSets plugin ugens. My focus has been server-side analysis and especially demand rate ugen control of half waveset parameters as well as multichannel and buffer switch options.
Have fun, regards
Daniel
https://daniel-mayer.at/software_en.htm
PS - help system: I just encountered code to be invisible within the help files after a fresh quark install on SC 3.11 (OSX). This might be related to switching between different SC versions, safely delete the folder “Help” in Platform.userAppSupportDir resp. Platform.systemAppSupportDir, you can also delete the yaml files in the same folder, then restart SC. Also this can help with updates (especially of extensions):
SCDoc.indexAllDocuments(true)
[1] de Campo, Alberto. “Microsound” In: Wilson, S., Cottle, D. and Collins, N. (eds). 2011. The SuperCollider Book. Cambridge, MA: MIT Press, 463-504.
[2] Luque, Sergio (2006). Stochastic Synthesis, Origins and Extensions. Institute of Sonology, Royal Conservatory, The Netherlands. https://sergioluque.com
[3] Roads, Curtis (2001). Microsound. Cambridge, MA: MIT Press.
[4] Seidl, Fabian (2016). Granularsynthese mit Wavesets für Live-Anwendungen. Master Thesis, TU Berlin. https://www2.ak.tu-berlin.de/~akgroup/ak_pub/abschlussarbeiten/2016/Seidl_MasA.pdf
[5] Wishart, Trevor (1994). Audible Design. York: Orpheus The Pantomime Ltd.
[6] Xenakis, Iannis (1992). Formalized Music. Hillsdale, NY: Pendragon Press, 2nd Revised edition.