[REBOL] Rebol/View cousins => KeyKit + PureData: Interesting toolkits and grap
From: jasonic::panix::com at: 29-Sep-2001 22:01
INTRO
Diving into Rebol/View examples reminds me of KeyKit and PD PureData[+GEM].
These are two very cool free toolkits developed for programmer/musicians
wanting
to do develop interactive virtual instruments for broad MIDI handling,
algorithmic processing and custom virtual instruments.
For those of you interested in Languages and frameworks, especially ones
oriented towards dynamic scriptable interfaces, I recommend to explorer
these. Hard to describe.. your really have to experience them to appreciate.
But in a nutshell ...
Fun, smart, and full of good ideas.
KEYKIT
KeyKit is a wonderful object-oriented Midi processing toolkit developed by
Tim Thompson. It is free and runs fairly cross-platform. KeyKit does one
thing brilliantly: process MIDI [Musical Instrument Digital Interface], but
to accomplish this, its author went much further and created a powerful
object-oriented language, similar to Python.
Like Rebol/View the entire graphical user interface in KeyKit is also
written in KeyKit. Almost everything is [platform-independent] readable
ASCII
.k files. The GUI has some very interesting ideas for reducing window
clutter
by encouraging PAGES [multiple screens a little reminiscent of Amiga's
screen idea]. The interface is minimal black and white, but that does not
stop it being incredibly powerful adn useful. Another original idea is a
kind
of pop-up palette device for selecting tools/actions. A right click pops up
a tool menu palette. This also has sub-menus, and at any time one can 'tear
off' and item placing it on the page for direct access. Selecting a
function from the menu, say COPY, MOVE, DELETE, RESIZE etc. puts the system
into that mode, waiting for one to pick an object to apply the function to.
This is very similar to the famous interface Form.Z use for its approaches
architectural 3D solid modeling. Syntactically, this is identical to the
way much of Rebol behaves too - an action is indicated it waits for some
target next on the stack, kind of smart forward-polish Forth.
Free download:
http://nosuch.com/keykit/
PD: PUREDATA
PD, short for Pure Data, is a graphical programming language for audio and
multimedia, written by Miller Puckette.
http://crca.ucsd.edu/~msp/software.html
GEM (Graphics Environment for Multimedia) by Mark Danks, is a library that
is loaded into PD to add real-time OpenGL rendering and pixel graphics,
using
the same graphical programming paradigm.
http://www.danks.org/mark/GEM/
There used to be a strange and wonderful creature called HSML [Hierarchical
Music Specification Language]. It was written in powerful modern Forth and
ran on Amigas [JFORTH] and Macintoshes. Programming HMSL was all ASCII text
files, though it included an great library of examples by its tireless
developer, Phil Burke and colleagues.
http://www.softsynth.com/hmsl/hmsl_details.html
http://www.softsynth.com/jforth/
Then came MAX, a fabulous visual programming and script toolkit for
experimental virtual MIDI instruments and more. Developed at IRCAM in Paris,
MAX was available for SGI and Macintosh.
http://www.musicmachinestudio.com/max_links.html
Now comes PD or PureData, a sort of liberated son of MAX, niece of HSML. PD
is an opensource development by Miller Puckette one of the original authors
of Max, and now at the Center for Research in Computing and the Arts, San
Diego http://crca.ucsd.edu/
PD is a visual programming tool which has clever interfaces combining
interactive widgets with written syntax. Everything is a word with inputs
and outputs, which for real-time media signal processing makes it akin to
Rebol. In PD these words are visible graphics elements where one makes
literal connections to oth her words. Given the paradigm I am wondering how
to implement such a design in Rebol/View and how exploring PD adn KeyKit
might influence Rebol/View positively in the future
GEM: http://www.danks.org/mark/GEM/
FAQ: http://www.pure-data.org/
DOCS: http://www.pure-data.org/doc/
http://www.crca.ucsd.edu/~msp/Pd_documentation/index.htm
- Jason