Difference between revisions of "ChucK/Features/Main"

From CSWiki
Jump to: navigation, search
(ChucK Feature Requests)
(ChucK Feature Requests)
Line 2: Line 2:
For debates on priority for the next release(s) see [[ChucK/Features/Release]]
For debates on priority for the next release(s) see [[ChucK/Features/Release]]
* Perhaps Std.mtof() could get support for Scala files?
* TCP/IP support (dt)
* TCP/IP support (dt)
* Extend ''maybe'' to include ''possibly'' (25%) ''maybe'' (50%) & ''probably'' (75%)
* Extend ''maybe'' to include ''possibly'' (25%) ''maybe'' (50%) & ''probably'' (75%)

Revision as of 16:39, 8 December 2007

ChucK Feature Requests

For debates on priority for the next release(s) see ChucK/Features/Release

  • Perhaps Std.mtof() could get support for Scala files?
  • TCP/IP support (dt)
  • Extend maybe to include possibly (25%) maybe (50%) & probably (75%)
  • run ChucK as a VST plugin inside other hosts
  • a debug/trace option and/or debugger for easier debugging and ChucK learning.
  • [Linux] ALSA sequencer support for MIDI control.
  • Ability to compile support for several IO schemes.
    • Maybe by making this kind of stuff modular (welcome to plugin land).
  • Maybe support for using/controlling LADSPA plugins? http://www.ladspa.org
  • Include statement. Would make it easier to reuse code
  • Ogg/Vorbis
  • FLAC
  • ChucK for Puredata
  • envelope ugen capable of curved envelopes
  • Auto-Fades for + - =
  • ChucK as a DSSI plugin, http://dssi.sourceforge.net/
  • Instructions/tips for people using ChucK on Windows XP
  • when using --add print out the status line (to VM console)
  • Function pointer types, so that sporked code can be pointed at controls as well as ugens.
  • anonymous function blocks. e.g. spork ~ { dosomething }. Why? because it would be really useful for scoring multiple voices when playing melodic instruments. Makes it possible to easily write scores in ChucK.
  • Either support for include files, or support for #line directives in the parser so that a C preprocessor can be used.
  • support for timed OSC messages.
  • Ability to pass in command-line parameters: Place any command-line arguments of the form "NAME=VALUE" into the environment, so that they it be access with getenv(). (or maybe -"-defineNAME=VALUE"). Or both.
  • Add support for Mac OS X CoreMIDI port aliases so synths can be easily assigned correctly to interfaces. (see MIDIpatchbay for implementation example)
  • Turn MIDI .msg parsing into a system of functions like was done with the HID (".isNoteOn()", ".isControlerChange()", etc) especially with a eye towards future incorporation of clock mesages and so on.
  • Make the data coming from --status available from inside ChucK as well as aditional functions to determine a shred's parent and childeren (if any). relevant quite from mailing list;
  • Jack support (especially on Linux)! Would take care of a couple of request above. 2 channels/shred would be nice, but not necessary.

Maybe something like a array returned by a function (something like "machine.shredList()" ?)that would list the active ID's and functions like "machine.children(shred-id)" that would return a array of a shred's childeren by id, " machine.sporkTime(shred-id)" and so on.

  • References for primitives.
  • Remove and replace shreds by name!
  • Declare dependencies between .ck files.
    • I use public classes a lot to share things between files (clock events, for instance) -- since there is only one public class allowed in each file, it is necessary to use several files for implementing various functionality, but remembering which ones need which becomes a challenge!
  • Check for existence of an identifier.

Good Ideas

  • arrays (DONE)
  • file inclusion (header files)
  • objects (DONE)
  • synchronous / asynchronous events (DONE)
  • implicit casting (DONE)
  • global value map
  • shred local adc/dac
  • cross chucking
    • what is cross chucking?
  • stereo (DONE)
  • multi-channel (DONE)
    • wow, it's only mono? (not anymore!)
  • OSC (OpenSound Control) ( SOME )
  • automatic OSC address spaces ; /machine/shred[1]/variables/foo , /machine/add ( ON THE WAY )
  • midi parsing/routing object ( SOME )
  • sndbuf proper sndbuf / sndplayer / sndrecorder collection
  • duration expressions
  • widgets ( once visuals are up )
  • synchronization
  • ability to remove a shred AND the shreds it sporked (its children) from the command line. (DONE)

(potential) parallel efforts

  • GLucK: (OpenGL for ChucK) this is almost ready for release
  • TrucK: ChucK to C/C++ translator (for embedded platforms, and for non-on-the-fly native compilation). Paul Botelho and I talked about this last night. (I just now made up the name)
    • Would it be possible to run it on processors without floating point support, like StrongARM / Xscale?
  • JucK: Using Jave to build GUI's, communicate with chuck via OSC

Bad Ideas

  • make ChucK more like COBOL
  • MucK: okay, this is going further into la-la land. MATLAB / ChucK extension.
    Diemo Schwarz and I had once envisioned this renegade concept of doing analysis in MATLAB and (somehow) using ChucK from within MATLAB to quickly (and concurrently) playback/synthesize/audisize on-the-spot. I wonder if anyone still wishes for this.
  • MUSHCK: Multi-User Shared Hallucination ChucK. Multiple users can log in to the VM process, chat with each other and interact with ChucK remotely, while ChucK sends audio streams back to them. ( Hey this is a ctually quiet good! We can already do this, except the audio streams. Decentralised, p2p, VM would be awesome (as well as risky for both your ears and system)!)
  • SucK: we need a really bad idea to go with this.
  • BucK: the commercial version
  • DucK: ChucK for migrating fowl
  • HucK: ChucK for those lazy afternoons floating down the Mississippi River
  • KucK: Realtime sauerkraut generator
  • LucK: A ChucK program that works the first time
  • Pluck: A ChucK program with strings attached.
  • PucK: Live performance version of ChucK in which the program is controlled by hockey players.
  • QucK: A ugen for DucK
  • RucK: A ChucK concert given by an unemployed Wall Street television personality.
  • StucK: A ChucK program that contains an infinite loop.
  • TucK: Any ChucK program that generates lullabies.
  • YucK: A ChucK program that executes correctly but which otherwise seems generally unpleasant.