[ann] miSCellaneous v0.16 - Live Granulation tutorial, multi-layer pulse divider
miSCellaneous v0.16, link at bottom, comes up with these two news:
.) PSPdiv is a dynamic multi-layer pulse divider implemented as subclass of Pspawner. You can use it for ornamentation of lines, polyrhythmical structures, granulation etc., the help file contains examples for all this.
Several layers of event patterns can be scheduled by layer specific divisions and a pulse, which is valid for all layers. All can be irregular as controlled by patterns itself. The type of embedding (sequential or parallel as with Pspawner) can be defined layer-specific and with patterns. Event patterns can also be generated by Functions and e.g. be built on current data / divisions this way.
I‘ve put the graphic example from the help file online, time division in space notation scheme with two layers and embedding of sequential type:
A sequence of regular or irregular pulses is given as pattern of floats, these durations are marked as proportional spaces in the graphic. The sequence of divBases collects groups of pulses and divides them according to the sequence of divs. The resulting durations of each layer are again marked by proportional spacing, common entry points of layers are marked by emphasized vertical lines. The idea grew from a discussion on devs list:
Many thanks to Ron Kuivila for Pspawner, which is such a versatile and comprehensive class! I‘m aware of its possibilities for a long time, but yet haven‘t done enough to explore its great potential practically.
.) Live Granulation - tutorial
I added this as complement to the Buffer Granulation tutorial. It contains some examples for server- and language-driven granulation of live input without explicit use of a buffer. This is a summary and extension of a recent discussion on users list concerning timing issues with language-based live granulation. Tutorial example 2d compares the inaccuracy effects occuring with language-driven granulation with Out.ar, OffsetOut.ar + In.ar and the workaround I suggested then:
You can run it and see the resulting audio file in an editor, it contains the synthisized input signal in the left and the granulated signal in the right channel, which makes the differences quite clear.
Two implementational changes:
.) I replaced all usages of OSCpathResponder by OSCFunc. This concernes classes HelpSynth, HelpSynthPar and VarGuiPlayerSection. So far everything works as expected, thanks to Scott Wilson for this!
.) With version 0.16 the split between miSCellaneous a- and b-branches has been dropped. It seems to me that Cocoa and SwingOSC are hardly used anymore. If you still like to work with these GUI schemes with SC 3.5 or 3.6 – is anybody out there ? –, you can use version 0.15b and add the new classes and help files manually.