RjLib
General
The rj-subdirectory of RjLib includes a big collection of useful Pd object for creating scenes. You can browse it at: http://trac.rjdj.me/browser/trunk/rjlib/rj and download it together with the rest of the RjLib using subversion:
svn co http://svn.rjdj.me/scenes/trunk/rjlib/
To get an overview you should open the file rj/OVERVIEW.pd. The abstractions can be freely distributed according to the GPL v3 rsp. the "Standard Improved BSD License" known from Pd itself. Which license applies is indicated by a subpatch in each abstraction. See the file source:trunk/rjlib/rj/LICENSE.txt for the full license texts.
These abstraction are all in a directory called "rj" which can be used as a prefix in order to distinguish between rjlib abstractions and abstractions which are used from the scene directory directly. In order to make things shorter we refer to the abstraction by their name (without the rj prefix) in this document.
All abstraction that will be directly used have a type prefix, where the current types are as follows:
- s_ synthesizers and instruments
- m_ mapping objects (translate events into parameters of synths and effects)
- e_ effects and filters
- c_ control data generation objects
- u_ utilities
- g_ GUI objects
For each section, there is a textfile briefly listing the objects and a short description like this:
s_blsaw - bandlimited sawtooth wave s_blsquare - bandlimited square wave with PWM ...
This is used to dynamically generate an object's listing in rj/OVERVIEW.pd
Communication
The commands that are sent within rjlib are "typed" in a sense that it is differentiated between midi pitches, frequencies, amplitudes, etc.
Suggested standard commands and their arguments are:
- note 67 100: a MIDI note with velocity ranging fro 0-127
- pitch 60: pitch value in midi terms ranging from 0-127
- freq 440: frequency value
- vel 100: velocity value in midi terms ranging from 0-127
- amp 0.4: an amplitude value
- ampdb 99: amplitude value in Pd-dB terms (0=silent, 100=full volume)
- ...
Preset system
rjlib uses a preset system based on the sssad.pd abstraction. Generally the rightmost inlet is reserved for messages whose last state can be saved. Some objects like [s_fm4] use the rightmost outlet as a shortcut to report their state. See the help files for [u_dispatch] and [u_loader] for details on the saving system.
Control
Overview file: source:trunk/rjlib/rj/c.txt
implemented
- c_adsr: standard adsr
- c_adsrj: GUI adsr
- c_mphasor: message phasor for LFO building.
- c_multimetro: variable period metro with counter inside
- c_xfade: linear crossfade
not implemented
- c_touch: preprocess touchscreen and send to touch symbol
- c_accelerate: preprocess accelerometer
- c_pitch: calculate pitch
- c_simpleonset: calculate onset values
- c_classifier: classify sounds
Mapping
Overview file: source:trunk/rjlib/rj/m.txt
implemented
- m_bpm2ms: convert between BPM and periods in milliseconds
- m_scale: scale the incoming values to a certain range
- m_speedlimit: limit message speeds
not implemented
- m_symsel: map number to a symbol
- m_range: filters out a range of values
- m_range2d: filters out a 2d range of values (e.g touchscreen)
- ...
Synths
Overview file: source:trunk/rjlib/rj/s.txt
implemented
- s_blsaw: bandlimited saw wave
- s_blsquare: bandlimited square wave
- s_buzz: Buzz
- s_guitar: karplus strong guitar
- s_looper: sample player with looping and internal file storage
- s_playtable: playback a table
- s_playtable2: playback a table stereo
- s_fplaytable: playback without pitch shifting (faster) +
- s_fplaytable2: playback without pitch shifting stereo +
- s_rhodey: FM Rhodes piano
not implemented
- s_drumelectro: Synthesized electro drumset
- s_drumsample: Sampled drumsounds
- s_sampler: One sample
- s_msampler: Multiple samples
- s_analog: Simple analog synth
- s_fm: Fm synthesis
- soundinput: Sound input
Effects
Overview file: source:trunk/rjlib/rj/e.txt
implemented
- e_alias: resampler generates aliasing effect
- e_bitcrusher: reduce bit depth of a signal
- e_chorus: stereo chorus
- e_chorusr: Roland style chorus
- e_fbdelay: Feedback delay loop + input parameter
- e_fbdelay2: Stereo feedback delay
- e_pan: Stereo panning - constant power using cosine law
- e_phaser: Phaser
- e_pingpong: Ping-pong delay
- e_softclip: Distortion
- e_vocoder: Vocoder effect
- e_reslop: Resonant lowpass filter
- e_reverb: Reverb (maybe wrappers around rev1~, rev2~ and rev3~)
- e_pitchshift: Pitch shifter
- e_freqshift: Frequency shifter
- soundoutput
not implemented
- e_compress: Compressor
- e_flanger: Flanger effect
- e_pfilter: Parametric Filter
- e_dubdel: Delay line
- e_decimate: Bit decimator
Utilities
Overview file: source:trunk/rjlib/rj/u.txt
- u_record: record samples into tables
- u_samplebank: load samples into tables
- u_samplebank2: load stereo samples into tables
- u_stereo: convert mono effect into stereo
GUI
Overview file: source:trunk/rjlib/rj/g.txt
