diff options
author | N.N. <sevyves@users.sourceforge.net> | 2006-07-26 17:01:23 +0000 |
---|---|---|
committer | N.N. <sevyves@users.sourceforge.net> | 2006-07-26 17:01:23 +0000 |
commit | 2005cba607270a0e176d739361cb6327fab061f7 (patch) | |
tree | cefe3df382f3217d55e6194da27d7ecaed8c39ec | |
parent | 8cb7fe69e2be0d5ed1811cda4a5ca4ed68046b55 (diff) |
fixed coordinates for GOP
svn path=/trunk/externals/unauthorized/; revision=5416
43 files changed, 1219 insertions, 147 deletions
diff --git a/audience~/CHANGES.LOG b/audience~/CHANGES.LOG index 656ec5e..8b7586b 100644 --- a/audience~/CHANGES.LOG +++ b/audience~/CHANGES.LOG @@ -1,3 +1,5 @@ +0.7 + added GOP support 0.6 Adaptattions for pd 0.37 0.5 diff --git a/audience~/Makefile b/audience~/Makefile index d60890d..1a4f9ff 100644 --- a/audience~/Makefile +++ b/audience~/Makefile @@ -62,7 +62,7 @@ pd_linux: $(NAME).pd_linux LINUXCFLAGS = -DPD -DUNIX -DICECAST -O2 -funroll-loops -fomit-frame-pointer \ -Wall -W -Wno-shadow -Wstrict-prototypes -g \ - -Wno-unused -Wno-parentheses -Wno-switch -Werror + -Wno-unused -Wno-parentheses -Wno-switch LINUXINCLUDE = -I../../src diff --git a/audience~/audience~.c b/audience~/audience~.c index 0d17f03..a2ced47 100644 --- a/audience~/audience~.c +++ b/audience~/audience~.c @@ -65,7 +65,7 @@ // a pixel is 0.1 meter #define PIXELSIZE 0.1 -static char *audience_version = "audience : 2d audience simulation, version 0.6 (ydegoyon@free.fr)"; +static char *audience_version = "audience : 2d audience simulation, version 0.7 (ydegoyon@free.fr)"; t_widgetbehavior audience_widgetbehavior; static t_class *audience_class_tilde; @@ -366,7 +366,7 @@ static void audience_save(t_gobj *z, t_binbuf *b) t_int ii; binbuf_addv(b, "ssiisiiiifi", gensym("#X"),gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("audience~"), x->x_width, x->x_height, x->x_nbinputs, x->x_nboutputs, x->x_attenuation, x->x_applydelay ); for ( ii=0; ii<x->x_nbinputs; ii++ ) diff --git a/audience~/audience~.tk2c b/audience~/audience~.tk2c new file mode 100644 index 0000000..ea3a7a3 --- /dev/null +++ b/audience~/audience~.tk2c @@ -0,0 +1,69 @@ +// ########### audience procedures -- ydegoyon@free.fr ######### +sys_gui("proc audience_apply {id} {\n"); +// strip "." from the TK id to make a variable name suffix +sys_gui("set vid [string trimleft $id .]\n"); +// for each variable, make a local variable to hold its name... +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_nboutputs [concat graph_nboutputs_$vid]\n"); +sys_gui("global $var_graph_nboutputs\n"); +sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_width] [eval concat $$var_graph_height] [eval concat $$var_graph_nboutputs] \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc audience_cancel {id} {\n"); +sys_gui("set cmd [concat $id cancel \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc audience_ok {id} {\n"); +sys_gui("audience_apply $id\n"); +sys_gui("audience_cancel $id\n"); +sys_gui("}\n"); +sys_gui("proc pdtk_audience_dialog {id width height nboutputs} {\n"); +sys_gui("set vid [string trimleft $id .]\n"); +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_nboutputs [concat graph_nboutputs_$vid]\n"); +sys_gui("global $var_graph_nboutputs\n"); +sys_gui("set $var_graph_width $width\n"); +sys_gui("set $var_graph_height $height\n"); +sys_gui("set $var_graph_nboutputs $nboutputs\n"); +sys_gui("toplevel $id\n"); +sys_gui("wm title $id {audience}\n"); +sys_gui("wm protocol $id WM_DELETE_WINDOW [concat audience_cancel $id]\n"); +sys_gui("label $id.label -text {2$ SPACE PROPERTIES}\n"); +sys_gui("pack $id.label -side top\n"); +sys_gui("frame $id.buttonframe\n"); +sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); +sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"audience_cancel $id\"\n"); +sys_gui("button $id.buttonframe.apply -text {Apply} -command \"audience_apply $id\"\n"); +sys_gui("button $id.buttonframe.ok -text {OK} -command \"audience_ok $id\"\n"); +sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); +sys_gui("frame $id.1rangef\n"); +sys_gui("pack $id.1rangef -side top\n"); +sys_gui("label $id.1rangef.lwidth -text \"Width :\"\n"); +sys_gui("entry $id.1rangef.width -textvariable $var_graph_width -width 7\n"); +sys_gui("pack $id.1rangef.lwidth $id.1rangef.width -side left\n"); +sys_gui("frame $id.2rangef\n"); +sys_gui("pack $id.2rangef -side top\n"); +sys_gui("label $id.2rangef.lheight -text \"Height :\"\n"); +sys_gui("entry $id.2rangef.height -textvariable $var_graph_height -width 7\n"); +sys_gui("pack $id.2rangef.lheight $id.2rangef.height -side left\n"); +sys_gui("frame $id.3rangef\n"); +sys_gui("pack $id.3rangef -side top\n"); +sys_gui("label $id.3rangef.lnboutputs -text \"Nb Listeners :\"\n"); +sys_gui("entry $id.3rangef.nboutputs -textvariable $var_graph_nboutputs -width 7\n"); +sys_gui("pack $id.3rangef.lnboutputs $id.3rangef.nboutputs -side left\n"); +sys_gui("bind $id.1rangef.width <KeyPress-Return> [concat audience_ok $id]\n"); +sys_gui("bind $id.2rangef.height <KeyPress-Return> [concat audience_ok $id]\n"); +sys_gui("bind $id.3rangef.nboutputs <KeyPress-Return> [concat audience_ok $id]\n"); +sys_gui("focus $id.1rangef.width\n"); +sys_gui("}\n"); +// ########### audience procedures END -- ydegoyon@free.fr ######### diff --git a/audience~/help-audience~.pd b/audience~/help-audience~.pd new file mode 100644 index 0000000..ee90caf --- /dev/null +++ b/audience~/help-audience~.pd @@ -0,0 +1,60 @@ +#N canvas 207 7 763 647 10; +#X text 370 378 * Width : graphical x size; +#X text 371 393 * Height : graphical y size; +#X text 358 456 bugs and comments @ ydegoyon@free.fr [-_-]; +#X obj 91 492 *~ 1; +#X obj 177 491 *~ 1; +#X obj 134 458 / 100; +#X floatatom 134 428 5 0 0; +#X floatatom 174 129 5 0 0; +#X floatatom 254 128 5 0 0; +#X floatatom 332 128 5 0 0; +#X floatatom 405 128 5 0 0; +#X text 332 210 audience~ is a moving audience simulation; +#X text 334 236 within a 2d space; +#X text 332 223 Each sound input and each listener can be moved; +#X text 371 407 * Nb Listeners : number of listeners; +#X obj 129 523 dac~; +#X msg 42 89 attenuation 0; +#X msg 42 64 attenuation 0.1; +#X msg 42 40 attenuation 1; +#X obj 406 153 osc~ 10000; +#X text 8 14 Sound attenuation per meter ( default = 0.01 ); +#X text 338 306 Example : audience~ 200 200 4 1 0.01 0; +#X text 339 349 (invoke with <right mouse>Properties ); +#X text 342 339 You can set the following properties :; +#X text 341 527 Note : the number of inputs + outputs is limited to +10; +#X text 341 540 ( can be easily changed in the code ); +#X obj 254 154 osc~ 500; +#X obj 331 154 osc~ 3000; +#X text 337 278 Constructor : audience~ <width> <height> <nbinputs> +<nblisteners> <attenuation> <apply delay flag> | audience~; +#X obj 175 155 osc~ 50; +#X obj 70 196 audience~ 200 200 4 2 0.01 0 0 0 193 188 126 118 145 +72 20 182 10 0; +#X msg 165 66 delay 0; +#X msg 165 91 delay 1; +#X text 296 41 ( due to the distance between speaker and listener ) +; +#X text 163 40 Apply delay option; +#X connect 3 0 15 0; +#X connect 4 0 15 1; +#X connect 5 0 3 1; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 29 0; +#X connect 8 0 26 0; +#X connect 9 0 27 0; +#X connect 10 0 19 0; +#X connect 16 0 30 0; +#X connect 17 0 30 0; +#X connect 18 0 30 0; +#X connect 19 0 30 4; +#X connect 26 0 30 2; +#X connect 27 0 30 3; +#X connect 29 0 30 1; +#X connect 30 0 3 0; +#X connect 30 1 4 0; +#X connect 31 0 30 0; +#X connect 32 0 30 0; diff --git a/cooled~/CHANGES.LOG b/cooled~/CHANGES.LOG index d57da95..ce71df0 100644 --- a/cooled~/CHANGES.LOG +++ b/cooled~/CHANGES.LOG @@ -1,3 +1,5 @@ +0.14 + remove GOP support 0.13 added GOP support 0.12 diff --git a/cooled~/cooled~.c b/cooled~/cooled~.c index f0d966b..c79ee1c 100644 --- a/cooled~/cooled~.c +++ b/cooled~/cooled~.c @@ -36,26 +36,16 @@ #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> - -#ifdef __APPLE__ -#include <sys/malloc.h> -#else #include <malloc.h> -#endif - #include <ctype.h> #include <pthread.h> -#ifdef _WIN32 -#include <io.h> -#define usleep(a) _sleep(a/1000) -#else +#ifdef UNIX #include <unistd.h> #endif - -#include <math.h> -#ifndef M_PI +#ifdef NT #define M_PI 3.14159265358979323846 #endif +#include <math.h> #include "m_pd.h" #include "m_imp.h" @@ -125,12 +115,12 @@ typedef struct _cooled { t_object x_obj; - t_int x_size; /* size of the stored sound */ + int x_size; /* size of the stored sound */ t_float x_readpos; /* data's playing position */ - t_int x_writepos; /* data's recording position */ + int x_writepos; /* data's recording position */ t_float x_readstart; /* data's starting position for reading */ t_float x_readend; /* data's ending position for reading */ - t_int x_play; /* playing on/off flag */ + int x_play; /* playing on/off flag */ t_float x_readspeed; /* speed increment */ t_float x_record; /* flag to start recording process */ t_float x_allocate; /* flag to indicate pending allocation */ @@ -145,25 +135,25 @@ typedef struct _cooled t_float *x_lsemp; /* temporary sample buffer ( left ) */ char* x_gifdata; /* buffer to store graphic data */ char* x_guicommand; /* buffer to store gui command */ - t_int x_draw; /* drawing option */ + int x_draw; /* drawing option */ /* graphical data block */ - t_int x_width; /* graphical width */ - t_int x_height; /* graphical height */ - t_int x_selected; /* flag to remember if we are seleted or not */ - t_int x_erase; /* flag used when an erase is needed */ - t_int x_redraw; /* flag used when drawing is needed */ + int x_width; /* graphical width */ + int x_height; /* graphical height */ + int x_selected; /* flag to remember if we are seleted or not */ + int x_erase; /* flag used when an erase is needed */ + int x_redraw; /* flag used when drawing is needed */ t_glist *x_glist; /* keep graphic context for various operations */ - t_int x_zoom; /* zoom factor */ + int x_zoom; /* zoom factor */ pthread_t x_updatechild; /* thread id for the update child */ - t_int x_updatestart; /* starting position for update */ - t_int x_updateend; /* ending position for update */ - t_int x_xpos; /* stuck x position */ - t_int x_ypos; /* stuck y position */ - t_int x_shifted; /* remember shift state from last click */ - t_int x_alted; /* remember alt state from last click */ - t_int x_xdraw; /* x drawing position */ - t_int x_edraw; /* end of drawing */ + int x_updatestart; /* starting position for update */ + int x_updateend; /* ending position for update */ + int x_xpos; /* stuck x position */ + int x_ypos; /* stuck y position */ + int x_shifted; /* remember shift state from last click */ + int x_alted; /* remember alt state from last click */ + int x_xdraw; /* x drawing position */ + int x_edraw; /* end of drawing */ t_float x_f; /* float needed for signal input */ @@ -171,11 +161,11 @@ typedef struct _cooled /* ------------------------ drawing functions ---------------------------- */ -static void cooled_update_block(t_cooled *x, t_glist *glist, t_int bnumber) +static void cooled_update_block(t_cooled *x, t_glist *glist, int bnumber) { - t_int hi, i=0; + int hi, i=0; t_float fspectrum=0.0; - t_int phase=0; + int phase=0; char color[8]; memset( x->x_gifdata, 0x0, x->x_height*x->x_zoom*sizeof("#FFFFFF ") ); @@ -203,9 +193,9 @@ static void cooled_update_block(t_cooled *x, t_glist *glist, t_int bnumber) // set all points { - t_int fsamp = ( bnumber * x->x_size ) / x->x_width; - t_int lsamp = ( ( bnumber+1) * x->x_size ) / x->x_width; - t_int si; + int fsamp = ( bnumber * x->x_size ) / x->x_width; + int lsamp = ( ( bnumber+1) * x->x_size ) / x->x_width; + int si; // post ( "cooled~ : updating samples [%d,%d]", fsamp, lsamp ); @@ -213,7 +203,7 @@ static void cooled_update_block(t_cooled *x, t_glist *glist, t_int bnumber) { // calculate right channel index { - t_int rind = 3*x->x_height/4 + ( *(x->x_rdata+si) * (x->x_height/4) ) - 1; + int rind = 3*x->x_height/4 + ( *(x->x_rdata+si) * (x->x_height/4) ) - 1; if ( rind > x->x_height - 1 ) rind = x->x_height - 1; if ( rind < x->x_height/2 ) rind = x->x_height/2; @@ -227,7 +217,7 @@ static void cooled_update_block(t_cooled *x, t_glist *glist, t_int bnumber) // calculate left channel index { - t_int lind = x->x_height/4 + ( *(x->x_ldata+si) * (x->x_height/4) ) - 1; + int lind = x->x_height/4 + ( *(x->x_ldata+si) * (x->x_height/4) ) - 1; if ( lind > x->x_height/2 - 1 ) lind = x->x_height/2 - 1; if ( lind < 0 ) lind = 0; @@ -250,10 +240,10 @@ static void cooled_update_block(t_cooled *x, t_glist *glist, t_int bnumber) } -static void cooled_erase_block(t_cooled *x, t_glist *glist, t_int sample ) +static void cooled_erase_block(t_cooled *x, t_glist *glist, int sample ) { t_canvas *canvas=glist_getcanvas(glist); - t_int hi; + int hi; t_float fspectrum=0.0; char fillColor[ 16 ]; @@ -277,8 +267,8 @@ static void *cooled_do_update_part(void *tdata) { t_cooled *x = (t_cooled*) tdata; t_canvas *canvas=glist_getcanvas(x->x_glist); - t_int si; - t_int nbpoints = 0; + int si; + int nbpoints = 0; t_float percentage = 0, opercentage = 0; // loose synchro @@ -342,8 +332,8 @@ static void *cooled_do_update_part(void *tdata) return NULL; } -static void cooled_update_part(t_cooled *x, t_glist *glist, t_int bstart, t_int bend, - t_int erase, t_int redraw, t_int keepframe) +static void cooled_update_part(t_cooled *x, t_glist *glist, int bstart, int bend, + int erase, int redraw, int keepframe) { pthread_attr_t update_child_attr; t_canvas *canvas=glist_getcanvas(x->x_glist); @@ -601,7 +591,7 @@ static void cooled_save(t_gobj *z, t_binbuf *b) t_cooled *x = (t_cooled *)z; binbuf_addv(b, "ssiisiiii", gensym("#X"),gensym("obj"), - (t_int)x->x_xpos, (t_int)x->x_ypos, + (int)x->x_obj.te_xpix, (int)x->x_obj.te_ypix, gensym("cooled~"), x->x_size, x->x_width, x->x_height, x->x_draw ); binbuf_addv(b, ";"); } @@ -638,8 +628,8 @@ static void cooled_delete(t_gobj *z, t_glist *glist) static void cooled_displace(t_gobj *z, t_glist *glist, int dx, int dy) { t_cooled *x = (t_cooled *)z; - t_int xold = x->x_xpos; - t_int yold = x->x_ypos; + int xold = x->x_xpos; + int yold = x->x_ypos; x->x_xpos += dx; x->x_ypos += dy; @@ -665,8 +655,8 @@ static void cooled_motion(t_cooled *x, t_floatarg dx, t_floatarg dy) /* erase data form readstart to readend */ static void cooled_erase( t_cooled *x ) { - t_int startsamp, endsamp, si; - t_int lreadstart = x->x_readstart, lreadend = x->x_readend; + int startsamp, endsamp, si; + int lreadstart = x->x_readstart, lreadend = x->x_readend; if (x->x_allocate) { post( "cooled~ : error : cannot erase while re-allocation" ); @@ -694,8 +684,8 @@ static void cooled_erase( t_cooled *x ) /* paste data form readstart to readend */ static void cooled_paste( t_cooled *x ) { - t_int startsamp, endsamp, si, inssamp, hlimit, csize; - t_int lreadstart = x->x_readstart, lreadend = x->x_readend; + int startsamp, endsamp, si, inssamp, hlimit, csize; + int lreadstart = x->x_readstart, lreadend = x->x_readend; if (x->x_allocate) { post( "cooled~ : error : cannot paste while re-allocation" ); @@ -735,8 +725,8 @@ static void cooled_paste( t_cooled *x ) /* replace data form readstart to readend */ static void cooled_replace( t_cooled *x ) { - t_int startsamp, endsamp, si, inssamp, hlimit, csize; - t_int lreadstart = x->x_readstart, lreadend = x->x_readend; + int startsamp, endsamp, si, inssamp, hlimit, csize; + int lreadstart = x->x_readstart, lreadend = x->x_readend; if (x->x_allocate) { post( "cooled~ : error : cannot replace while re-allocation" ); @@ -838,7 +828,7 @@ static int cooled_click(t_gobj *z, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit) { t_cooled* x = (t_cooled *)z; - t_int pipos; + int pipos; t_canvas *canvas=glist_getcanvas(x->x_glist); // post( "cooled_click : x=%d y=%d doit=%d alt=%d, shift=%d", xpix, ypix, doit, alt, shift ); @@ -924,9 +914,9 @@ static void cooled_free(t_cooled *x) } /* allocate tables for storing sound and temporary copy */ -static t_int cooled_allocate(t_cooled *x) +static int cooled_allocate(t_cooled *x) { - t_int fi; + int fi; if ( !(x->x_rdata = getbytes( x->x_size*sizeof(float) ) ) ) { post( "cooled~ : error : could not allocate buffers" ); @@ -969,9 +959,9 @@ static t_int cooled_allocate(t_cooled *x) } /* allocate tables for storing sound and temporary copy */ -static t_int cooled_reallocate(t_cooled *x, t_int ioldsize, t_int inewsize) +static int cooled_reallocate(t_cooled *x, int ioldsize, int inewsize) { - t_int fi, csize; + int fi, csize; t_float *prdata=x->x_rdata, *pldata=x->x_ldata, *prsemp=x->x_rsemp, *plsemp=x->x_lsemp; if ( !(x->x_rdata = getbytes( inewsize*sizeof(float) ) ) ) { @@ -1039,11 +1029,11 @@ static t_int *cooled_perform(t_int *w) t_float *rin = (t_float *)(w[2]); t_float *rout = (t_float *)(w[3]); t_float *lout = (t_float *)(w[4]); - t_int is; - t_int n = (int)(w[5]); /* number of samples */ - t_int startsamp, endsamp; + int is; + int n = (int)(w[5]); /* number of samples */ + int startsamp, endsamp; t_cooled *x = (t_cooled *)(w[6]); - t_int lreadstart = x->x_readstart, lreadend = x->x_readend; + int lreadstart = x->x_readstart, lreadend = x->x_readend; if ( lreadstart <= lreadend ) { @@ -1121,7 +1111,7 @@ static void cooled_record(t_cooled *x) /* map to stereo */ static void cooled_stereo(t_cooled *x) { - t_int si; + int si; if (x->x_allocate) { post( "cooled~ : error : cannot map to stereo while re-allocation" ); @@ -1226,7 +1216,7 @@ static void cooled_zoom(t_cooled *x, t_floatarg fzoom ) static void cooled_loop(t_cooled *x, t_symbol *soperator ) { char *operator = soperator->s_name; - t_int ci; + int ci; t_float fvalue, freadstart = x->x_readstart, freadend = x->x_readend; if ( (soperator->s_name[0] != '*') && diff --git a/exciter/CHANGE.LOG b/exciter/CHANGES.LOG index 358d509..676922d 100644..100755 --- a/exciter/CHANGE.LOG +++ b/exciter/CHANGES.LOG @@ -1,3 +1,9 @@ +0.5 + fixed coordinates for GOP support +0.4 + added GOP support +0.3 + adapted for pd 0.37 0.2 fixed : could set event nnumber to one do not set "started" at initialization diff --git a/exciter/exciter.c b/exciter/exciter.c index a8fdeda..798f372 100644 --- a/exciter/exciter.c +++ b/exciter/exciter.c @@ -44,9 +44,8 @@ #include "t_tk.h" #include "exciter.h" -#ifdef _WIN32 +#ifdef NT #include <io.h> -#include "timeval.h" #else #include <unistd.h> #endif @@ -63,7 +62,7 @@ void canvas_startmotion(t_canvas *x); #define EXCITER_PIXEL_GRAIN 5 -static char *exciter_version = "exciter: a bang-events sequencer, version 0.4 (ydegoyon@free.fr)"; +static char *exciter_version = "exciter: a bang-events sequencer, version 0.5 (ydegoyon@free.fr)"; t_widgetbehavior exciter_widgetbehavior; static t_class *exciter_class; @@ -322,7 +321,7 @@ static void exciter_save(t_gobj *z, t_binbuf *b) int ei,gi; binbuf_addv(b, "ssiisiiifii", gensym("#X"),gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("exciter"), x->x_width, x->x_height, x->x_nbevents, x->x_timegrain, x->x_loop, x->x_save @@ -350,8 +349,7 @@ static void exciter_properties(t_gobj *z, t_glist *owner) t_exciter *x=(t_exciter *)z; sprintf(buf, "pdtk_exciter_dialog %%s %d %d %d %.2f %d %d\n", - (int)x->x_width, (int)x->x_height, (int)x->x_nbevents, - x->x_timegrain, x->x_loop, x->x_save ); + x->x_width, x->x_height, x->x_nbevents, x->x_timegrain, x->x_loop, x->x_save ); // post("exciter_properties : %s", buf ); gfxstub_new(&x->x_obj.ob_pd, x, buf); } diff --git a/exciter/exciter.tk2c b/exciter/exciter.tk2c new file mode 100755 index 0000000..e201737 --- /dev/null +++ b/exciter/exciter.tk2c @@ -0,0 +1,94 @@ +// ########### exciter procedures -- ydegoyon@free.fr ######### +sys_gui("proc exciter_apply {id} {\n"); +// strip "." from the TK id to make a variable name suffix +sys_gui("set vid [string trimleft $id .]\n"); +// for each variable, make a local variable to hold its name... +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_nbevents [concat graph_nbevents_$vid]\n"); +sys_gui("global $var_graph_nbevents\n"); +sys_gui("set var_graph_timegrain [concat graph_timegrain_$vid]\n"); +sys_gui("global $var_graph_timegrain\n"); +sys_gui("set var_graph_loop [concat graph_loop_$vid]\n"); +sys_gui("global $var_graph_loop\n"); +sys_gui("set var_graph_save [concat graph_save_$vid]\n"); +sys_gui("global $var_graph_save\n"); +sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_width] [eval concat $$var_graph_height] [eval concat $$var_graph_nbevents] [eval concat $$var_graph_timegrain] [eval concat $$var_graph_loop] [eval concat $$var_graph_save] \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc exciter_cancel {id} {\n"); +sys_gui("set cmd [concat $id cancel \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc exciter_ok {id} {\n"); +sys_gui("exciter_apply $id\n"); +sys_gui("exciter_cancel $id\n"); +sys_gui("}\n"); +sys_gui("proc pdtk_exciter_dialog {id width height nbevents timegrain loop save } {\n"); +sys_gui("set vid [string trimleft $id .]\n"); +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_nbevents [concat graph_nbevents_$vid]\n"); +sys_gui("global $var_graph_nbevents\n"); +sys_gui("set var_graph_timegrain [concat graph_timegrain_$vid]\n"); +sys_gui("global $var_graph_timegrain\n"); +sys_gui("set var_graph_loop [concat graph_loop_$vid]\n"); +sys_gui("global $var_graph_loop\n"); +sys_gui("set var_graph_save [concat graph_save_$vid]\n"); +sys_gui("global $var_graph_save\n"); +sys_gui("set $var_graph_width $width\n"); +sys_gui("set $var_graph_height $height\n"); +sys_gui("set $var_graph_nbevents $nbevents\n"); +sys_gui("set $var_graph_timegrain $timegrain\n"); +sys_gui("set $var_graph_loop $loop\n"); +sys_gui("set $var_graph_save $save\n"); +sys_gui("toplevel $id\n"); +sys_gui("wm title $id {exciter}\n"); +sys_gui("wm protocol $id WM_DELETE_WINDOW [concat exciter_cancel $id]\n"); +sys_gui("label $id.label -text {EXCITER PROPERTIES}\n"); +sys_gui("pack $id.label -side top\n"); +sys_gui("frame $id.buttonframe\n"); +sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); +sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"exciter_cancel $id\"\n"); +sys_gui("button $id.buttonframe.apply -text {Apply} -command \"exciter_apply $id\"\n"); +sys_gui("button $id.buttonframe.ok -text {OK} -command \"exciter_ok $id\"\n"); +sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); +sys_gui("frame $id.1rangef\n"); +sys_gui("pack $id.1rangef -side top\n"); +sys_gui("label $id.1rangef.lwidth -text \"Width :\"\n"); +sys_gui("entry $id.1rangef.width -textvariable $var_graph_width -width 7\n"); +sys_gui("pack $id.1rangef.lwidth $id.1rangef.width -side left\n"); +sys_gui("frame $id.2rangef\n"); +sys_gui("pack $id.2rangef -side top\n"); +sys_gui("label $id.2rangef.lheight -text \"Height :\"\n"); +sys_gui("entry $id.2rangef.height -textvariable $var_graph_height -width 7\n"); +sys_gui("pack $id.2rangef.lheight $id.2rangef.height -side left\n"); +sys_gui("frame $id.3rangef\n"); +sys_gui("pack $id.3rangef -side top\n"); +sys_gui("label $id.3rangef.lnbevents -text \"Nb Events :\"\n"); +sys_gui("entry $id.3rangef.nbevents -textvariable $var_graph_nbevents -width 7\n"); +sys_gui("pack $id.3rangef.lnbevents $id.3rangef.nbevents -side left\n"); +sys_gui("frame $id.4rangef\n"); +sys_gui("pack $id.4rangef -side top\n"); +sys_gui("label $id.4rangef.ltimegrain -text \"Time Grain (seconds) :\"\n"); +sys_gui("entry $id.4rangef.timegrain -textvariable $var_graph_timegrain -width 7\n"); +sys_gui("pack $id.4rangef.ltimegrain $id.4rangef.timegrain -side left\n"); +sys_gui("checkbutton $id.loop -text {Loop} -variable $var_graph_loop -anchor w\n"); +sys_gui("pack $id.loop -side top\n"); +sys_gui("checkbutton $id.save -text {Save contents} -variable $var_graph_save -anchor w\n"); +sys_gui("pack $id.save -side top\n"); +sys_gui("bind $id.1rangef.width <KeyPress-Return> [concat exciter_ok $id]\n"); +sys_gui("bind $id.2rangef.height <KeyPress-Return> [concat exciter_ok $id]\n"); +sys_gui("bind $id.3rangef.nbevents <KeyPress-Return> [concat exciter_ok $id]\n"); +sys_gui("bind $id.4rangef.timegrain <KeyPress-Return> [concat exciter_ok $id]\n"); +sys_gui("focus $id.1rangef.width\n"); +sys_gui("}\n"); +// ########### exciter procedures END -- ydegoyon@free.fr ######### diff --git a/exciter/help-exciter.pd b/exciter/help-exciter.pd new file mode 100644 index 0000000..ab60831 --- /dev/null +++ b/exciter/help-exciter.pd @@ -0,0 +1,71 @@ +#N canvas 103 12 970 685 10; +#X text 457 89 (invoke with <right mouse>Properties ); +#X text 458 78 You can set the following properties :; +#X text 478 110 * Width : graphical x size; +#X text 478 121 * Height : graphical y size; +#X text 612 498 bugs and comments @ ydegoyon@free.fr; +#X msg 587 271 \; pd dsp 0; +#X msg 653 271 \; pd dsp 1; +#X obj 32 56 exciter 400 200 16 0.1 1 1 1 14 1 15 3 52 5 30 5 69 6 +8 8 20 9 32 9 74 10 79 11 14 11 74 12 79 13 40 13 79 15 78; +#X text 456 50 Exciter controls a list of bang-events scheduled in +time; +#X obj 22 282 print e1; +#X text 478 132 * Number of events : number of simultaneous events +; +#X text 477 155 * Loop : looping flag; +#X msg 193 29 reset; +#X msg 103 29 pause; +#X msg 31 29 start; +#X msg 145 29 resume; +#X msg 70 29 stop; +#X text 44 363 so that events are triggered; +#X obj 653 249 loadbang; +#X msg 239 30 clear; +#X text 102 389 Note 2 : the event happens in the center (?) of the +polygon; +#X msg 286 30 dump; +#X text 478 144 * Time Grain : time grain betweeen each event; +#X obj 80 283 print e3; +#X obj 137 284 print e5; +#X obj 194 283 print e7; +#X obj 252 284 print e9; +#X obj 308 284 print e11; +#X obj 366 284 print e13; +#X obj 429 285 print e15; +#X obj 45 307 print e2; +#X obj 103 308 print e4; +#X obj 217 308 print e8; +#X obj 275 309 print e10; +#X obj 335 310 print e12; +#X obj 396 309 print e14; +#X obj 457 309 print e16; +#X obj 160 309 print e6; +#X text 523 411 ( 10 ms ) \, it won't be processed properly; +#X text 523 399 WARNING : you can't set time grain below 1 clock tick +; +#X text 46 352 Note 1 : the dsp has to be on; +#X connect 7 0 9 0; +#X connect 7 1 30 0; +#X connect 7 2 23 0; +#X connect 7 3 31 0; +#X connect 7 4 24 0; +#X connect 7 5 37 0; +#X connect 7 6 25 0; +#X connect 7 7 32 0; +#X connect 7 8 26 0; +#X connect 7 9 33 0; +#X connect 7 10 27 0; +#X connect 7 11 34 0; +#X connect 7 12 28 0; +#X connect 7 13 35 0; +#X connect 7 14 29 0; +#X connect 7 15 36 0; +#X connect 12 0 7 0; +#X connect 13 0 7 0; +#X connect 14 0 7 0; +#X connect 15 0 7 0; +#X connect 16 0 7 0; +#X connect 18 0 6 0; +#X connect 19 0 7 0; +#X connect 21 0 7 0; diff --git a/exciter/tk2c.bash b/exciter/tk2c.bash new file mode 100755 index 0000000..9dfeb03 --- /dev/null +++ b/exciter/tk2c.bash @@ -0,0 +1,24 @@ +#!/bin/bash + +#set -x + +while read line +do + for word in $line + do + if [ "X"$word != "X"${word#\#} ] + then + echo // ${line#\#} + break + else + line=${line//\'/\\\'} +#useless, slashes never gets in + line=${line//\\/\\\\} +#this one's dirty, i know + line=${line//;/\\\\;} + line=${line//\"/\\\"} + echo 'sys_gui("'$line'\n");' + break + fi + done +done diff --git a/filterbank~/CHANGES.LOG b/filterbank~/CHANGES.LOG index a0b4205..b294e8b 100644 --- a/filterbank~/CHANGES.LOG +++ b/filterbank~/CHANGES.LOG @@ -1,3 +1,5 @@ +0.4 + fixed coordinates for GOP support 0.3 Added GOP support 0.2 diff --git a/filterbank~/Makefile b/filterbank~/Makefile index 121a5c8..731500e 100644 --- a/filterbank~/Makefile +++ b/filterbank~/Makefile @@ -71,7 +71,7 @@ pd_linux: $(NAME).pd_linux LINUXCFLAGS = -DPD -DUNIX -DICECAST -O2 -funroll-loops -fomit-frame-pointer \ -Wall -W -Wno-shadow -Wstrict-prototypes -g \ - -Wno-unused -Wno-parentheses -Wno-switch -Werror + -Wno-unused -Wno-parentheses -Wno-switch LINUXINCLUDE = -I../../src diff --git a/filterbank~/filterbank~.c b/filterbank~/filterbank~.c index 86bf5b9..64cf55c 100644 --- a/filterbank~/filterbank~.c +++ b/filterbank~/filterbank~.c @@ -33,12 +33,11 @@ #include "filterbank~.h" -#ifdef _WIN32 +#ifdef NT #include <io.h> -#define random rand #else #include <unistd.h> -#endif /* _WIN32 */ +#endif #define DEFAULT_FILTERBANK_LOWFREQ 0 #define DEFAULT_FILTERBANK_HIGHFREQ 1600 @@ -46,7 +45,7 @@ #define FILTERBANK_OUTLET_WIDTH 5 #define FILTERBANK_HEIGHT 16 -static char *filterbank_version = "filterbank : responses from a set of band-pass filters, version 0.3 (ydegoyon@free.fr)"; +static char *filterbank_version = "filterbank : responses from a set of band-pass filters, version 0.4 (ydegoyon@free.fr)"; t_widgetbehavior filterbank_widgetbehavior; static t_class *filterbank_class_tilde; @@ -253,7 +252,7 @@ static void filterbank_save(t_gobj *z, t_binbuf *b) t_int ii; binbuf_addv(b, "ssiisiii", gensym("#X"),gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("filterbank~"), x->x_lowfreq, x->x_highfreq, x->x_nbfilters ); binbuf_addv(b, ";"); diff --git a/filterbank~/filterbank~.tk2c b/filterbank~/filterbank~.tk2c new file mode 100755 index 0000000..13d8482 --- /dev/null +++ b/filterbank~/filterbank~.tk2c @@ -0,0 +1,58 @@ +// ########### filterbank procedures -- ydegoyon@free.fr ######### +sys_gui("proc filterbank_apply {id} {\n"); +// strip "." from the TK id to make a variable name suffix +sys_gui("set vid [string trimleft $id .]\n"); +// for each variable, make a local variable to hold its name... +sys_gui("set var_graph_lowfreq [concat graph_lowfreq_$vid]\n"); +sys_gui("global $var_graph_lowfreq\n"); +sys_gui("set var_graph_highfreq [concat graph_highfreq_$vid]\n"); +sys_gui("global $var_graph_highfreq\n"); +sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_lowfreq] [eval concat $$var_graph_highfreq] \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc filterbank_cancel {id} {\n"); +sys_gui("set cmd [concat $id cancel \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc filterbank_ok {id} {\n"); +sys_gui("filterbank_apply $id\n"); +sys_gui("filterbank_cancel $id\n"); +sys_gui("}\n"); +sys_gui("proc pdtk_filterbank_dialog {id lowfreq highfreq} {\n"); +sys_gui("set vid [string trimleft $id .]\n"); +sys_gui("set var_graph_lowfreq [concat graph_lowfreq_$vid]\n"); +sys_gui("global $var_graph_lowfreq\n"); +sys_gui("set var_graph_highfreq [concat graph_highfreq_$vid]\n"); +sys_gui("global $var_graph_highfreq\n"); +sys_gui("set $var_graph_lowfreq $lowfreq\n"); +sys_gui("set $var_graph_highfreq $highfreq\n"); +sys_gui("toplevel $id\n"); +sys_gui("wm title $id {filterbank}\n"); +sys_gui("wm protocol $id WM_DELETE_WINDOW [concat filterbank_cancel $id]\n"); +sys_gui("label $id.label -text {FILTERBANK PROPERTIES}\n"); +sys_gui("pack $id.label -side top\n"); +sys_gui("frame $id.buttonframe\n"); +sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); +sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"filterbank_cancel $id\"\n"); +sys_gui("button $id.buttonframe.apply -text {Apply} -command \"filterbank_apply $id\"\n"); +sys_gui("button $id.buttonframe.ok -text {OK} -command \"filterbank_ok $id\"\n"); +sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); +sys_gui("frame $id.1rangef\n"); +sys_gui("pack $id.1rangef -side top\n"); +sys_gui("label $id.1rangef.llowfreq -text \"Lower Frequency :\"\n"); +sys_gui("entry $id.1rangef.lowfreq -textvariable $var_graph_lowfreq -width 7\n"); +sys_gui("pack $id.1rangef.llowfreq $id.1rangef.lowfreq -side left\n"); +sys_gui("frame $id.2rangef\n"); +sys_gui("pack $id.2rangef -side top\n"); +sys_gui("label $id.2rangef.lhighfreq -text \"Higher Frequency :\"\n"); +sys_gui("entry $id.2rangef.highfreq -textvariable $var_graph_highfreq -width 7\n"); +sys_gui("pack $id.2rangef.lhighfreq $id.2rangef.highfreq -side left\n"); +sys_gui("bind $id.1rangef.lowfreq <KeyPress-Return> [concat filterbank_ok $id]\n"); +sys_gui("bind $id.2rangef.highfreq <KeyPress-Return> [concat filterbank_ok $id]\n"); +sys_gui("focus $id.1rangef.lowfreq\n"); +sys_gui("}\n"); +// ########### filterbank procedures END -- ydegoyon@free.fr ######### diff --git a/filterbank~/help-filterbank~.pd b/filterbank~/help-filterbank~.pd new file mode 100644 index 0000000..855e833 --- /dev/null +++ b/filterbank~/help-filterbank~.pd @@ -0,0 +1,199 @@ +#N canvas 122 3 868 640 10; +#X text 387 606 bugs and comments @ ydegoyon@free.fr [-_-]; +#X text 256 524 (invoke with <right mouse>Properties ); +#X text 256 506 You can set the following properties :; +#X text 321 108 Constructor : filterbank~ <lower freq> <higher freq> +<nbfilters> | filterbank~; +#X text 264 543 * Lower Frequency : lower frequency of all filters +; +#X text 264 556 * Higher Frequency : higher frequency of all filters +; +#X text 321 77 filterbank~ outputs the frequency response against a +set of band-pass filters; +#X obj 127 279 filterbank~ 0 2000 30; +#X text 387 588 part of unauthorized PD ( http://ydegoyon.free.fr ) +; +#X msg 31 20 bang; +#X obj 31 41 openpanel; +#X obj 31 62 t s b; +#X obj 77 62 float \$0; +#X text 31 1 Step 1 : Load a sound file; +#X obj 31 83 route float; +#X msg 336 250 bang; +#X obj 32 179 soundfiler; +#X obj 125 250 tabplay~ \$0-filterbank-sample; +#X obj 31 104 makefilename %d-filterbank-sample; +#X obj 32 137 pack s s; +#X msg 32 158 read -resize \$1 \$2; +#X obj 72 599 table \$0-filterbank-sample; +#X text 321 139 Example : filterbank~ 0 3000 30; +#X obj 86 330 env~; +#X obj 122 307 env~; +#X obj 121 329 env~; +#X obj 87 306 env~; +#X obj 101 359 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 113 359 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 125 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 138 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 91 250 dac~; +#X obj 156 331 env~; +#X obj 191 307 env~; +#X obj 191 330 env~; +#X obj 158 307 env~; +#X obj 171 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 183 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 195 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 208 361 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 227 331 env~; +#X obj 262 307 env~; +#X obj 262 330 env~; +#X obj 228 307 env~; +#X obj 242 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 254 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 266 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 279 361 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 297 331 env~; +#X obj 332 307 env~; +#X obj 332 330 env~; +#X obj 298 307 env~; +#X obj 312 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 324 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 336 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 349 361 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 367 331 env~; +#X obj 403 308 env~; +#X obj 402 330 env~; +#X obj 368 307 env~; +#X obj 382 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 394 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 406 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 419 361 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 438 330 env~; +#X obj 473 306 env~; +#X obj 473 329 env~; +#X obj 439 306 env~; +#X obj 453 359 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 465 359 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 477 359 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 490 360 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 513 328 env~; +#X obj 548 304 env~; +#X obj 548 327 env~; +#X obj 514 304 env~; +#X obj 528 357 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 540 357 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 552 357 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 565 358 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 580 328 env~; +#X obj 581 304 env~; +#X obj 595 357 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X obj 607 357 vsl 8 128 0 127 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X text 203 228 Step 2 : See the filterbank~ output; +#X text 451 252 Step 3 : shift all the outputs randomly; +#X msg 458 274 randomize 1; +#X msg 547 274 randomize 0; +#X connect 7 0 26 0; +#X connect 7 1 23 0; +#X connect 7 2 24 0; +#X connect 7 3 25 0; +#X connect 7 4 35 0; +#X connect 7 5 32 0; +#X connect 7 6 33 0; +#X connect 7 7 34 0; +#X connect 7 8 43 0; +#X connect 7 9 40 0; +#X connect 7 10 41 0; +#X connect 7 11 42 0; +#X connect 7 12 51 0; +#X connect 7 13 48 0; +#X connect 7 14 49 0; +#X connect 7 15 50 0; +#X connect 7 16 59 0; +#X connect 7 17 56 0; +#X connect 7 18 57 0; +#X connect 7 18 58 0; +#X connect 7 20 67 0; +#X connect 7 21 64 0; +#X connect 7 22 65 0; +#X connect 7 23 66 0; +#X connect 7 24 75 0; +#X connect 7 25 72 0; +#X connect 7 26 73 0; +#X connect 7 27 74 0; +#X connect 7 28 81 0; +#X connect 7 29 80 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 19 0; +#X connect 11 1 12 0; +#X connect 12 0 14 0; +#X connect 14 0 18 0; +#X connect 15 0 17 0; +#X connect 17 0 31 0; +#X connect 17 0 7 0; +#X connect 17 0 31 1; +#X connect 18 0 19 1; +#X connect 19 0 20 0; +#X connect 20 0 16 0; +#X connect 23 0 28 0; +#X connect 24 0 29 0; +#X connect 25 0 30 0; +#X connect 26 0 27 0; +#X connect 32 0 37 0; +#X connect 33 0 38 0; +#X connect 34 0 39 0; +#X connect 35 0 36 0; +#X connect 40 0 45 0; +#X connect 41 0 46 0; +#X connect 42 0 47 0; +#X connect 43 0 44 0; +#X connect 48 0 53 0; +#X connect 49 0 54 0; +#X connect 50 0 55 0; +#X connect 51 0 52 0; +#X connect 56 0 61 0; +#X connect 57 0 62 0; +#X connect 58 0 63 0; +#X connect 59 0 60 0; +#X connect 64 0 69 0; +#X connect 65 0 70 0; +#X connect 66 0 71 0; +#X connect 67 0 68 0; +#X connect 72 0 77 0; +#X connect 73 0 78 0; +#X connect 74 0 79 0; +#X connect 75 0 76 0; +#X connect 80 0 83 0; +#X connect 81 0 82 0; +#X connect 86 0 7 0; +#X connect 87 0 7 0; diff --git a/filterbank~/tk2c.bash b/filterbank~/tk2c.bash new file mode 100755 index 0000000..9dfeb03 --- /dev/null +++ b/filterbank~/tk2c.bash @@ -0,0 +1,24 @@ +#!/bin/bash + +#set -x + +while read line +do + for word in $line + do + if [ "X"$word != "X"${word#\#} ] + then + echo // ${line#\#} + break + else + line=${line//\'/\\\'} +#useless, slashes never gets in + line=${line//\\/\\\\} +#this one's dirty, i know + line=${line//;/\\\\;} + line=${line//\"/\\\"} + echo 'sys_gui("'$line'\n");' + break + fi + done +done diff --git a/grid/CHANGES.LOG b/grid/CHANGES.LOG index 7706b29..e548bc5 100644 --- a/grid/CHANGES.LOG +++ b/grid/CHANGES.LOG @@ -1,3 +1,5 @@ +0.7 + fixed coordinates for GOP support 0.6 added GOP support 0.5 diff --git a/grid/grid.c b/grid/grid.c index 3e1bfd9..416960f 100644 --- a/grid/grid.c +++ b/grid/grid.c @@ -35,7 +35,7 @@ static int gridcount=0; static int guidebug=0; static int pointsize = 5; -static char *grid_version = "grid: version 0.6, written by Yves Degoyon (ydegoyon@free.fr)"; +static char *grid_version = "grid: version 0.7, written by Yves Degoyon (ydegoyon@free.fr)"; #define GRID_SYS_VGUI2(a,b) if (guidebug) \ post(a,b);\ @@ -271,7 +271,7 @@ static void grid_save(t_gobj *z, t_binbuf *b) // post( "saving grid : %s", x->x_name->s_name ); binbuf_addv(b, "ssiissiffiffiffiiff", gensym("#X"),gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("grid"), x->x_name, x->x_width, x->x_min, x->x_max, x->x_height, x->y_min, x->y_max, diff --git a/pianoroll/CHANGES.LOG b/pianoroll/CHANGES.LOG index bb8e709..72f4901 100644 --- a/pianoroll/CHANGES.LOG +++ b/pianoroll/CHANGES.LOG @@ -1,3 +1,5 @@ +0.10 + fixed coordinates for GOP support 0.9 added GOP support 0.8 diff --git a/pianoroll/help-pianoroll.pd b/pianoroll/help-pianoroll.pd new file mode 100644 index 0000000..809fec9 --- /dev/null +++ b/pianoroll/help-pianoroll.pd @@ -0,0 +1,80 @@ +#N canvas 90 41 827 643 10; +#X floatatom 71 402 5 0 0; +#X floatatom 258 400 5 0 0; +#X text 523 112 (invoke with <right mouse>Properties ); +#X text 524 101 You can set the following properties :; +#X text 548 141 * Width : graphical x size; +#X text 548 152 * Height : graphical y size; +#X text 488 548 bugs and comments @ ydegoyon@free.fr; +#X msg 587 271 \; pd dsp 0; +#X msg 653 271 \; pd dsp 1; +#X text 548 129 * Name; +#X text 119 401 Pitch; +#X text 304 399 Volume ( scaled to [0 \, 1] ); +#X text 547 164 * Pitch min : minimum value delivered by left outlet +; +#X text 547 176 * Pitch max : maximum value delivered by left outlet +; +#X text 547 200 * Step number : number of steps; +#X text 524 79 ( pitch & volume originally but \, really \, anything +you like ); +#X msg 238 87 transpose \$1; +#X floatatom 334 89 5 0 0; +#X text 240 104 You can transpose the melody ( ?? ); +#X text 241 115 with a float value; +#X text 548 211 * Default value : must be in [min \, max]; +#X obj 65 165 pianoroll pianoroll1 400 192 -15 15 32 16 0 0 1 -12.0968 +0.741935 -3.3871 0.16129 5.32258 0.16129 -4.35484 0.354839 6.29032 +0.322581 6.29032 1 5.32258 1 -12.0968 0.290323 -10.1613 0.290323 -8.22581 +0.580645 -5.32258 1 7.25807 1 -10.1613 0.580645 -15 0.612903 -15 0.580645 +-15 1; +#X msg 47 18 bang; +#X obj 46 80 f; +#X obj 76 80 + 1; +#X floatatom 9 104 5 0 0; +#X obj 47 44 metro 500; +#X text 527 65 Pianoroll controls two parameters for a sequencer; +#X text 548 188 * Pitch grades : number of grades for the pitch; +#X msg 82 18 stop; +#X floatatom 13 140 5 0 0; +#X text 57 1 forward; +#X text 144 0 backward; +#X msg 136 15 bang; +#X obj 135 77 f; +#X obj 136 41 metro 500; +#X msg 171 16 stop; +#X obj 165 77 - 1; +#X msg 239 59 init; +#X text 279 60 init to default values; +#X msg 241 33 load pattern#1; +#X text 352 19 load and save the patterns; +#X text 352 31 ( values as well as steps number .... ); +#X msg 241 10 save pattern#1; +#X text 544 383 you can set the pitch and; +#X text 544 397 the volume with messages; +#X text 544 409 ( positions start at zero ); +#X msg 541 358 volume 3 0.345; +#X msg 542 334 pitch 3 -5; +#X connect 16 0 21 0; +#X connect 17 0 16 0; +#X connect 21 0 0 0; +#X connect 21 1 1 0; +#X connect 22 0 26 0; +#X connect 23 0 21 0; +#X connect 23 0 24 0; +#X connect 23 0 25 0; +#X connect 24 0 23 1; +#X connect 26 0 23 0; +#X connect 29 0 26 0; +#X connect 30 0 21 0; +#X connect 33 0 35 0; +#X connect 34 0 37 0; +#X connect 34 0 21 0; +#X connect 35 0 34 0; +#X connect 36 0 35 0; +#X connect 37 0 34 1; +#X connect 38 0 21 0; +#X connect 40 0 21 0; +#X connect 43 0 21 0; +#X connect 47 0 21 0; +#X connect 48 0 21 0; diff --git a/pianoroll/pianoroll.c b/pianoroll/pianoroll.c index da23357..8bb0c2f 100644 --- a/pianoroll/pianoroll.c +++ b/pianoroll/pianoroll.c @@ -60,7 +60,7 @@ void canvas_startmotion(t_canvas *x); #define DEFAULT_SEQUENCER_PITCH_MIN -15 #define DEFAULT_SEQUENCER_PITCH_MAX 15 -static char *pianoroll_version = "pianoroll: a graphical sequencer controller, version 0.9 (ydegoyon@free.fr)"; +static char *pianoroll_version = "pianoroll: a graphical sequencer controller, version 0.10 (ydegoyon@free.fr)"; t_widgetbehavior pianoroll_widgetbehavior; static t_class *pianoroll_class; @@ -263,7 +263,7 @@ static void pianoroll_save(t_gobj *z, t_binbuf *b) // post( "saving pianoroll : %s", x->x_name->s_name ); binbuf_addv(b, "ssiissiiffiiifi", gensym("#X"),gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("pianoroll"), x->x_name, x->x_width, x->x_height, x->x_pmin, x->x_pmax, x->x_nbgrades, x->x_nbsteps, diff --git a/pianoroll/pianoroll.tk2c b/pianoroll/pianoroll.tk2c new file mode 100755 index 0000000..10f5645 --- /dev/null +++ b/pianoroll/pianoroll.tk2c @@ -0,0 +1,131 @@ +// ########### pianoroll procedures -- ydegoyon@free.fr ######### +sys_gui("proc pianoroll_apply {id} {\n"); +// strip "." from the TK id to make a variable name suffix +sys_gui("set vid [string trimleft $id .]\n"); +// for each variable, make a local variable to hold its name... +sys_gui("set var_graph_name [concat graph_name_$vid]\n"); +sys_gui("global $var_graph_name\n"); +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_pmin [concat graph_pmin_$vid]\n"); +sys_gui("global $var_graph_pmin\n"); +sys_gui("set var_graph_pmax [concat graph_pmax_$vid]\n"); +sys_gui("global $var_graph_pmax\n"); +sys_gui("set var_graph_nbgrades [concat graph_nbgrades_$vid]\n"); +sys_gui("global $var_graph_nbgrades\n"); +sys_gui("set var_graph_nbsteps [concat graph_nbsteps_$vid]\n"); +sys_gui("global $var_graph_nbsteps\n"); +sys_gui("set var_graph_defvalue [concat graph_defvalue_$vid]\n"); +sys_gui("global $var_graph_defvalue\n"); +sys_gui("set var_graph_save [concat graph_save_$vid]\n"); +sys_gui("global $var_graph_save\n"); +sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_name] [eval concat $$var_graph_width] [eval concat $$var_graph_height] [eval concat $$var_graph_pmin] [eval concat $$var_graph_pmax] [eval concat $$var_graph_nbgrades] [eval concat $$var_graph_nbsteps] [eval concat $$var_graph_defvalue] [eval concat $$var_graph_save] \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc pianoroll_cancel {id} {\n"); +sys_gui("set cmd [concat $id cancel \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc pianoroll_ok {id} {\n"); +sys_gui("pianoroll_apply $id\n"); +sys_gui("pianoroll_cancel $id\n"); +sys_gui("}\n"); +sys_gui("proc pdtk_pianoroll_dialog {id name width height pmin pmax nbgrades nbsteps defvalue save } {\n"); +sys_gui("set vid [string trimleft $id .]\n"); +sys_gui("set var_graph_name [concat graph_name_$vid]\n"); +sys_gui("global $var_graph_name\n"); +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_pmin [concat graph_pmin_$vid]\n"); +sys_gui("global $var_graph_pmin\n"); +sys_gui("set var_graph_pmax [concat graph_pmax_$vid]\n"); +sys_gui("global $var_graph_pmax\n"); +sys_gui("set var_graph_nbgrades [concat graph_nbgrades_$vid]\n"); +sys_gui("global $var_graph_nbgrades\n"); +sys_gui("set var_graph_nbsteps [concat graph_nbsteps_$vid]\n"); +sys_gui("global $var_graph_nbsteps\n"); +sys_gui("set var_graph_defvalue [concat graph_defvalue_$vid]\n"); +sys_gui("global $var_graph_defvalue\n"); +sys_gui("set var_graph_save [concat graph_save_$vid]\n"); +sys_gui("global $var_graph_save\n"); +sys_gui("set $var_graph_name $name\n"); +sys_gui("set $var_graph_width $width\n"); +sys_gui("set $var_graph_height $height\n"); +sys_gui("set $var_graph_pmin $pmin\n"); +sys_gui("set $var_graph_pmax $pmax\n"); +sys_gui("set $var_graph_nbgrades $nbgrades\n"); +sys_gui("set $var_graph_nbsteps $nbsteps\n"); +sys_gui("set $var_graph_defvalue $defvalue\n"); +sys_gui("set $var_graph_save $save\n"); +sys_gui("toplevel $id\n"); +sys_gui("wm title $id {pianoroll}\n"); +sys_gui("wm protocol $id WM_DELETE_WINDOW [concat pianoroll_cancel $id]\n"); +sys_gui("label $id.label -text {PIANOROLL PROPERTIES}\n"); +sys_gui("pack $id.label -side top\n"); +sys_gui("frame $id.buttonframe\n"); +sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); +sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"pianoroll_cancel $id\"\n"); +sys_gui("button $id.buttonframe.apply -text {Apply} -command \"pianoroll_apply $id\"\n"); +sys_gui("button $id.buttonframe.ok -text {OK} -command \"pianoroll_ok $id\"\n"); +sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); +sys_gui("frame $id.1rangef\n"); +sys_gui("pack $id.1rangef -side top\n"); +sys_gui("label $id.1rangef.lname -text \"Name :\"\n"); +sys_gui("entry $id.1rangef.name -textvariable $var_graph_name -width 15\n"); +sys_gui("pack $id.1rangef.lname $id.1rangef.name -side left\n"); +sys_gui("frame $id.2rangef\n"); +sys_gui("pack $id.2rangef -side top\n"); +sys_gui("label $id.2rangef.lwidth -text \"Width :\"\n"); +sys_gui("entry $id.2rangef.width -textvariable $var_graph_width -width 7\n"); +sys_gui("pack $id.2rangef.lwidth $id.2rangef.width -side left\n"); +sys_gui("frame $id.3rangef\n"); +sys_gui("pack $id.3rangef -side top\n"); +sys_gui("label $id.3rangef.lheight -text \"Height :\"\n"); +sys_gui("entry $id.3rangef.height -textvariable $var_graph_height -width 7\n"); +sys_gui("pack $id.3rangef.lheight $id.3rangef.height -side left\n"); +sys_gui("frame $id.4rangef\n"); +sys_gui("pack $id.4rangef -side top\n"); +sys_gui("label $id.4rangef.lpmin -text \"Pitch low :\"\n"); +sys_gui("entry $id.4rangef.pmin -textvariable $var_graph_pmin -width 7\n"); +sys_gui("pack $id.4rangef.lpmin $id.4rangef.pmin -side left\n"); +sys_gui("frame $id.5rangef\n"); +sys_gui("pack $id.5rangef -side top\n"); +sys_gui("label $id.5rangef.lpmax -text \"Pitch high :\"\n"); +sys_gui("entry $id.5rangef.pmax -textvariable $var_graph_pmax -width 7\n"); +sys_gui("pack $id.5rangef.lpmax $id.5rangef.pmax -side left\n"); +sys_gui("frame $id.6rangef\n"); +sys_gui("pack $id.6rangef -side top\n"); +sys_gui("label $id.6rangef.lnbgrades -text \"Grades :\"\n"); +sys_gui("entry $id.6rangef.nbgrades -textvariable $var_graph_nbgrades -width 7\n"); +sys_gui("pack $id.6rangef.lnbgrades $id.6rangef.nbgrades -side left\n"); +sys_gui("frame $id.7rangef\n"); +sys_gui("pack $id.7rangef -side top\n"); +sys_gui("label $id.7rangef.lnbsteps -text \"Steps :\"\n"); +sys_gui("entry $id.7rangef.nbsteps -textvariable $var_graph_nbsteps -width 7\n"); +sys_gui("pack $id.7rangef.lnbsteps $id.7rangef.nbsteps -side left\n"); +sys_gui("frame $id.8rangef\n"); +sys_gui("pack $id.8rangef -side top\n"); +sys_gui("label $id.8rangef.ldefvalue -text \"Default Value :\"\n"); +sys_gui("entry $id.8rangef.defvalue -textvariable $var_graph_defvalue -width 7\n"); +sys_gui("pack $id.8rangef.ldefvalue $id.8rangef.defvalue -side left\n"); +sys_gui("checkbutton $id.save -text {Save contents} -variable $var_graph_save -anchor w\n"); +sys_gui("pack $id.save -side top\n"); +sys_gui("bind $id.1rangef.name <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("bind $id.2rangef.width <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("bind $id.3rangef.height <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("bind $id.4rangef.pmin <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("bind $id.5rangef.pmax <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("bind $id.6rangef.nbgrades <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("bind $id.7rangef.nbsteps <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("bind $id.8rangef.defvalue <KeyPress-Return> [concat pianoroll_ok $id]\n"); +sys_gui("focus $id.1rangef.name\n"); +sys_gui("}\n"); +// ########### pianoroll procedures END -- ydegoyon@free.fr ######### diff --git a/pianoroll/tk2c.bash b/pianoroll/tk2c.bash new file mode 100755 index 0000000..9dfeb03 --- /dev/null +++ b/pianoroll/tk2c.bash @@ -0,0 +1,24 @@ +#!/bin/bash + +#set -x + +while read line +do + for word in $line + do + if [ "X"$word != "X"${word#\#} ] + then + echo // ${line#\#} + break + else + line=${line//\'/\\\'} +#useless, slashes never gets in + line=${line//\\/\\\\} +#this one's dirty, i know + line=${line//;/\\\\;} + line=${line//\"/\\\"} + echo 'sys_gui("'$line'\n");' + break + fi + done +done diff --git a/playlist/CHANGES.LOG b/playlist/CHANGES.LOG index 3c302eb..19e7548 100644 --- a/playlist/CHANGES.LOG +++ b/playlist/CHANGES.LOG @@ -1,3 +1,5 @@ +0.12 + fixed coordinates for GOP support 0.11 added option to hide the graphic parts ( embedded list ) scroll by numbers diff --git a/playlist/playlist.c b/playlist/playlist.c index 4f80e98..0627090 100644 --- a/playlist/playlist.c +++ b/playlist/playlist.c @@ -55,7 +55,7 @@ static t_class *playlist_class; static int guidebug=0; -static char *playlist_version = "playlist: 1 click file chooser : version 0.11, written by Yves Degoyon (ydegoyon@free.fr)"; +static char *playlist_version = "playlist: 1 click file chooser : version 0.12, written by Yves Degoyon (ydegoyon@free.fr)"; #define MAX_DIR_LENGTH 2048 // maximum length for a directory name @@ -403,7 +403,7 @@ static void playlist_save(t_gobj *z, t_binbuf *b) // post( "saving playlist : %s", x->x_extension ); binbuf_addv(b, "ssiissiisssss", gensym("#X"), gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("playlist"), gensym(x->x_extension), x->x_width, x->x_height, gensym(x->x_font), gensym(x->x_bgcolor), gensym(x->x_sbcolor), gensym(x->x_fgcolor), gensym(x->x_secolor) ); diff --git a/probalizer/CHANGES.LOG b/probalizer/CHANGES.LOG index 497eaaa..e6b7307 100644 --- a/probalizer/CHANGES.LOG +++ b/probalizer/CHANGES.LOG @@ -1,3 +1,5 @@ +0.4 + fixed coordinates for GOP support 0.3 added GOP support 0.2 diff --git a/probalizer/help-probalizer.pd b/probalizer/help-probalizer.pd new file mode 100644 index 0000000..1b3a0f0 --- /dev/null +++ b/probalizer/help-probalizer.pd @@ -0,0 +1,53 @@ +#N canvas 191 -6 970 685 10; +#X text 374 167 (invoke with <right mouse>Properties ); +#X text 375 156 You can set the following properties :; +#X text 395 188 * Width : graphical x size; +#X text 395 200 * Height : graphical y size; +#X text 442 506 bugs and comments @ ydegoyon@free.fr; +#X msg 404 603 \; pd dsp 0; +#X msg 470 603 \; pd dsp 1; +#X text 376 110 Probalizer output serial of integers according to the +probability curve; +#X obj 470 581 loadbang; +#X obj 64 92 probalizer 200 200 10 100 1 0 53 1 61 2 8 3 39 4 9 5 40 +6 6 7 6 8 14 9 24; +#X text 395 213 * Values : number of values ( range is [ 1 \, nvalues +] ); +#X msg 93 54 bang; +#X msg 93 4 bang; +#X text 389 458 but without repetitions; +#X msg 295 16 zero; +#X msg 294 40 equi; +#X text 389 433 Note = If the probabilities are all equal to 1 \,; +#X msg 293 64 reset; +#X text 338 63 Reset output; +#X text 396 227 * Max Occurrences : max number of occurences in a serial +; +#X obj 68 358 probalizer 200 200 10 100 1 0 19 1 15 2 4 3 17 4 5 5 +14 6 1 7 0 8 4 9 7; +#X obj 193 331 loadbang; +#X msg 145 331 zero; +#X text 306 345 The output of first probalizer; +#X text 306 357 is stored in the second one; +#X floatatom 187 30 5 0 0; +#X msg 187 5 bang; +#X text 276 281 End of the serial; +#X text 390 445 probalizer behaves as a random object; +#X obj 276 308 print probalizer::end; +#X text 47 6 Start; +#X text 332 42 Set equal probabilities; +#X obj 93 29 metro 10; +#X connect 8 0 6 0; +#X connect 9 0 20 0; +#X connect 9 1 22 0; +#X connect 9 1 29 0; +#X connect 11 0 9 0; +#X connect 12 0 32 0; +#X connect 14 0 9 0; +#X connect 15 0 9 0; +#X connect 17 0 9 0; +#X connect 21 0 22 0; +#X connect 22 0 20 0; +#X connect 25 0 9 0; +#X connect 26 0 25 0; +#X connect 32 0 11 0; diff --git a/probalizer/probalizer.c b/probalizer/probalizer.c index 96a225b..0169285 100644 --- a/probalizer/probalizer.c +++ b/probalizer/probalizer.c @@ -42,12 +42,11 @@ #include "t_tk.h" #include "probalizer.h" -#ifdef _WIN32 +#ifdef NT #include <io.h> -#define random rand #else #include <unistd.h> -#endif /* _WIN32 */ +#endif #define DEFAULT_PROBALIZER_WIDTH 200 #define DEFAULT_PROBALIZER_HEIGHT 200 @@ -55,7 +54,7 @@ #define DEFAULT_PROBALIZER_NBOCCURRENCES 100 #define DEFAULT_PROB_VALUE 10 -static char *probalizer_version = "probalizer : outputs integer values according to a drawn probability curve , version 0.3 (ydegoyon@free.fr)"; +static char *probalizer_version = "probalizer : outputs integer values according to a drawn probability curve , version 0.4 (ydegoyon@free.fr)"; t_widgetbehavior probalizer_widgetbehavior; static t_class *probalizer_class; @@ -276,7 +275,7 @@ static void probalizer_save(t_gobj *z, t_binbuf *b) int ei,gi; binbuf_addv(b, "ssiisiiiii", gensym("#X"),gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("probalizer"), x->x_width, x->x_height, x->x_nvalues, x->x_noccurrences, x->x_save ); if ( x->x_save ) diff --git a/probalizer/probalizer.tk2c b/probalizer/probalizer.tk2c new file mode 100755 index 0000000..b4a608c --- /dev/null +++ b/probalizer/probalizer.tk2c @@ -0,0 +1,87 @@ +// ########### probalizer procedures -- ydegoyon@free.fr ######### +sys_gui("proc probalizer_apply {id} {\n"); +// strip "." from the TK id to make a variable name suffix +sys_gui("set vid [string trimleft $id .]\n"); +// for each variable, make a local variable to hold its name... +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_nvalues [concat graph_nvalues_$vid]\n"); +sys_gui("global $var_graph_nvalues\n"); +sys_gui("set var_graph_noccurrences [concat graph_noccurrences_$vid]\n"); +sys_gui("global $var_graph_noccurrences\n"); +sys_gui("set var_graph_save [concat graph_save_$vid]\n"); +sys_gui("global $var_graph_save\n"); +sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_width] [eval concat $$var_graph_height] [eval concat $$var_graph_nvalues] [eval concat $$var_graph_noccurrences] [eval concat $$var_graph_save] \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc probalizer_cancel {id} {\n"); +sys_gui("set cmd [concat $id cancel \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc probalizer_ok {id} {\n"); +sys_gui("probalizer_apply $id\n"); +sys_gui("probalizer_cancel $id\n"); +sys_gui("}\n"); +sys_gui("proc pdtk_probalizer_dialog {id width height nvalues noccurrences save } {\n"); +sys_gui("set vid [string trimleft $id .]\n"); +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set var_graph_nvalues [concat graph_nvalues_$vid]\n"); +sys_gui("global $var_graph_nvalues\n"); +sys_gui("set var_graph_noccurrences [concat graph_noccurrences_$vid]\n"); +sys_gui("global $var_graph_noccurrences\n"); +sys_gui("set var_graph_save [concat graph_save_$vid]\n"); +sys_gui("global $var_graph_save\n"); +sys_gui("set $var_graph_width $width\n"); +sys_gui("set $var_graph_height $height\n"); +sys_gui("set $var_graph_nvalues $nvalues\n"); +sys_gui("set $var_graph_noccurrences $noccurrences\n"); +sys_gui("set $var_graph_save $save\n"); +sys_gui("toplevel $id\n"); +sys_gui("wm title $id {probalizer}\n"); +sys_gui("wm protocol $id WM_DELETE_WINDOW [concat probalizer_cancel $id]\n"); +sys_gui("label $id.label -text {PROBALIZER PROPERTIES}\n"); +sys_gui("pack $id.label -side top\n"); +sys_gui("frame $id.buttonframe\n"); +sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); +sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"probalizer_cancel $id\"\n"); +sys_gui("button $id.buttonframe.apply -text {Apply} -command \"probalizer_apply $id\"\n"); +sys_gui("button $id.buttonframe.ok -text {OK} -command \"probalizer_ok $id\"\n"); +sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); +sys_gui("frame $id.1rangef\n"); +sys_gui("pack $id.1rangef -side top\n"); +sys_gui("label $id.1rangef.lwidth -text \"Width :\"\n"); +sys_gui("entry $id.1rangef.width -textvariable $var_graph_width -width 7\n"); +sys_gui("pack $id.1rangef.lwidth $id.1rangef.width -side left\n"); +sys_gui("frame $id.2rangef\n"); +sys_gui("pack $id.2rangef -side top\n"); +sys_gui("label $id.2rangef.lheight -text \"Height :\"\n"); +sys_gui("entry $id.2rangef.height -textvariable $var_graph_height -width 7\n"); +sys_gui("pack $id.2rangef.lheight $id.2rangef.height -side left\n"); +sys_gui("frame $id.3rangef\n"); +sys_gui("pack $id.3rangef -side top\n"); +sys_gui("label $id.3rangef.lnvalues -text \"Values :\"\n"); +sys_gui("entry $id.3rangef.nvalues -textvariable $var_graph_nvalues -width 7\n"); +sys_gui("pack $id.3rangef.lnvalues $id.3rangef.nvalues -side left\n"); +sys_gui("frame $id.4rangef\n"); +sys_gui("pack $id.4rangef -side top\n"); +sys_gui("label $id.4rangef.lnoccurrences -text \"Max Occurrences :\"\n"); +sys_gui("entry $id.4rangef.noccurrences -textvariable $var_graph_noccurrences -width 7\n"); +sys_gui("pack $id.4rangef.lnoccurrences $id.4rangef.noccurrences -side left\n"); +sys_gui("checkbutton $id.save -text {Save contents} -variable $var_graph_save -anchor w\n"); +sys_gui("pack $id.save -side top\n"); +sys_gui("bind $id.1rangef.width <KeyPress-Return> [concat probalizer_ok $id]\n"); +sys_gui("bind $id.2rangef.height <KeyPress-Return> [concat probalizer_ok $id]\n"); +sys_gui("bind $id.3rangef.nvalues <KeyPress-Return> [concat probalizer_ok $id]\n"); +sys_gui("bind $id.4rangef.noccurrences <KeyPress-Return> [concat probalizer_ok $id]\n"); +sys_gui("focus $id.1rangef.width\n"); +sys_gui("}\n"); +// ########### probalizer procedures END -- ydegoyon@free.fr ######### diff --git a/probalizer/tk2c.bash b/probalizer/tk2c.bash new file mode 100755 index 0000000..9dfeb03 --- /dev/null +++ b/probalizer/tk2c.bash @@ -0,0 +1,24 @@ +#!/bin/bash + +#set -x + +while read line +do + for word in $line + do + if [ "X"$word != "X"${word#\#} ] + then + echo // ${line#\#} + break + else + line=${line//\'/\\\'} +#useless, slashes never gets in + line=${line//\\/\\\\} +#this one's dirty, i know + line=${line//;/\\\\;} + line=${line//\"/\\\"} + echo 'sys_gui("'$line'\n");' + break + fi + done +done diff --git a/scratcher~/CHANGES.LOG b/scratcher~/CHANGES.LOG index 31e90d9..f53e163 100644 --- a/scratcher~/CHANGES.LOG +++ b/scratcher~/CHANGES.LOG @@ -1,3 +1,5 @@ +0.10 + fixed coordinates for GOP support 0.9 added GOP support 0.8 diff --git a/scratcher~/help-scratcher~.pd b/scratcher~/help-scratcher~.pd new file mode 100644 index 0000000..4a9149c --- /dev/null +++ b/scratcher~/help-scratcher~.pd @@ -0,0 +1,7 @@ +#N canvas 0 0 450 300 10; +#X obj 174 121 rs-scratcher~; +#X text 201 77 Playing with the block size \,; +#X text 201 87 so everything's in the subpatch; +#X obj 171 160 dac~; +#X connect 0 0 3 0; +#X connect 0 0 3 1; diff --git a/scratcher~/scratcher~.c b/scratcher~/scratcher~.c index bd970a7..d5a950e 100644 --- a/scratcher~/scratcher~.c +++ b/scratcher~/scratcher~.c @@ -37,28 +37,18 @@ #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> - -#ifdef __APPLE__ -#include <sys/malloc.h> -#else #include <malloc.h> -#endif - #include <ctype.h> #include <pthread.h> #include <time.h> #include <sys/time.h> -#ifdef _WIN32 -#include <io.h> -#include "timeval.h" -#else +#ifdef UNIX #include <unistd.h> -#endif /* _WIN32 */ -#include <math.h> - -#ifndef M_PI +#endif +#ifdef NT #define M_PI 3.14159265358979323846 -#endif /* not M_PI */ +#endif +#include <math.h> #include "m_pd.h" #include "m_imp.h" @@ -120,7 +110,7 @@ static int ignorevisible=1; // ignore visible test #define SCRATCHER_NB_GROOVES 20 #define SCRATCHER_MOVE_TIMEOUT 20 -static char *scratcher_version = "scratcher~: version 0.9, written by Yves Degoyon (ydegoyon@free.fr)"; +static char *scratcher_version = "scratcher~: version 0.10, written by Yves Degoyon (ydegoyon@free.fr)"; static t_class *scratcher_class; t_widgetbehavior scratcher_widgetbehavior; @@ -288,7 +278,7 @@ static void scratcher_save(t_gobj *z, t_binbuf *b) t_scratcher *x = (t_scratcher *)z; binbuf_addv(b, "ssiisiiiiff", gensym("#X"),gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("scratcher~"), x->x_size, x->x_width, x->x_height, x->x_sensibility, x->x_maxspeed, x->x_inertia ); binbuf_addv(b, ";"); diff --git a/scratcher~/scratcher~.tk2c b/scratcher~/scratcher~.tk2c new file mode 100755 index 0000000..8c07523 --- /dev/null +++ b/scratcher~/scratcher~.tk2c @@ -0,0 +1,58 @@ +// ########### scratcher procedures -- ydegoyon@free.fr ######### +sys_gui("proc scratcher_apply {id} {\n"); +// strip "." from the TK id to make a variable name suffix +sys_gui("set vid [string trimleft $id .]\n"); +// for each variable, make a local variable to hold its name... +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_width] [eval concat $$var_graph_height] \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc scratcher_cancel {id} {\n"); +sys_gui("set cmd [concat $id cancel \\;]\n"); +// puts stderr $cmd +sys_gui("pd $cmd\n"); +sys_gui("}\n"); +sys_gui("proc scratcher_ok {id} {\n"); +sys_gui("scratcher_apply $id\n"); +sys_gui("scratcher_cancel $id\n"); +sys_gui("}\n"); +sys_gui("proc pdtk_scratcher_dialog {id width height} {\n"); +sys_gui("set vid [string trimleft $id .]\n"); +sys_gui("set var_graph_width [concat graph_width_$vid]\n"); +sys_gui("global $var_graph_width\n"); +sys_gui("set var_graph_height [concat graph_height_$vid]\n"); +sys_gui("global $var_graph_height\n"); +sys_gui("set $var_graph_width $width\n"); +sys_gui("set $var_graph_height $height\n"); +sys_gui("toplevel $id\n"); +sys_gui("wm title $id {scratcher}\n"); +sys_gui("wm protocol $id WM_DELETE_WINDOW [concat scratcher_cancel $id]\n"); +sys_gui("label $id.label -text {SCRATCHER PROPERTIES}\n"); +sys_gui("pack $id.label -side top\n"); +sys_gui("frame $id.buttonframe\n"); +sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); +sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"scratcher_cancel $id\"\n"); +sys_gui("button $id.buttonframe.apply -text {Apply} -command \"scratcher_apply $id\"\n"); +sys_gui("button $id.buttonframe.ok -text {OK} -command \"scratcher_ok $id\"\n"); +sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); +sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); +sys_gui("frame $id.1rangef\n"); +sys_gui("pack $id.1rangef -side top\n"); +sys_gui("label $id.1rangef.lwidth -text \"Width :\"\n"); +sys_gui("entry $id.1rangef.width -textvariable $var_graph_width -width 7\n"); +sys_gui("pack $id.1rangef.lwidth $id.1rangef.width -side left\n"); +sys_gui("frame $id.2rangef\n"); +sys_gui("pack $id.2rangef -side top\n"); +sys_gui("label $id.2rangef.lheight -text \"Height :\"\n"); +sys_gui("entry $id.2rangef.height -textvariable $var_graph_height -width 7\n"); +sys_gui("pack $id.2rangef.lheight $id.2rangef.height -side left\n"); +sys_gui("bind $id.1rangef.name <KeyPress-Return> [concat scratcher_ok $id]\n"); +sys_gui("bind $id.2rangef.height <KeyPress-Return> [concat scratcher_ok $id]\n"); +sys_gui("focus $id.1rangef.name\n"); +sys_gui("}\n"); +// ########### scratcher procedures END -- ydegoyon@free.fr ######### diff --git a/scratcher~/tk2c.bash b/scratcher~/tk2c.bash new file mode 100755 index 0000000..9dfeb03 --- /dev/null +++ b/scratcher~/tk2c.bash @@ -0,0 +1,24 @@ +#!/bin/bash + +#set -x + +while read line +do + for word in $line + do + if [ "X"$word != "X"${word#\#} ] + then + echo // ${line#\#} + break + else + line=${line//\'/\\\'} +#useless, slashes never gets in + line=${line//\\/\\\\} +#this one's dirty, i know + line=${line//;/\\\\;} + line=${line//\"/\\\"} + echo 'sys_gui("'$line'\n");' + break + fi + done +done diff --git a/scrolllist/CHANGES.LOG b/scrolllist/CHANGES.LOG index f374175..ceb5041 100755 --- a/scrolllist/CHANGES.LOG +++ b/scrolllist/CHANGES.LOG @@ -1,2 +1,4 @@ +0.2 + fixed coordinates for GOP support 0.1 initial version diff --git a/scrolllist/Makefile b/scrolllist/Makefile index a8624eb..cd6ae28 100755 --- a/scrolllist/Makefile +++ b/scrolllist/Makefile @@ -29,7 +29,7 @@ pd_linux: $(NAME).pd_linux LINUXCFLAGS = -DPD -DUNIX -O2 -funroll-loops -fomit-frame-pointer \ -Wall -W -Wno-shadow -Wstrict-prototypes \ - -Wno-unused -Wno-parentheses -Wno-switch -Werror -g + -Wno-unused -Wno-parentheses -Wno-switch -g .c.pd_linux: ./tk2c.bash < $*.tk > $*.tk2c diff --git a/scrolllist/help-scrolllist.pd b/scrolllist/help-scrolllist.pd index 6563f16..160370d 100755 --- a/scrolllist/help-scrolllist.pd +++ b/scrolllist/help-scrolllist.pd @@ -50,11 +50,11 @@ #X msg 620 270 rewind; #X obj 527 269 l2s; #X msg 525 236 add \$1; -#X obj 748 216 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +#X obj 748 216 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 747 237 metro 1000; -#X obj 35 222 scrolllist 25 400 200 {Helvetica 12 normal} black green -#904562; +#X obj 35 222 scrolllist 25 400 200 {Courier 12 bold} black green #904562 +; #X text 470 343 the mouse in the text area; #X msg 33 57 clear; #X text 79 57 clear all; diff --git a/scrolllist/scrolllist.c b/scrolllist/scrolllist.c index f1ccc84..deed3cd 100755 --- a/scrolllist/scrolllist.c +++ b/scrolllist/scrolllist.c @@ -41,9 +41,8 @@ #include "g_canvas.h" #include "t_tk.h" -#ifdef _WIN32 +#ifdef NT #include <io.h> -#include <pthread.h> #else #include <unistd.h> #include <sys/types.h> @@ -55,7 +54,7 @@ static t_class *scrolllist_class; static int guidebug=0; -static char *scrolllist_version = "scrolllist: scrolling list of text items : version 0.1, written by Yves Degoyon (ydegoyon@free.fr)"; +static char *scrolllist_version = "scrolllist: scrolling list of text items : version 0.2, written by Yves Degoyon (ydegoyon@free.fr)"; #define MIN(a,b) (a>b?b:a) @@ -280,7 +279,7 @@ static void scrolllist_save(t_gobj *z, t_binbuf *b) // post( "saving scrolllist : %d", x->x_capacity ); binbuf_addv(b, "ssiisiiissss", gensym("#X"), gensym("obj"), - (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("scrolllist"), x->x_capacity, x->x_width, x->x_height, gensym(x->x_font), gensym(x->x_bgcolor), gensym(x->x_fgcolor), gensym(x->x_secolor) ); diff --git a/sonogram~/CHANGES.LOG b/sonogram~/CHANGES.LOG index 77b7234..d00ef2e 100644 --- a/sonogram~/CHANGES.LOG +++ b/sonogram~/CHANGES.LOG @@ -1,3 +1,5 @@ +0.14 + remove GOP support 0.13 added GOP support 0.12 diff --git a/sonogram~/sonogram~.c b/sonogram~/sonogram~.c index d19b4a9..b43405a 100644 --- a/sonogram~/sonogram~.c +++ b/sonogram~/sonogram~.c @@ -29,9 +29,6 @@ /* ---------------------------------------------------------------------------- */ -/* this doesn't compile on MinGW */ -#ifndef _WIN32 - #include <sys/types.h> #include <string.h> @@ -40,27 +37,16 @@ #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> - -#ifdef __APPLE__ -#include <sys/malloc.h> -#else #include <malloc.h> -#endif - #include <ctype.h> #include <pthread.h> -#ifdef _WIN32 -#include <io.h> -#define random rand -#define usleep(a) _sleep(a/1000) -#else +#ifdef UNIX #include <unistd.h> #endif -#include <math.h> - -#ifndef M_PI +#ifdef NT #define M_PI 3.14159265358979323846 #endif +#include <math.h> #include "m_pd.h" #include "m_imp.h" @@ -110,7 +96,7 @@ static int ignorevisible=1; // ignore visible test #define THREAD_SLEEP_TIME 100000 // 100000 us = 100 ms -static char *sonogram_version = "sonogram~: version 0.12, written by Yves Degoyon (ydegoyon@free.fr)"; +static char *sonogram_version = "sonogram~: version 0.14, written by Yves Degoyon (ydegoyon@free.fr)"; static t_class *sonogram_class; t_widgetbehavior sonogram_widgetbehavior; @@ -334,7 +320,7 @@ static void sonogram_update_block(t_sonogram *x, t_glist *glist, t_int bnumber) } for ( i=0; i<x->x_zoom; i++ ) { - sprintf( x->x_guicommand, "SONIMAGE%x put {%s} -to %d 0\n", (unsigned int)x, x->x_gifdata, (int) ((bnumber*x->x_zoom)+i) ); + sprintf( x->x_guicommand, "SONIMAGE%x put {%s} -to %d 0\n", (unsigned int)x, x->x_gifdata, (bnumber*x->x_zoom)+i ); sys_gui( x->x_guicommand ); } @@ -354,7 +340,7 @@ static void sonogram_update_block(t_sonogram *x, t_glist *glist, t_int bnumber) } for ( i=0; i<x->x_zoom; i++ ) { - sprintf( x->x_guicommand, "FAZIMAGE%x put {%s} -to %d 0\n", (unsigned int)x, x->x_gifdata, (int) ((bnumber*x->x_zoom)+i) ); + sprintf( x->x_guicommand, "FAZIMAGE%x put {%s} -to %d 0\n", (unsigned int)x, x->x_gifdata, (bnumber*x->x_zoom)+i ); sys_gui( x->x_guicommand ); } } @@ -385,15 +371,15 @@ static void sonogram_erase_block(t_sonogram *x, t_glist *glist, t_int bnumber ) static void *sonogram_do_update_part(void *tdata) { - t_sonogram *x = (t_sonogram*) tdata; - t_int si; - t_int nbpoints = 0; - t_float percentage = 0, opercentage = 0; - t_canvas *canvas=glist_getcanvas(x->x_glist); - - + t_sonogram *x = (t_sonogram*) tdata; + t_int si; + t_int nbpoints = 0; + t_float percentage = 0, opercentage = 0; + t_canvas *canvas=glist_getcanvas(x->x_glist); + + // loose synchro - usleep( THREAD_SLEEP_TIME ); + usleep( THREAD_SLEEP_TIME ); // check boundaries if ( x->x_updateend > x->x_size-1 ) x->x_updateend = x->x_size-1; @@ -860,7 +846,7 @@ static void sonogram_save(t_gobj *z, t_binbuf *b) t_sonogram *x = (t_sonogram *)z; binbuf_addv(b, "ssiisiii", gensym("#X"),gensym("obj"), - (t_int)x->x_xpos, (t_int)x->x_ypos, + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, gensym("sonogram~"), x->x_size, x->x_graphic, x->x_phaso ); binbuf_addv(b, ";"); } @@ -2090,5 +2076,3 @@ void sonogram_tilde_setup(void) class_addmethod(sonogram_class, (t_method)sonogram_readspeed, gensym("readspeed"), A_FLOAT, A_NULL); class_addmethod(sonogram_class, (t_method)sonogram_undo, gensym("undo"), A_NULL); } - -#endif /* not _WIN32 */ |