Skip to content

Commit 7dc4f29

Browse files
author
Jonathan Wilkes
committed
Merge branch 'purr-data-2.19.4-release'
2 parents 95b6259 + 89e45f0 commit 7dc4f29

695 files changed

Lines changed: 770216 additions & 5791 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/makefile.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
jobs:
1111
macos-build:
1212

13-
runs-on: macos-12
13+
runs-on: macos-13
1414

1515
steps:
1616
- uses: actions/checkout@v3
@@ -65,7 +65,7 @@ jobs:
6565
- name: install dependencies
6666
run: |
6767
# dance around Azure connectivity issues
68-
sudo apt-get update && sudo apt-get -o Acquire::Retries=3 install -q -y debhelper devscripts autoconf automake libtool pkg-config bison flex libgtk2.0-dev libgtk-3-dev dh-python flite1-dev ladspa-sdk libasound2-dev libjack-dev libbluetooth-dev libcairo2-dev libgl-dev libglew-dev libgsl-dev libmagick++-dev libavifile-0.7-dev libdc1394-dev libfftw3-dev libfluidsynth-dev libftgl-dev libgsm1-dev libjpeg-dev libmp3lame-dev libmpeg3-dev libquicktime-dev libraw1394-dev libsmpeg-dev libspeex-dev libstk-dev libtiff5-dev libv4l-dev libdv4-dev libiec61883-dev libxv-dev libxxf86vm-dev libvorbis-dev zlib1g-dev rsync libgconf2-dev libnss3-dev libxtst-dev libxss-dev
68+
sudo apt-get update && sudo apt-get -o Acquire::Retries=3 install -q -y debhelper devscripts autoconf automake libtool pkg-config bison flex libgtk2.0-dev libgtk-3-dev dh-python ladspa-sdk libasound2-dev libjack-dev libbluetooth-dev libcairo2-dev libgl-dev libglew-dev libgsl-dev libmagick++-dev libavifile-0.7-dev libdc1394-dev libfftw3-dev libfluidsynth-dev libftgl-dev libgsm1-dev libjpeg-dev libmp3lame-dev libmpeg3-dev libquicktime-dev libraw1394-dev libsmpeg-dev libspeex-dev libstk-dev libtiff5-dev libv4l-dev libdv4-dev libiec61883-dev libxv-dev libxxf86vm-dev libvorbis-dev zlib1g-dev rsync libgconf2-dev libnss3-dev libxtst-dev libxss-dev
6969
pip install markdown
7070
7171
- name: version

README.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
## Purr-Data
22

3-
**Note to Github users**: Please use our [**GitLab Repository**](https://git.purrdata.net/jwilkes/purr-data).
4-
5-
63
Maintainers:
74

8-
* Ivica Ico Bukvic <ico@vt.edu>
9-
* Albert Graef <aggraef@gmail.com>
10-
* Jonathan Wilkes <jancsika@yahoo.com>
5+
* Ivica Ico Bukvic <ico@vt.edu> (Pd-l2ork)
6+
* Jonathan Wilkes <jancsika@yahoo.com> (Purr Data)
7+
* Albert Graef <aggraef@gmail.com> (GitHub Mirror, JGU Packages)
118

129
Contact: [DISIS mailing list](http://disis.music.vt.edu/cgi-bin/mailman/listinfo/l2ork-dev)
1310

11+
**GitLab Repository:** <https://git.purrdata.net/jwilkes/purr-data>
12+
13+
Official Purr Data source code in the "master" branch.
14+
15+
**GitHub Mirror:** <https://github.com/agraef/purr-data>
16+
17+
Mirrors the GitLab "master" branch, and also has "release" and "testing"
18+
branches, binary packages, a website, and a wiki (WIP).
19+
1420
Contents:
1521

1622
* [Downloads](#downloads)
@@ -146,9 +152,7 @@ Hard drive space required: *roughly 2.5 GB*
146152

147153
sudo apt-get update && sudo apt-get upgrade
148154

149-
1. Install the dependencies (please note that the packages may be named
150-
slightly differently for different Linux distributions; the given names are
151-
for Debian/Ubuntu)
155+
1. Install the dependencies:
152156

153157
sudo apt-get install bison flex automake libasound2-dev \
154158
libjack-jackd2-dev libtool libbluetooth-dev libgl1-mesa-dev \
@@ -161,10 +165,17 @@ Hard drive space required: *roughly 2.5 GB*
161165
libslv2-dev dssi-utils vco-plugins wah-plugins fil-plugins \
162166
mda-lv2 libmp3lame-dev libspeex-dev libgsl0-dev \
163167
portaudio19-dev liblua5.3-dev python-dev libsmpeg0 libjpeg62-turbo \
164-
flite1-dev libgsm1-dev libgtk2.0-dev git libstk0-dev \
168+
libgsm1-dev libgtk2.0-dev git libstk0-dev \
165169
libfluidsynth-dev fluid-soundfont-gm byacc \
166170
python3-markdown
167171

172+
**Note:** The given package names are for a generic Debian/Ubuntu system.
173+
However, package names and versions vary *a lot* between different Linux
174+
distributions and releases, thus it's impossible to give a definitive and
175+
up-to-date package list here. Please consult your distribution's
176+
documentation and package manager to find the exact package names for your
177+
system.
178+
168179
2. The gui toolkit may require installing the following extra dependencies
169180

170181
sudo apt-get install gconf2 libnss3

debuild/debian/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Source: purr-data
22
Section: sound
33
Priority: extra
44
Maintainer: Albert Graef <aggraef@gmail.com>
5-
Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, libgtk2.0-dev, libgtk-3-dev, dh-python, flite1-dev, ladspa-sdk, libasound2-dev, libjack-dev, libbluetooth-dev, libcairo2-dev, libgl1-mesa-dev | libgl-dev, libglew1.6-dev | libglew-dev, libgsl-dev | libgsl0-dev, libmagick++-dev, libavifile-0.7-dev, libdc1394-dev | libdc1394-22-dev, libfftw3-dev, libfluidsynth-dev, libftgl-dev, libgsm1-dev, libjpeg-dev, libmp3lame-dev, libmpeg3-dev, libquicktime-dev, libraw1394-dev, libsmpeg-dev, libspeex-dev, libstk-dev | libstk0-dev, libtiff5-dev, libv4l-dev, libdv4-dev, libiec61883-dev, libxv-dev, libxxf86vm-dev, libvorbis-dev, zlib1g-dev (>= 1:1.1.3), rsync, libgconf2-dev, libnss3-dev, libxtst-dev, libxss-dev, libtirpc-dev
5+
Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, libgtk2.0-dev, libgtk-3-dev, dh-python, ladspa-sdk, libasound2-dev, libjack-dev, libbluetooth-dev, libcairo2-dev, libgl1-mesa-dev | libgl-dev, libglew1.6-dev | libglew-dev, libgsl-dev | libgsl0-dev, libmagick++-dev, libavifile-0.7-dev, libdc1394-dev | libdc1394-22-dev, libfftw3-dev, libfluidsynth-dev, libftgl-dev, libgsm1-dev, libjpeg-dev, libmp3lame-dev, libmpeg3-dev, libquicktime-dev, libraw1394-dev, libsmpeg-dev, libspeex-dev, libstk-dev | libstk0-dev, libtiff5-dev, libv4l-dev, libdv4-dev, libiec61883-dev, libxv-dev, libxxf86vm-dev, libvorbis-dev, zlib1g-dev (>= 1:1.1.3), rsync, libgconf2-dev, libnss3-dev, libxtst-dev, libxss-dev, libtirpc-dev
66
Standards-Version: 3.9.5
77
Homepage: https://git.purrdata.net/jwilkes/purr-data
88

externals/Makefile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ lib_targets = loaders-libdir pddp
145145
lib_targets += $(addons)
146146
INCREMENTAL = yes
147147
else
148-
lib_targets = adaptive arraysize autotune bassemu bendinfix boids bsaylor comport creb cxc cyclone disis earplug ekext ext13 fftease flatgui fluid freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdlua pdogg plugin pmpd rjlib sigpack smlib tof unauthorized vbap windowing zexy
148+
lib_targets = adaptive arraysize autotune bassemu bendinfix boids bsaylor comport creb cxc cyclone disis earplug ekext ext13 fftease flatgui flite fluid freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdlua pdogg plugin pmpd rjlib sigpack smlib tof unauthorized vbap windowing zexy
149149
endif
150150

151151
# NEW (IN-PROGRESS): flext
@@ -335,6 +335,7 @@ autotune:
335335
autotune_install:
336336
make -C $(externals_src)/autotune DESTDIR="$(DESTDIR)" \
337337
objectsdir="$(objectsdir)" install
338+
install -d $(DESTDIR)$(objectsdir)/images
338339
install -p $(externals_src)/autotune/autotune_scale_warp.png \
339340
$(DESTDIR)/$(objectsdir)/images
340341

@@ -1480,6 +1481,19 @@ pddp_clean:
14801481
make -C $(externals_src)/pddp clean
14811482

14821483

1484+
#------------------------------------------------------------------------------#
1485+
# FLITE
1486+
1487+
flite:
1488+
make -C $(externals_src)/pd-flite PDINCLUDEDIR="$(pd_src)/src" PDBINDIR="$(pd_src)/src"
1489+
1490+
flite_install:
1491+
make -C $(externals_src)/pd-flite DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
1492+
1493+
flite_clean:
1494+
make -C $(externals_src)/pd-flite clean
1495+
1496+
14831497
#------------------------------------------------------------------------------#
14841498
# PDLUA
14851499

externals/autotune/README.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
An auto-tuning PD External, based on
22
autotalent an auto-tuning LADSPA plugin and an older port by Maxus Germanus
33

4-
Free software by Thomas A. Baran.
5-
http://web.mit.edu/tbaran/www/autotune.html
6-
VERSION 0.2
4+
Autotalent v0.2
5+
Free software (GPLv2) by Thomas A. Baran.
6+
http://tombaran.info/autotalent.html
77

88
Ivica Ico Bukvic <ico.bukvic.net>
99
VERSION 0.9.1

externals/ggee/gui/image.c

Lines changed: 40 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ typedef struct _image
2323
int x_img_height;
2424
int x_gop_spill;
2525
int x_click;
26-
//t_float x_clicked;
2726
t_symbol* x_fname;
2827
t_symbol* x_receive;
29-
//int x_selected;
30-
//t_symbol* send;
28+
#if 0 // TODO?
29+
t_float x_clicked;
30+
int x_selected;
31+
t_symbol* send;
32+
#endif
3133
} t_image;
3234

3335
/* widget helper functions */
@@ -97,19 +99,12 @@ static void image_drawme(t_image *x, t_glist *glist, int firstime)
9799
x,
98100
x,
99101
"center");
100-
//sys_vgui("catch {.x%zx.c delete %xS}\n", glist_getcanvas(glist), x);
101-
//sys_vgui(".x%x.c create image %d %d -tags %xS\n",
102-
// glist_getcanvas(glist),text_xpix(&x->x_obj, glist),
103-
// text_ypix(&x->x_obj, glist), x);
104102
gui_vmess("gui_image_size_callback", "xxs",
105103
glist_getcanvas(glist), x, x->x_receive->s_name);
106104
}
107105
else
108106
{
109107
// move the gobj
110-
//sys_vgui(".x%x.c coords %xS %d %d\n",
111-
// glist_getcanvas(glist), x,
112-
// text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist));
113108
gui_vmess("gui_image_coords", "xxii",
114109
glist_getcanvas(glist),
115110
x,
@@ -127,9 +122,6 @@ static void image_drawme(t_image *x, t_glist *glist, int firstime)
127122
static void image_erase(t_image* x,t_glist* glist)
128123
{
129124
gui_vmess("gui_gobj_erase", "xx", glist_getcanvas(glist), x);
130-
//sys_vgui("catch {.x%x.c delete %xS}\n",glist_getcanvas(glist), x);
131-
//sys_vgui("catch {image delete $img%x}\n", x);
132-
//sys_vgui("catch {.x%x.c delete %xSEL}\n",glist_getcanvas(glist), x);
133125
}
134126

135127
static t_symbol *get_filename(t_int argc, t_atom *argv)
@@ -188,14 +180,15 @@ static void image_getrect(t_gobj *z, t_glist *glist,
188180
if ((glist_getcanvas(glist) != glist && !x->x_click) || (!glist->gl_edit && !x->x_click))
189181
{
190182
*xp2 = *xp1;
191-
// only if we have an image loaded and we are placed within a GOP obliterate the height
192-
//if (glist_getcanvas(glist) != glist && (x->x_img_width + x->x_img_height) >= 2)
193-
//{
194-
//printf("blah\n");
195-
//*yp2 = *yp1;
196-
//}
183+
// only if we have an image loaded and we are placed within a GOP
184+
// obliterate the height
185+
#if 0
186+
if (glist_getcanvas(glist) != glist && (x->x_img_width + x->x_img_height) >= 2)
187+
{
188+
*yp2 = *yp1;
189+
}
190+
#endif
197191
}
198-
//fprintf(stderr,"image_getrect %d %d %d %d\n", *xp1, *yp1, *xp2, *yp2);
199192
}
200193

201194
static void image_displace(t_gobj *z, t_glist *glist,
@@ -216,12 +209,6 @@ static void image_displace_wtag(t_gobj *z, t_glist *glist,
216209
t_image *x = (t_image *)z;
217210
x->x_obj.te_xpix += dx;
218211
x->x_obj.te_ypix += dy;
219-
/*sys_vgui(".x%x.c coords %xSEL %d %d %d %d\n",
220-
glist_getcanvas(glist), x,
221-
text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist),
222-
text_xpix(&x->x_obj, glist) + x->x_width, text_ypix(&x->x_obj, glist) + x->x_height);
223-
224-
image_drawme(x, glist, 0);*/
225212
canvas_fixlinesfor(glist,(t_text*) x);
226213
}
227214

@@ -234,42 +221,13 @@ static void image_select(t_gobj *z, t_glist *glist, int state)
234221
if (x->x_glist == glist_getcanvas(glist))
235222
{
236223
//x->x_selected = state;
237-
if (!x->x_gop_spill && (x->x_img_width + x->x_img_height) >= 2)
238-
{
239-
sys_vgui(".x%x.c create prect %d %d %d %d \
240-
-tags %xSEL -strokewidth 1 -stroke $pd_colors(selection)\n",
241-
glist_getcanvas(glist),
242-
text_xpix(&x->x_obj, glist) - x->x_img_width/2,
243-
text_ypix(&x->x_obj, glist) - x->x_img_height/2,
244-
text_xpix(&x->x_obj, glist) + x->x_img_width/2,
245-
text_ypix(&x->x_obj, glist) + x->x_img_height/2, x);
246-
}
247-
else
248-
{
249-
sys_vgui(".x%x.c create prect %d %d %d %d \
250-
-tags %xSEL -strokewidth 1 -stroke $pd_colors(selection)\n",
251-
glist_getcanvas(glist),
252-
text_xpix(&x->x_obj, glist) - x->x_width/2,
253-
text_ypix(&x->x_obj, glist) - x->x_height/2,
254-
text_xpix(&x->x_obj, glist) + x->x_width/2,
255-
text_ypix(&x->x_obj, glist) + x->x_height/2, x);
256-
}
257224
gui_vmess("gui_image_toggle_border", "xxi", glist_getcanvas(glist),
258225
x, 1);
259226
}
260227
gui_vmess("gui_gobj_select", "xx", glist_getcanvas(glist), x);
261-
//if (glist->gl_owner && !glist_istoplevel(glist))
262-
//sys_vgui(".x%x.c addtag selected withtag %xS\n", glist_getcanvas(glist), x);
263-
//sys_vgui(".x%x.c addtag selected withtag %xMT\n", glist_getcanvas(glist), x);
264-
//sys_vgui(".x%x.c addtag selected withtag %xSEL\n", glist_getcanvas(glist), x);
265228
}
266229
else
267230
{
268-
//sys_vgui("catch {.x%x.c delete %xSEL}\n",
269-
//glist_getcanvas(glist), x);
270-
//if (glist->gl_owner && !glist_istoplevel(glist))
271-
//sys_vgui(".x%zx.c dtag %xS selected\n", glist_getcanvas(glist), x);
272-
//sys_vgui(".x%zx.c dtag %xMT selected\n", glist_getcanvas(glist), x);
273231
gui_vmess("gui_image_toggle_border", "xxi", glist_getcanvas(glist),
274232
x, 0);
275233
gui_vmess("gui_gobj_deselect", "xx", glist_getcanvas(glist), x);
@@ -278,12 +236,14 @@ static void image_select(t_gobj *z, t_glist *glist, int state)
278236

279237
static void image_activate(t_gobj *z, t_glist *glist, int state)
280238
{
281-
/*fprintf(stderr,"activate...\n");
239+
#if 0 // TODO?
240+
fprintf(stderr,"activate...\n");
282241
t_text *x = (t_text *)z;
283242
t_rtext *y = glist_findrtext(glist, x);
284243
rtext_activate(y, state);
285244
t_image *i = (t_image *)z;
286-
canvas_redraw(i->x_glist);*/
245+
canvas_redraw(i->x_glist);
246+
#endif
287247
}
288248

289249
static void image_delete(t_gobj *z, t_glist *glist)
@@ -307,27 +267,37 @@ static void image_vis(t_gobj *z, t_glist *glist, int vis)
307267
static void image_save(t_gobj *z, t_binbuf *b)
308268
{
309269
t_image *x = (t_image *)z;
310-
binbuf_addv(b, "ssiissi", gensym("#X"), gensym("obj"),
311-
x->x_obj.te_xpix, x->x_obj.te_ypix,
312-
atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)),
313-
x->x_fname, x->x_gop_spill);
270+
// ag: unless we need it, avoid adding the gop-spill argument which isn't
271+
// compatible with vanilla ggee
272+
if (x->x_gop_spill)
273+
binbuf_addv(b, "ssiissi", gensym("#X"), gensym("obj"),
274+
x->x_obj.te_xpix, x->x_obj.te_ypix,
275+
atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)),
276+
x->x_fname, x->x_gop_spill);
277+
else
278+
binbuf_addv(b, "ssiiss", gensym("#X"), gensym("obj"),
279+
x->x_obj.te_xpix, x->x_obj.te_ypix,
280+
atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)),
281+
x->x_fname);
314282
binbuf_addv(b, ";");
315283
}
316284

317285
static t_widgetbehavior image_widgetbehavior;
318286

319-
/*void image_size(t_image* x,t_floatarg w,t_floatarg h) {
287+
#if 0 // TODO?
288+
static void image_size(t_image* x,t_floatarg w,t_floatarg h) {
320289
x->x_width = w;
321290
x->x_height = h;
322291
image_displace((t_gobj*)x, x->x_glist, 0.0, 0.0);
323-
}*/
292+
}
324293

325-
/*void image_color(t_image* x,t_symbol* col)
294+
static void image_color(t_image* x,t_symbol* col)
326295
{
327296
//outlet_bang(x->x_obj.ob_outlet); only bang if there was a bang ..
328297
//so color black does the same as bang, but doesn't forward the bang
329298

330-
}*/
299+
}
300+
#endif
331301

332302
static int image_newclick(t_gobj *z, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit)
333303
{
@@ -337,15 +307,6 @@ static int image_newclick(t_gobj *z, struct _glist *glist, int xpix, int ypix, i
337307
outlet_bang(x->x_obj.ob_outlet);
338308
// LATER: figure out how to do click on and click off
339309
// and provide a toggle button behavior instead
340-
/*{
341-
x->x_clicked = 1;
342-
outlet_float(x->x_obj.ob_outlet, x->x_clicked);
343-
}
344-
else if (x->x_clicked)
345-
{
346-
x->x_clicked = 0;
347-
outlet_float(x->x_obj.ob_outlet, x->x_clicked);
348-
}*/
349310
return(1);
350311
}
351312

@@ -426,19 +387,19 @@ static void image_imagesize_callback(t_image *x, t_float w, t_float h) {
426387
}
427388
else
428389
{
429-
//sys_vgui("catch {.x%x.c delete %xMT}\n", glist_getcanvas(x->x_glist), x);
430390
// reselect if we are on a toplevel canvas to adjust the selection rectangle, if necessary
431391

392+
#if 0
432393
/* ico@vt.edu: this does not work for the spill mode, so we will have to
433-
draw the select box on demand
394+
draw the select box on demand */
434395
gui_vmess("gui_image_draw_border", "xxiiii",
435396
glist_getcanvas(x->x_glist),
436397
x,
437398
0 - x->x_img_width/2,
438399
0 - x->x_img_height/2,
439400
x->x_img_width,
440401
x->x_img_height);
441-
*/
402+
#endif
442403

443404
if (glist_isselected(x->x_glist, (t_gobj *)x) && glist_getcanvas(x->x_glist) == x->x_glist)
444405
{
@@ -463,14 +424,11 @@ static void image_setwidget(void)
463424

464425
static void image_free(t_image *x)
465426
{
466-
//sys_vgui("image delete img%x\n", x);
467427
gui_vmess("gui_image_free", "x", x);
468428
if (x->x_receive)
469429
{
470430
pd_unbind(&x->x_obj.ob_pd,x->x_receive);
471431
}
472-
//sys_vgui(".x%x.c delete %xSEL\n", x);
473-
//sys_vgui(".x%x.c delete %xS\n", x);
474432
}
475433

476434
static void *image_new(t_symbol *s, t_int argc, t_atom *argv)
@@ -515,12 +473,12 @@ void image_setup(void)
515473
image_class = class_new(gensym("image"),
516474
(t_newmethod)image_new, (t_method)image_free,
517475
sizeof(t_image),0, A_GIMME,0);
518-
/*
476+
#if 0 // TODO?
519477
class_addmethod(image_class, (t_method)image_size, gensym("size"),
520478
A_FLOAT, A_FLOAT, 0);
521479
class_addmethod(image_class, (t_method)image_color, gensym("color"),
522480
A_SYMBOL, 0);
523-
*/
481+
#endif
524482
class_addmethod(image_class, (t_method)image_click, gensym("click"),
525483
A_DEFFLOAT, 0);
526484
class_addmethod(image_class, (t_method)image_open, gensym("open"),

0 commit comments

Comments
 (0)