miSCellaneous:
Filter:
miSCellaneous_lib/Overviews (extension) | Libraries > miSCellaneous

miSCellaneous
ExtensionExtension

a library of SuperCollider extensions (c) 2009-2020 Daniel Mayer

Description

Version 0.24 contains these class and help files (SCDoc and old HTML system):

  1. Introduction_to_miSCellaneous: recommended starting point.
  2. VarGui : a slider / player gui to set envir variables and synth controllers and play synths, event patterns and tasks, see also VarGui_shortcut_builds. HS_with_VarGui, a specific tutorial about the combination of HS family and VarGui.
  3. General tutorials: Event_patterns_and_LFOs contains an overview of related LFO-control setups with event patterns. Event_patterns_and_Functions is treating requirements of the control of EventStreamPlayers with VarGui. Event_patterns_and_array_args focusses on passing arrays to synths with patterns. enum is a general enumeration method suited for many combinatorial problems such as listing subsets, partitions of integers, searching for paths within graphs etc.
  4. PLx_suite, dynamic scope variants of common Pattern classes for convenient replacement. Can be used for shorter writing of Pbinds to be played with VarGui and / or live coding, see PLx_and_live_coding_with_Strings. PLbindef and PLbindefPar as subclasses of Pdef allow replacement of key streams in shortcut pseudomethod syntax.
  5. PSx_stream_patterns, Pattern variants that have a state and can remember their last values. Can be used for recording streams and event streams (PS), data sharing between event streams (PSdup), comfortable defining of subpatterns with counted embedding, defining of recursive (event) sequences (PSrecur) and building loops on given Patterns/Streams with a variety of options, also for live interaction (PSloop).
  6. Event pattern classes for use with effects: PbindFx can handle arbitrary effect graphs per event, PmonoPar and PpolyPar follow the Pmono paradigm. The tutorial kitchen_studies contains the documented source code of a fixed media piece using PbindFx for granulation.
  7. Further Pattern classes: PlaceAll, Pshufn, PsymNilSafe. PSPdiv is a dynamic multi-layer pulse divider based on Pspawner.
  8. Buffer_Granulation, a tutorial covering different approaches of implementing this synthesis method in SC (server versus language control, mixed forms), examples with VarGui, language-driven control with PLx_suite patterns. The tutorial Live_Granulation summarizes direct options without explicit use of a buffer.
  9. A family of classes for the use of synth values in Pbind-like objects. Take Guide_to_HS_and_HSpar as a starting point, see also HS, PHS, PHSuse, HSpar, PHSpar, PHSparUse, PHSplayer, PHSparPlayer, PHSusePlayer
  10. EventShortcuts, a class for user-defined keywords for events and event patterns. The tutorial Other_event_and_pattern_shortcuts collects some further abbreviations, e.g. functional reference within events and event patterns, similar to Pkey.
  11. An implementation of Xenakis' Sieves as class and pattern family, see Sieves_and_Psieve_patterns for an overview and examples.
  12. FFT pseudo ugens for defining ranges by bin index: PV_BinRange and PV_BinGap.
  13. Smooth_Clipping_and_Folding, a suite of pseudo ugens.
  14. DX_suite, pseudo ugens for crossfaded mixing and fanning according to demand-rate control.
  15. Idev_suite, patterns and drate ugen searching for numbers with integer distance from a source pattern / signal.
  16. Nonlinear dynamics: Fb1 for single sample feedback / feedforward and GFIS for generalized functional iteration synthesis. Fb1_ODE for ordinary differential equation integration.
  17. ZeroXBufWr, ZeroXBufRd, TZeroXBufRd, pseudo ugens for analysis of zero crossings and playing sequences of segments between them with demand rate control. Dwalk, a pseudo demand rate ugen that supports specific synthesis options with ZeroXBufRd.

Many of the examples here are using patterns, resp. event patterns but do not cover their basic concepts. For a detailled description of SC's sequencing capabilities see James Harkins' Practical Guide to Patterns (Pattern Guide 01: Introduction), the tutorial Understanding Streams, Patterns and Events - Part 1, and the Pattern help files (Pattern, Pbind and the type-specific ones).

VarGui handles namespace separation by using different Environments. So a gui for control of parametrized families of different types of objects can be built on the fly (e.g. a number of EventStreamPlayers from a single Pbind definition with snippets of functional code, a number of Function plots from a single parametric function definition etc.). See Environment and Event helpfiles for the underlying concepts and Event_patterns_and_Functions and PLx_suite for their application to Event patterns resp. EventStreamPlayers.

Requirements

At least SuperCollider version 3.6 but newer versions are recommended, with 3.6 you'd have to use Qt GUI kit, which is the only option anyway from 3.7 onwards. Unable to test on 3.5 anymore, code might work, anyway old help is still supported.

If you still use Cocoa or SwingOSC with these old SC versions, you can take miSCellaneous 0.15b and add classes and help files from a newer version of miSCellaneous.

For using VarGui with EZSmoothSlider and EZRoundSlider you would need to install Wouter Snoei's wslib Quark, one buffer granulation example using Wavesets depends on Alberto de Campo's Wavesets Quark.

I tested examples on SC versions 3.6 - 3.11, on OS 10.8 - 10.13, Ubuntu 12.04 and Windows 7, 10; though not every platform / OS version / SC version combination.

SCDoc issues (SC 3.10)

With SC 3.10.0 - SC 3.10.2 there are issues with evaluating code in the help file examples (double evaluation). For these versions you'd rather copy the help file code into scd files and run it there. Double evaluation has been fixed with 3.10.3 (August 2019). With SC updates to 3.10 it might happen that help file examples are invisible. In that case delete the Help folder which resides in one of these places, depending where you have installed:

Then restart SC.

Installation

By version 0.17 you can install either via the quarks extension management system or a downloaded zip from GitHub or my website. Both methods shouldn't be combined, e.g. if you have already done a manual install before by placing a miSCellaneous folder in the Extensions folder, then remove it from there before the quarks install.

1.) Installation via Quarks

This requires a SC version >= 3.7, see the recommended ways to install here:

http://doc.sccode.org/Guides/UsingQuarks.html

https://github.com/supercollider-quarks/quarks

After a install of a newer version of miSCellaneous do a SCDoc update by

2.) Manual installation from a downloaded zip

You can download the newest version from

https://github.com/dkmayer/miSCellaneous_lib

and the newest and all previous versions from here:

http://daniel-mayer.at

Copy the miSCellaneous folder into the Extensions folder and recompile the class library or (re-)start SC. If the Extensions folder doesn't exist you'd probably have to create it yourself. Check SC help for platform-specific conventions (or changes) of extension places.

You can check Extension directories with

On Windows see the README file of SC for the recommended extensions path. On Windows and OSX you might have to make the concerned folders visible, if they aren't already. The miSCellaneous folder should be placed directly into the Extensions folder, not into a subfolder.

After a install of a newer version of miSCellaneous do a SCDoc update by

License

miSCellaneous is distributed under the GNU Public License in accordance with SuperCollider. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Contact

Email: daniel-mayer@email.de

URL: http://daniel-mayer.at

Credits

Many thanks to James McCartney for developing SuperCollider, Alberto de Campo for showing me its capabilities, Wouter Snoei for his nice slider classes in wslib, Nathaniel Virgo for his suggestions for feedback, David Pirrò for his hints concerning ODE integration, James Harkins for his remarks on many things and the whole community for contributions and hints !

History

v0.24 2020-07-08

v0.23 2020-04-19

v0.22 2019-08-14

v0.21 2018-07-25

v0.20 2018-05-21

v0.19 2017-11-22

v0.18 2017-09-26

v0.17 2017-08-21

v0.16 2017-03-03

v0.15 2017-01-04

v0.14 2016-08-25

v0.13 2015-10-28

v0.12 2015-05-03

v0.11 2015-02-02

v0.10 2014-10-06

v0.9 2014-02-18

v0.8 2013-05-05

v0.7.1 2013-04-28

v0.7 2012-08-31

v0.6 2012-05-19

v0.5 2012-03-18

v0.4 2011-12-27

v0.4_beta 2011-08-18

v0.3 2010-10-21

v0.2 2010-09-18

v0.1 2009-11-24