This is a reference list of just about all of the abstractions available in the s-abstractions toolkit, and how to use them. See the tutorial for a more indepth explanation of how to integrate state saving, and general patching style using these objects.
[s-varseq] is a variable length drum sequencer in which beats are grouped together according to the second two numbers. The left inlet is a lookup number for which of the sliders to output to the left outlet. The two numerical parameters are the number of bars and the number of ticks per bar respectively. As you can see the sliders are divided into segments according the numbers specified. The last parameter is the name of a receiver to listen on to do lookups. In the example it's set to timer/tick, so if you had an s-metro called 'timer' this sequencer would automatically receive tick events from it. The red tab indicates the position that is currently being looked up. The value is output on the left outlet and sent via a sender, in this case named snare/value, or in other words name-of-abstraction/value.
[s-env~] is a variable length audio rate envelope generator. To draw your envelope, hover the mouse over a point holding down the Ctrl key. You will notice that as you move the mouse over the point it makes a small plus sign + , or a cross X. When the plus sign + is showing, you can click and drag to make a new point. When the cross X is showing, clicking the point will delete it. In this way you can draw custom envelopes. The [s-env~] abstraction outputs an audio rate signal of the drawn envelope which lasts as long as the integer input at the left inlet. You can also use a sender to trigger the envelope. In this case it would be named ping/shot, or in other words name-of-abstraction/shot.
[s-ezdac~] is a wrapper for dac~ with sssad state saving built into each slider. This actually came from an original abstraction by Frank B called 'ezdac~' and it was the first ever s-abstraction. Like many of the synth units included in s-abstractions you can control all of the sliders by sending messages to name-of-abstraction/parameter. So for example, to set the panning position on this slider, send a message using [s out1/pan]. This is also true of all effects units listed below. Another thing to note is that all values use the midi standard 1-127, although because this is Pure Data you can actually specify decimal point accuracy such as 65.432234. [s-ezdac~] takes two audio inlets (left and right).
[s-metro] is a basic tick-maker. You can use it to drive various things like sequencers, and to synchronise your patches. It will send out every beat, tick, beats-per-minute changes, etc. in senders named as follows, assuming you have named your s-metro "timer". You can catch them using these receiver names:
- timer/tick - every single tick, numbered.
- timer/beat - every beat, numbered.
- timer/bpm - the beats per minute, if they change.
- timer/ticksperbeat - the number of ticks per each beat, if they change.
- timer/beatsize - the length in ms of one beat.
- timer/ticksize - the length in ms of one tick.
[s-loader] allows you to load wave files into Pd arrays for use with other abstractions such as [s-samplepiece~]. To use it, first create a new array. Next, shift-click on the tablename field and type the name of the array that you just created. Next, click 'open' and choose a file. Once the wave file is loaded, it will display the size in the size box. Note that this will usually unset the 'save contents with patch' flag, so if you want your array to be saved with the patch you'll need to re-enable it.
Then there are many different effects units included with s-abstractions such as:
- [s-filter~] - [vcf~] wrapped in a nice GOP abstraction with sssad.
- [s-fuzz~] - uses [wrap~] to distort.
- [s-repeater~] - hold 2 seconds each time [bonk~] is triggered and repeat at the rate specified.
All of these abstractions share the same properties as [s-ezdac~] in that their parameters can be set using named sends of the form name-of-abstraction/name-of-parameter. They mostly have audio inlets and audio outlets.
These guys all generate noises: [s-adsynth~] [s-bassdrum~] [s-oldschool~] [s-pluck~] [s-perc~] [s-krafty~] [s-synth~] [s-snare~] [s-samplepiece~] [s-303~] which accept midi messages to play notes so you can plug your midi synth or drum machine directly into Pd and trigger them.
- [s-midimonitor] - displays all midi traffic
- [s-midictl] [s-midinote] [s-miditrigger] - capture midi events and send them to something by name.
- [s-midimemory] - remembers a sequence of midi numbers and loops it if you turn the knob to 127.
Randomly useful non-GOP abstractions
- [s-mseq] - turns a binary number into a beat.
- [s-lookup] - selects from a list of numbers by index.