aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audience~/CHANGES.LOG2
-rw-r--r--audience~/Makefile2
-rw-r--r--audience~/audience~.c4
-rw-r--r--audience~/audience~.tk2c69
-rw-r--r--audience~/help-audience~.pd60
-rw-r--r--cooled~/CHANGES.LOG2
-rw-r--r--cooled~/cooled~.c120
-rwxr-xr-x[-rw-r--r--]exciter/CHANGES.LOG (renamed from exciter/CHANGE.LOG)6
-rw-r--r--exciter/exciter.c10
-rwxr-xr-xexciter/exciter.tk2c94
-rw-r--r--exciter/help-exciter.pd71
-rwxr-xr-xexciter/tk2c.bash24
-rw-r--r--filterbank~/CHANGES.LOG2
-rw-r--r--filterbank~/Makefile2
-rw-r--r--filterbank~/filterbank~.c9
-rwxr-xr-xfilterbank~/filterbank~.tk2c58
-rw-r--r--filterbank~/help-filterbank~.pd199
-rwxr-xr-xfilterbank~/tk2c.bash24
-rw-r--r--grid/CHANGES.LOG2
-rw-r--r--grid/grid.c4
-rw-r--r--pianoroll/CHANGES.LOG2
-rw-r--r--pianoroll/help-pianoroll.pd80
-rw-r--r--pianoroll/pianoroll.c4
-rwxr-xr-xpianoroll/pianoroll.tk2c131
-rwxr-xr-xpianoroll/tk2c.bash24
-rw-r--r--playlist/CHANGES.LOG2
-rw-r--r--playlist/playlist.c4
-rw-r--r--probalizer/CHANGES.LOG2
-rw-r--r--probalizer/help-probalizer.pd53
-rw-r--r--probalizer/probalizer.c9
-rwxr-xr-xprobalizer/probalizer.tk2c87
-rwxr-xr-xprobalizer/tk2c.bash24
-rw-r--r--scratcher~/CHANGES.LOG2
-rw-r--r--scratcher~/help-scratcher~.pd7
-rw-r--r--scratcher~/scratcher~.c24
-rwxr-xr-xscratcher~/scratcher~.tk2c58
-rwxr-xr-xscratcher~/tk2c.bash24
-rwxr-xr-xscrolllist/CHANGES.LOG2
-rwxr-xr-xscrolllist/Makefile2
-rwxr-xr-xscrolllist/help-scrolllist.pd6
-rwxr-xr-xscrolllist/scrolllist.c7
-rw-r--r--sonogram~/CHANGES.LOG2
-rw-r--r--sonogram~/sonogram~.c46
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 */