[PD-cvs] abstractions/footils/rtc-lib LICENSE.txt, NONE, 1.1 README-MAX.txt, NONE, 1.1 README-Pd.txt, NONE, 1.1 pdstart.sh, NONE, 1.1 rtc-progress.csv, NONE, 1.1

Frank Barknecht fbar at users.sourceforge.net
Sun Nov 26 13:56:37 CET 2006


Update of /cvsroot/pure-data/abstractions/footils/rtc-lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3375

Added Files:
	LICENSE.txt README-MAX.txt README-Pd.txt pdstart.sh 
	rtc-progress.csv 
Log Message:
starting to add rtc-lib

--- NEW FILE: README-Pd.txt ---
=======
RTC-lib
=======

Real Time Composition Library for Pure Data
===========================================

This file contains some notes specific to the Pd-version of the RTC-lib. For a
general overview of the scope of the RTC-library please refer to the file
README-MAX.txt. 

Contents
========

RTC-lib was ported to Pd mainly by Frank Barknecht in 2006. The port was made
without access to Max/MSP directly, but as RTC-lib contains excellent
documentation this wasn't really necessary most of the time. To import the
Max-patches, the Cyclone importer by Krzysztof Czaja was used, which turned out
to be an invaluable help.

RTC-lib for Pd contains almost all objects of the RTC-lib for Max/MSP. A
current list of what's still missing is contained in the file rtc-progress.csv.
Max-specific objects to control aspects of the Max-software deliberately have
been left out.

Where nameclashes with existing Pd objects and externals occured, the
respective RTC-objects also have been omitted. So far this only affected the
[minus] abstraction.

RTC-lib for Pd no lonfer mimicks the directory layout of the Max-version with
its seperate directories for each section likt Harmony, Rhythm etc. Instead all
patches and their help files have been put into a single directory called
"rtc".  To install the patches, either add this directory to your path and use
the objects with their standard names, or copy the while "rtc"-directory
somewhere into your path, like into /usr/lib/pd/extra/rtc and use them with a
"rtc"-namespace prefix: Then for example the [super-rhythm] object could be
called as [rtc/super-rhythm]. Note that then you may also need to add the
rtc-directory to your help path with "-helppath /usr/lib/pd/extra/rtc" or
similar, if you want to call the help-files.

Help-files have been placed next to their respective abstractions for
simplicity. They follow the naming convention "NAME-help.pd" to give help for
an abstraction "NAME.pd". Additionally you will find overview patches for each
topic section in the subdirectory "rtc/rtc-help". The main file here is
rtc/rtc-help/RTC-Overview.pd (Later this will be moved to "rtc/RTC-Overview.pd",
but a bug in the [declare] object currently makes this non-functional.

There is a special directory, "pdutils" which contains some small tools that
aided in the porting as well as some abstractions not included in the original
RTC-lib for Max, but that are used in the Pd-version.

Requirements
============

As a lot of the RTC-objects deal with list manipulations there is quite some
overlap with the abstraction collection "[list]-abs" by Frank Barknecht,
available in the Pd repository at http://pure-data.sf.net/. Having this
installed (without any kind of namespace-prefix) is necessary to be able to use
most RTC-lib abstractions.

Apart from that, also objects from the following external libraries have been
used:

* Cyclone (prob, zl, ...)
* zexy (sort,...)
* maxlib (???)

Generally if you install the pd-extended distribution you should be fine and
you will only need to load the respective libraries and adjust the search
paths.

The [play2] abstraction used in several help files optionally can play midi
notes with the [fluid~] soundfont synthesizer. If you don't have [fluid~], you
can also choose to send the midi output to an external player accessed through
[noteout]. See the [play2] help file for details. 

Feedback
========

Please report bugs and feature requests regarding the Pd version to:

Frank Barknecht
http://footils.org
fbar (a) footils.org 

--- NEW FILE: pdstart.sh ---
#!/bin/sh
pd -path Chance:Envelopes:Harmony:Lists:MSP:Toolbox:Rhythm:pdutils -lib cyclone $*

--- NEW FILE: README-MAX.txt ---
=======
RTC-lib
=======

Real Time Composition Library

Software library for algorithmic composition in Max/MSP/Jitter
copyleft 1992-2006 by Karlheinz Essl and others

http://www.essl.at/works/rtc.html


Abstract 
========

This software library - a collection of patches and externals for Max/MSP  -
offers the possibility to experiment with a number of compositional techniques,
such as serial procedures, permutations and controlled randomness. Most of
these objects are geared towards straightforward processing of data. By using
these specialized objects together in a patch, programming becomes much more
clear and easy. Many functions that are often useful in algorithmic composition
are provided with this library - therefore the composer could concentrate
rather on the composition than the programming aspects.

Originally, the Real Time Composition Library (RTC-lib) was developed during my
extensive work on Lexikon-Sonate (1992 ff.), an interactive realtime
composition for computer-controlled piano which I started at IRCAM, Paris in
1992.

Regardless the fact that it was conceived for a specific project it became more
and more obvious that its functionalities are open and generic enough to be
used by other composers in different compositional contexts. Based on paradigms
which have been extracted from serial thinking (cf. Gottfried Michael Koenig
and Karlheinz Stockhausen) and its further development until nowadays it does
not force towards a certain aesthetic, but provides a programming environment
for testing and developing compositional strategies.

The Real Time Composition Library comes with a Hypertext-like on-line help
which allows to have a perfect overview on the library objects and their
multiple relationships.  Thanks to Richard Dudas (Cycling74), Peter Elsea
(University of California, Santa Cruz), Serge Lemouton (IRCAM, Paris) and jasch
who have ported the RTC-lib's externals to OSX.


Content 
=======

The library consists of "abstractions" (Max-patches that appear as objects) and
external objects. Most of them were written by myself, but there are also
contributions from other authors like Gerhard Eckel (GMD, St. Augustin) and
Serge Lemouton (IRCAM, Paris), James McCartney (namely his generic list
objects), and selected list objects from Peter Elsea's (UCSC) Lobject library.
Other contributions came from Claus Philipp, Les Stuck, Timothy Place, Orm
Finnendahl and Trond Lossius. Because the library objects are highly dependent
on each other, it is recommended not to take them apart. 


History 
=======

The devlopment of the RTC-lib started in 1992 when I was working at IRCAM on a
commission - Entsagung for ensemble and live-electronics. Having worked with
computer-aided composition algorithms before on an Atari using an experimental
LOGO implementation I came across Max. I immediately felt in love with it for
it offered the possibility of realtime processing and interactivity. (In LOGO,
it took many hours to calculate a score list which I had to transcribe into of
musical notation in order to analyze it - a very time-consuming procedure).

At this time, Max appeared as programming environment mainly optimized for MIDI
processing. List operations (which are crucial for my own compositional
thinking which stems from serialism) have not been implemented yet.
Higher-level compositional tools were not available, only customized solutions
for specific problems which were not geneneric enough to be used in different
contexts.

In order to create an evironment which enables one to concentrate rather on
high-level compositional questions than on low-level technical problems,
Gerhard Eckel and I started to develop a set of tools which became the corner
stones of the RTC-lib. At the this time, Serge Lemouton (my musical assistant
at IRCAM) wrote "nth" according to my indications, James McCartney released his
"list objects", and a few years later Peter Elsea developed his "LObjects"
(inspired by RTC-lib, as he told me). Some externals from these packages were
included into the RTC-lib, and Peter Elsea was nice enough to port some of my
abstractions (like trans-log) into C-externals.

On this basis, I developed a large number of higher-level compositional
algorithms written as "abstractions" (objects, coded in Max): rhythm
generators, harmony generators, chance operations, ramp generators, MSP
functions etc. which are often based on those primordial externals that have
been implemented by other authors.

Those externals (the low-level side of the RTC-lib) need to be re-compiled for
each operation system. We had to make the shift from 68k processors to PPC, and
now to OSX. In the next turn a port to Windows XP is envisaged. This task would
no have been possible without the help of people from the Max community like
Richard Dudas and Peter Elsea - many thanks!


Literature 
==========

Karlheinz Essl: Lexikon-Sonate. An Interactive Realtime Composition for
Computer-Controlled Piano. Proceedings of the "Second Brazilian Symposium on
Computer Music" (Canela 1995)

http://www.essl.at/bibliogr/lexson-sbcm.html  

Karlheinz Essl: Strukturgeneratoren. Algorithmische Komposition in Echtzeit.
Beiträge zur Elektronischen Musik, ed. by R. Höldrich und A. Weixler, Vol. 5
(Graz 1996)

http://www.essl.at/bibliogr/struktgen.html  

Karlheinz Essl & Bernhard Günther: Realtime Composition. Musik diesseits der
Schrift. Positionen, ed. by G. Nauck, Vol. 36 (Berlin 1998)  

http://www.essl.at/bibliogr/realtime-comp.html

 
Feedback
========

Please report bugs and feature requests to:

Dr. Karlheinz Essl
http://www.essl.at
mailto:essl at eunet.at

--- NEW FILE: LICENSE.txt ---
This software is copyrighted by Karlheinz Essl and others.  The following
terms apply to all files associated with the software unless explicitly
disclaimed in individual files.

The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.

RESTRICTED RIGHTS: Use, duplication or disclosure by the government
is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
of the Rights in Technical Data and Computer Software Clause as DFARS
252.227-7013 and FAR 52.227-19.

--- NEW FILE: rtc-progress.csv ---
16step-seq,"done/help almost",Abstraction,"rhythmical sequencer"
@,help,Abstraction,"Scales a standard slider (ranging from 0 to 127) between min and max."
add%,help,Abstraction,"Adds a certain percentage <int, float> to values <int, float> in left inlet."
alea,done,Abstraction,"random based object"
alea-rhythm,help,Abstraction,"rhythm generator"
anti-bis,done,Abstraction,"Filters out immediate repetitions of integers. Right output sends a bang whenever this occurs."
anti-bis&osc,done/help,Abstraction,"Filters out direct repetitions and when a number has occured the penultimate time"
anti-interval,done,Abstraction,"Filters out a certain interval"
anti-octave,done,Abstraction,"Filters out octaves between two consecutive notes"
anti-octave&prime,done,Abstraction,"Filters out octaves and primes"
anti-osc,done,Abstraction,"Filters out an integer which has occured the penultimate time."
banger,"banger16 done",External,"An object to bang outlets sequentially."
between,done,Abstraction,"random based object"
between-lin,done,Abstraction,"random based object"
between-lin-urn,done,Abstraction,"random based object"
between-log,done,Abstraction,"random based object"
between-log-urn,done,Abstraction,"random based object"
block-bang,help,Abstraction,"Filters out bangs that arrive before a certain time span (""blocking time"") is over."
BPM2ms,done,Abstraction,"Converts beats per minute (BPM) into milliseconds."
brown-melody,done,Abstraction,"Generates a brownian-mouvement-like melody"
brown-rhythm,done,Abstraction,"Generates a brownian-movement-like rhythm"
brownian,done,Abstraction,"random based object"
butfirst,done,Abstraction,"Outputs the input list without its first element."
butlast,done,Abstraction,"Outputs the input list without its last element."
check-octaves,done,Abstraction,"Checks whether an interval list sums up to an octave"
check-row,,Abstraction,"dodecaphonic based object"
choice-rhythm,done,Abstraction,"rhythm generator"
choose-intervals,done,Abstraction,"Chooses a supply between one to five different intervals."
collect,done,Abstraction,"Collects numbers"
contrario,help,Abstraction,"A number <int, float> in left inlet outputs a complimentary number."
cos-slider,done,Abstraction,"Transforms a linear slider into a cosine function."
count-bang,done,Abstraction,"Counts the number of received bangs."
countdown,help?,Abstraction,"countdown object"
cresc-decresc,done,Abstraction,"crescendo / decescendo generator"
crossfade~,done,Abstraction,"Crossfades two input signals according to a sine function which guarantees that loudness of the result is constant."
dB2lin,help,Abstraction,"Converts dB into linear values."
DblBang,,Patch,"Detects single or double bang"
del-fb~,,Abstraction,"Delay line with feedback."
divmod,almost-builtin,External,"divmod is the same as / and % for positive left operands."
dur-from-ED,help,Abstraction,"Calculcats note durations from entry delays (ED) and a duration factor."
ED-rhythm,done,Abstraction,"rhythm generator"
ED-trans,done,Abstraction,"produces a ritardando or an accelerando"
ED2EP,done,Abstraction,"Converts ED (= entry delays) into EP (= entry points)"
first,done,Abstraction,"Outputs the first element of a list."
first-bang,done,Abstraction,"Outputs only the first bang of a stream of bangs"
first-shot,done,Abstraction,"Outputs only the first message of a stream of messages (bangs, ints, floats, symbols, lists) until the right inlet receives a (reset) bang."
frq2note,"done (ftom)",Abstraction,"Converts frequency into a note"
geom,"done, description wrong?",Abstraction,"Int in right inlet outputs the nth member of a geometrical row."
grid-rhythm,done,Abstraction,"rhythm generator"
group,,External,"groups numbers received in succession into a list."
group-rhythm,done,Abstraction,"rhythm generator"
group-rhythm2,done,Abstraction,"rhythm generator"
groups,done,Abstraction,"random based object"
inc-dec,help,Abstraction,"Functional implementation of the graphical user interface object Inc-Dec."
infinity-row,"partially done",Abstraction,"pitch generator"
insert,,Abstraction,"Inserts an element after a position (= index) in the list"
integ,help,Abstraction,"Accumulates input values <int, float> until a bang (or any input) is sent to the right inlet."
intv2ratio,done,Abstraction,"Converts an interval into a ratio."
inv,done,Abstraction,"Calculates the inversion of a number."
join,list,External,"Joins two lists together."
key-bang,"done (also key-bang2)",Abstraction,"Sends out a bang whenever a certain key is pressed."
Ladd,list-abs,External,"An object to add two lists, member by member."
last,done,Abstraction,"Outputs the last element of a list."
Ldiv,,External,"An object to divide one list by another, member by member."
lin2dB,help,Abstraction,"Converts linear values into dB."
listreg,done,External,"this is for lists what the int object is for integers."
listlen,list-len,External,"listlen - outputs the length of a list or anything arriving at its inlet."
Lmult,list-mult,External,"An object to multiply two lists, member by member."
loop-sf~,,Abstraction,"Loops a selected mono sndfile."
Lpow,,External,"An object to raise the members of a list to the powers set in another list."
Lrem,,External,"An object to divide one list by another, member by member and output a list of the remainders."
Lround,"list-apply round",External,"Rounds off members of a list to desired precision."
Lsub,list-sub,External,"An object to subtract two lists, member by member."
make-choice-list,done,Abstraction,"random based object"
make-ED-scale,done,Abstraction,"list generator"
make-scale,done,Abstraction,"list generator"
make-trans-scale,"almost - trans-exp!",Abstraction,"list generator"
markov,done,Abstraction,"probability based object"
markov-harmony,done,Abstraction,"pitch generator"
markov-rhythm,done,Abstraction,"rhythm generator"
max-menubar,ignore,Abstraction,"1 or 0 send to the inlet (or given as the argument) switches MAX's menubar on or off."
max-overdrive,ignore,Abstraction,"1 or 0 send to the inlet"
max-quit,ignore,Abstraction,"Quits MAX immediately - BEWARE!"
member,,Abstraction,"list based object"
metro-dev%,done,Abstraction,"rhythm generator"
minus,"nameclash with maxlib!",External,"Simply makes the negative of an int sent to the input."
ms2sec,done,Abstraction,"Converts milliseconds into seconds."
MSP-iovs~,ignore,Abstraction,"select I/O vector size"
MSP-sigvs~,ignore,Abstraction,"select signal vector size"
MSP-sr~,ignore,Abstraction,"Sets the sampling rate of MSP."
MSP-takeover~,ignore,Abstraction,"MSP takeover"
multiple,done,Abstraction,"list based object"
neutral-harmony,done,Abstraction,"pitch generator"
normalize-row,done,Abstraction,"Normalization of a twelve-tone row"
note2cents,done,Abstraction,"Shows how many cents a microtonal note <float> is deviating from a tempered one."
note2frq,"done (mtof)",Abstraction,"Converts a note into frequency."
note2pitch,done,Abstraction,"Outputs the pitch class of a note"
note2st,done,Abstraction,"Outputs the intervals of an incoming stream of notes"
nth,done,External,"outputs the nths element of a list"
panning,,Abstraction,"Equal power panning based on John Chowning's paper ""Simulation of Moving Sound Sources""."
pass,done,Abstraction,"Let a certain percentage of bangs pass."
pass-bang,help,Abstraction,"Let every nth bang pass."
per2pass,done,Abstraction,"Converts a periodicity factor <float between 0 and 1> into a percentage value <int between 0 and 100> for the pass-object."
periodic,done,Abstraction,"random based object"
permutate,done,Abstraction,"random based object"
permutate-row,"ask kHz",Abstraction,"dodecaphonic based object"
permute,"help done, object difficult",External,"returns the nth permutation of a list"
piece,,Abstraction,"list based object"
pitch-from-intervals,done,Abstraction,"pitch generator"
pitch-from-row,,Abstraction,"pitch generator"
pitch-from-row,,Abstraction,"pitch generator"
pitch-from-row-mod,,Abstraction,"pitch generator"
pitch-from-row-mod,,Abstraction,"pitch generator"
pitch2note,done,Abstraction,"Combines pitch class and register into a note"
play,help,Abstraction,"Plays a note whenever a key number is sent to the left inlet."
play-samp~,done,Abstraction,"Plays one sample."
play2,done,Abstraction,"Plays a note whenever a key number is sent to the left inlet."
position,,External,"position - sorts a list in the left inlet using the index numbers in the right inlet."
QT-PercPlayer,,Abstraction,"Plays the General MIDI percussion instruments directly from Quicktime"
random-norep,done,Abstraction,"random based object"
random-pan~,,Abstraction,"random pan"
random-ramp,done,Abstraction,"Generates randomly fluctuating envelope shapes of a given dynamic scale"
random-row,done,Abstraction,"random and dodecaphonic based object"
RandomSeeder,imported,Abstraction,"random based object"
ratio,done - nameclash with creb!,Abstraction,"Chooses elements from a supply <int list> which are repeated according to a multiple list <int list> by using the ""series"" selection principle."
ratio2intv,done,Abstraction,"Converts a ratio into an interval"
reanimate,help,Abstraction,"Sends out a bang on right outlet after x miliseconds if there has been no input bang in left inlet during x miliseconds."
remove,,Abstraction,"Removes the nth element of a list."
remove-dc~,,Abstraction,"Removes the DC offset of an audio signal."
repchord-rhythm,done,Abstraction,"rhythm generator"
repeat-ED,done,Abstraction,"sends out a certain number of rhythm bangs"
replace,"similar to list-replace",Abstraction,"Replaces an element of a list"
reverse,list-rev,External,"reverses a list of numbers."
rit-acc,done,Abstraction,"Generates a ritardando or an accelerando"
rota,done,Abstraction,"random based object"
rotate,list-rot?,External,"cyclically rotate a list"
round,help,External,"round to next higher integer"
roundto,help,Abstraction,"A number sent to right inlet is rounded onto a certain ""grid"" <int, float> sent to right inlet."
row-modus,,Abstraction,"dodecaphonic based object"
samp10~,done,Abstraction,"Allows a polyphony of up to 10 samples at the same time."
scale-changer,done,Abstraction,"scale changer"
schweller,done,Abstraction,"decrescendo-crescendo envelopes generator"
scramble,done,External,"scrambles the order of a list of numbers."
sect,,External,"outputs a list which contains only atoms that appear in both input lists."
sel-princ,done,Abstraction,"random based object"
sequence,done,External,"outputs the next element of a list"
serial-rhythm,done,Abstraction,"rhythm generator"
series,done,Abstraction,"random based object"
show,done,Abstraction,"Displays a list in a message box."
showchord,,Abstraction,"Shows the pitch of a chord of MIDI note numbers."
shownote,,Abstraction,"Shows the pitch of a MIDI note number."
slice,"list split x",External,"divides a list in two."
smooth-line,done,Abstraction,"Interpolates smoothly between successive input values."
sneak,done,Abstraction,"random based object"
sneak-random,done,Abstraction,"random based object"
sneak-rhythm,done,Abstraction,"rhythm generator"
sort,zexy,External,"sorts a list."
st2pitch,done,Abstraction,"Accumulates incoming intervals and outputs pitch classes"
sum,list-accum,External,"Sums up a numerical list containing integers and/or floats."
super-rhythm,"needs work",Abstraction,"rhythm generator"
trans,done,Abstraction,transition
trans-exp,"ask kHz for screenshot",External,"exponential transition"
trans-lin,done,External,"linear transition"
trans-log,done,External,"logarithmical transition"
transp-pitch,done,Abstraction,"Transposes pitch classes by a certain interval."
transpose-row,done,Abstraction,"dodecaphonic based object"
union,"zl union",External,"union - outputs a list which contains all atoms that appear in either or both input lists."
unique,,External,"unique puts out a list comprised of those items in the left input list that are not contained in the right input list."
VolAmb,"uses Table",Abstraction,"Controls the ambitus between minimum and maximum dynamic by a single controller."
xrandom,done,Abstraction,"random based object"





More information about the Pd-cvs mailing list