diff options
Diffstat (limited to 'desiredata/src/notes.txt')
-rw-r--r-- | desiredata/src/notes.txt | 300 |
1 files changed, 0 insertions, 300 deletions
diff --git a/desiredata/src/notes.txt b/desiredata/src/notes.txt deleted file mode 100644 index 26393dfb..00000000 --- a/desiredata/src/notes.txt +++ /dev/null @@ -1,300 +0,0 @@ ----------------- dolist -------------------- -done: -plug-in support -atan2 inlets switched -queued graphics updates for tables, number boxes -cut/paste text (needs more testing) -add standard bindings (ctl-o, etc) to dialogs -separate audio on/off from nchans -setuid flag in configure script -settings saver (registry in Windows; .pdrc in linux; defaults system in OSX?) - audio API - MIDI -- fix to read MIDI on startup (rest works?) - path - startup flags - libs -better params: - extra flag for path - startup flags - startup libraries -printout to pd window -startup from GUI -%x to %lx in all "tags" to make 64-bit safe -portaudio_pd files into src -t_int to int in binbuf_addv -64-bit fix to externs makefiles -new filter objects: cpole~, fpole~, etc. -put in Wini's RME ALSA code; there are still bugs... -portaudio fixed for inchans != outchans, e.g., emi emagic (2/6) -sprout inlets/outlets on objects whose creation failed. -uploaded to CVS -bug fix: click on minaturized subpatch fails to "vis" it -bug fix: CK on Oct. 4 (crash changing font size) -sched_idle hook -fixed startup flags, path, etc. so that spaces, "," chars, etc., are allowed -configure script fixed to handle enable- and disable- correctly -fixed spaces in "startup" dialog - -doc: -document env~ second argument (and why is it no less than 1/10 of first???) -vibrato example - -problems: -'[' in numbox label breaks it (Yury Sept. 3) -soundfiles with 3-byte samples buzz for the first readsf buffer (bug/x.pd) -read xx.txt in "bad" gives warnings -writesf -- "open" without "0" misses closing the previous file. -Also writesf~ acts differently if DSP is off when "open" is sent? -qlist - 'next 1' seems not to work -Krzysztof's qlist_next reentrancy bug -don't draw in/outlets on gui objects in graph-on-parent -font size should depend on subpatch/abstraction -moving a bang toward top of window creates problem -check what happens when going back and forth between graph-on-parent -get rid of messages causing renaming; try to prevent patches closing themselves. -dac~/ adc~/ block~ incompatibility -scofo reports error on reading score1.txt -rfft~ loses nyquist bin -- see "to hell with it" comment in d_fft.c -open_via_path() followed by close() fails in windows? [can't reproduce] -loading e-mailed patches without removing headers crashes pd -pd $1 bug ($1 is saved as it was evaluated, not as '$1') -data copy/paste doesn't check templates aren't changed -figure out why Pd sometimes crashes when you close example after adding fields -check if _vsnprintf with zero argument in windows works any better... - -next release: -update portmusic to latest -IEM guis to use queued updates -pixel font sizes -pd to find running ones (pd -new to defeat) -"enter" into object box to create new one (also, changing borders? forking?) -tab to jump to a connected object (first one?) (shift-tab to back up?) -tables: - if there's just one array, don't do stringent hit check. - array click protection (Krzysztof's suggestion) - make graph labels persistent and add to dialog - object to get/set table size; random; quantile - flag to hide array names -queued graphics updates for IEMGUIs and scalars -document tabwrite~_start -think of a way to embed abstractions in a patch -make watchdog work for MACOSX -GOP bounding box object -IEMGUIs better default font size -search path to include both calling patch and abstraction, if different -abstraction reload shouldn't have to vis everyone -addcomma message to message -pasting should look at current mouse location -delete-in-rectangle message to Pds -put serial object in main dist (see rat@telecoma, Apr. 25; winfried May 22) -open/save panel to take messages to init directory, and to set extent list -flags to defeat pre-loading specified classes -expr to parse exponential notation - - -data: -arrays of non-existent templates crash -vget, vset traversal objects -cursor to show (x, y) location -better hit detection (getrect is too greedy; try tk's "current" tag for canvas) -click on points of plot -typing & dragging drawnumbers -fix templates to be loaded on demand and belong to a globally known patch -test and debug list elements of templates -sublists should display on parent if desired? -sublists seem not to handle canvas allocation right (get.pd->pointer.pd bug) -scalar hook to catch the mouse -protect against "plots" going away while you drag on them - -more features: - --Wno-unused to -Wno-unused-paramter and clean up unused automatic variables -security module system in 2.6 - see the kernel module replacing jackstart -signal inlets to sense signals; fix +~ etc, vcf~, biquad~, other filters -mess with RME ALSA some more; ALSA readn doesn't work yet; use mmap? -try to reduce startup time -investigate gcc 3.3 warnings; try to reinstate -fstrict-aliasing -message dialog not to disappear -why does changing the name of an explode in jupiter patch take so long? -close-subwindows menu item -show results of opening audio and MIDI on dialogs -windows escape from control-C -settable netsend and netreceive port numbers -new: abs~, nexttick~, extend threshold~ and snapshot~ (vthreshold~ etc) -incorporate pddp doc -try again to fix the font scene -look at prctl(2) for FP exception handling -??? have a way to disambiguate externs from different libs??? -netsend separate thread -netreceive (and netsend?) message to set port number -think about x and y scale preservation when changing between graph and object -show outlines of objects even when graph is "open" -graph_vis() to decorate graphs when they're toplevel (parent_glist == 0) -get graphs to expand to hold their contents -suita.chopin.edu.pl/~czaja/miXed/externs/xeq.html -- MIDI file reader -in glist_delete, consider why this can't be just "vis 0" -- why do we need it? -closebang -check that -blocksize really reflects in audiobuf calc for Hammerfall -makefile to have make install depend on make local. -Float method for random -figure out list, message objects -separate control over alsaindev and alsaoutdev -put in something for tilde order forcing -extensible "toolbar" so people can add external GUI objects -allow spaces in paths -variable send and receive -- check how max/MSP does it? -number boxes to darken for typing and/or received messages -dialog to change lib flag and path -pique~ and fiddle~ unification (notice pique filtering is different!) -new message box look -figure out what to do when "pd sym" conflicts with window title as in Pluton? - -MAX compatibilty: -trigger 1 (on Pd, outputs 0; on Max?) - -LATER -bonk~ file path handling -unify arrays and garrays -dialog to give values of $1, ... for the canvas -bang at end of line~, tabwrite~, etc. -recording to part of a table -printout to main window -should sys_bail kill all "threads" on the way out? -check a_valid usage -allow backslashes (or else really disallow them) -icon & desktop integration -vreadsf~ -benchmarking -flash menu when accelerator hits? -fix edit mode menu item -fancier text editing -tools (reassigns meaning of primary click) -get gui to notice early EOF -rewrite t_getbytes properly -obj_new should do a longjmp on out-of-memory - ---------------------- source notes -------------------------- - -0. structure definition roadmap. First, the containment tree of things -that can be sent messages ("pure data"). (note that t_object and t_text, -and t_graph and t_canvas, should be unified...) - ------------- BFFORE 0.35: --------- -m_pd.h t_pd anything with a class - t_gobj "graphic object" - t_text text object -g_canvas.h - t_glist list of graphic objects -g_canvas.c t_canvas Pd "document" - ------------- AFTER 0.35: --------- -m_pd.h t_pd anything with a class - t_gobj "graphic object" - t_text patchable object, AKA t_object -g_canvas.h t_glist list of graphic objects, AKA t_canvas - -... and other structures: -g_canvas.h t_selection -- linked list of gobjs - t_editor -- editor state, allocated for visible glists -m_imp.h t_methodentry -- method handler - t_widgetbehavior -- class-dependent editing behavior for gobjs - t_parentwidgetbehavior -- objects' behavior on parent window - t_class -- method definitions, instance size, flags, etc. - - -1. C coding style. The source should pass most "warnings" of C compilers -(-Wall on linux, for instance; see the makefile.) Some informalities -are intentional, for instance the loose use of function prototypes (see -below) and uncast conversions from longer to shorter numerical formats. -The code doesn't respect "const" yet. - -1.1. Prefixes in structure elements. The names of structure elements always -have a K&R-style prefix, as in ((t_atom)x)->a_type, where the "a_" prefix -indicates "atom." This is intended to enhance readability (although the -convention arose from a limitation of early C compilers.) Common prefixes are -"w_" (word), "a_" (atom), "s_" (symbol), "ob_" (object), "te_" (text object), -"g_" (graphical object), and "gl_" (glist, a list of graphical objects). Also, -global symbols sometimes get prefixes, as in "s_float" (the symbol whose string -is "float). Typedefs are prefixed by "t_". Most _private_ structures, i.e., -structures whose definitions appear in a ".c" file, are prefixed by "x_". - -1.2. Function arguments. Many functions take as their first -argument a pointer named "x", which is a pointer to a structure suggested -by the function prefix; e.g., canvas_dirty(x, n) where "x" points to a canvas -(t_canvas *x). - -1.3. Function Prototypes. Functions which are used in at least two different -files (besides where they originate) are prototyped in the appropriate include -file. Functions which are provided in one file and used in one other are -prototyped right where they are used. This is just to keep the size of the -".h" files down for readability's sake. - -1.4. Whacko private terminology. Some terms are lifted from other historically -relevant programs, notably "ugen" (which is just a tilde object; see d_ugen.c.) - -1.5. Spacing. Tabs are 8 spaces; indentation is 4 spaces. Indenting -curly brackets are by themselves on their own lines, as in: - - if (x) - { - x = 0; - } - -Lines should fit within 80 spaces. - -2. Max patch-level compatibility. "Import" and "Export" functions are -provided which aspire to strict compatibility with 0.26 patches (ISPW version), -but which don't get anywhere close to that yet. Where possible, features -appearing on the Mac will comeday also be provided; for instance, the connect -message on the Mac offers segmented patch cords; these will devolve into -straight lines in Pd. Many, many UI objects in Opcode Max will not appear in -Pd, at least at first. - -3. Compatibility with Max 0.26 "externs", i.e., source-level compatibility. Pd -objects follow the style of 0.26 objects as closely as possible, making -exceptions in cases where the 0.26 model is clearly deficient. These are: - -3.1. Anything involving the MacIntosh "Handle" data type is changed to use -char * or void * instead. - -3.2. Pd passes true single-precision floating-point arguments to methods; -Max uses double. -Typedefs are provided: - t_floatarg, t_intarg for arguments passed by the message system - t_float, t_int for the "word" union (in atoms, for example.) - -3.3. Badly-named entities got name changes: - - w_long --> w_int (in the "union word" structure) - -3.4. Many library functions are renamed and have different arguments; -I hope to provide an include file to alias them when compiling Max externs. - -4. Function name prefixes. -Many function names have prefixes which indicate what "package" they belong -to. The exceptions are: - typedmess, vmess, getfn, gensym (m_class.c) - getbytes, freebytes, resizebytes (m_memory.c) - post, error, bug (s_print.c) -which are all frequently called and which don't fit into simple categories. -Important packages are: -(pd-gui:) pdgui -- everything -(pd:) pd -- functions common to all "pd" objects - obj -- fuctions common to all "patchable" objects ala Max - sys -- "system" level functions - binbuf -- functions manipulating binbufs - class -- functions manipulating classes - (other) -- functions common to the named Pd class - -5. Source file prefixes. -PD: -s system interface -m message system -g graphics stuff -d DSP objects -x control objects -z other - -PD-GUI: -t TK front end - |