[SCM] python-pyo/master: Imported Upstream version 0.7.6
tiago at users.alioth.debian.org
tiago at users.alioth.debian.org
Tue Jul 28 21:43:19 UTC 2015
The following commit has been merged in the master branch:
commit a9ea54317bc30bcf207bd15b9740044e0a979106
Author: Tiago Bortoletto Vaz <tiago at debian.org>
Date: Tue Jul 28 17:42:17 2015 -0400
Imported Upstream version 0.7.6
diff --git a/ChangeLog b/ChangeLog
index 0a20360..73619a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,63 @@
-------------------------------------------------------------------------------------
+
+2015-07-27 belangeo <belangeo at gmail.com>
+
+ * Final revision for version 0.7.6.
+ - rev 1335
+
+2015-07-24 belangeo <belangeo at gmail.com>
+
+ * Release tag: 0.7.6.
+ - rev 1333
+
+2015-07-24 belangeo <belangeo at gmail.com>
+
+ * Added missing types to OscDataSend and OscDataReceive (char, blob, True,
+ False, None and MIDI packet).
+ - rev 1332
+
+2015-07-21 belangeo <belangeo at gmail.com>
+
+ * Fixed Centroid output with silence as input.
+ - rev 1330
+
+2015-07-21 belangeo <belangeo at gmail.com>
+
+ * Added new objet: RawMidi, a raw Midi handler.
+ - rev 1329
+
+2015-07-21 belangeo <belangeo at gmail.com>
+
+ * Added pyoArgsAssert call in each object's methods.
+ - rev 1320, 1325, 1327, 1328
+
+2015-07-20 belangeo <belangeo at gmail.com>
+
+ * Fixed the "segmentation fault" that occur sometimes when deleting an object.
+ - rev 1326
+
+2015-05-31 belangeo <belangeo at gmail.com>
+
+ * E-Pyo: Fixed project tree.
+ - rev 1315
+
+2015-05-29 belangeo <belangeo at gmail.com>
+
+ * E-Pyo: stderr now prints to the output panel.
+ - rev 1314
+
+2015-05-25 belangeo <belangeo at gmail.com>
+
+ * E-Pyo: Added code block selection (#--> and #<-- are delimiters).
+ The background server now prints to the output panel.
+ - rev 1313
+
+2015-04-29 belangeo <belangeo at gmail.com>
+
+ * Fixed CPU usage of PeakAmp.
+ - rev 1312
+
+-------------------------------------------------------------------------------------
2015-03-05 belangeo <belangeo at gmail.com>
* Fixed crash when portaudio stream is stopped on OSX (created when fixed
diff --git a/doc-sphinx/source/api/alphabetical.rst b/doc-sphinx/source/api/alphabetical.rst
index b61616d..ad48bdc 100644
--- a/doc-sphinx/source/api/alphabetical.rst
+++ b/doc-sphinx/source/api/alphabetical.rst
@@ -180,6 +180,7 @@ Alphabetical class reference
- :py:class:`RandInt` : Periodic pseudo-random integer generator.
- :py:class:`Randh` : Periodic pseudo-random generator.
- :py:class:`Randi` : Periodic pseudo-random generator with interpolation.
+- :py:class:`RawMidi` : Raw Midi handler.
- :py:class:`Record` : Writes input sound in an audio file on the disk.
- :py:class:`Reson` : A second-order resonant bandpass filter.
- :py:class:`Resonx` : A multi-stages second-order resonant bandpass filter.
@@ -254,7 +255,7 @@ Alphabetical class reference
- :py:class:`Vectral` : Performs magnitude smoothing between successive frames.
- :py:class:`Vocoder` : Applies the spectral envelope of a first sound to the spectrum of a second sound.
- :py:class:`VoiceManager` : Polyphony voice manager.
-- :py:class:`WGVerb` : 8 delay line mono FDN reverb.
+- :py:class:`WGVerb` : 8 delay lines mono FDN reverb.
- :py:class:`Waveguide` : Basic waveguide model.
- :py:class:`WinTable` : Generates different kind of windowing functions.
- :py:class:`Wrap` : Wraps-around the signal that exceeds the `min` and `max` thresholds.
diff --git a/doc-sphinx/source/api/classes/midi.rst b/doc-sphinx/source/api/classes/midi.rst
index bb7dc1d..094c588 100644
--- a/doc-sphinx/source/api/classes/midi.rst
+++ b/doc-sphinx/source/api/classes/midi.rst
@@ -64,3 +64,8 @@ used as controls and can't be sent to the output soundcard.
.. autoclass:: Touchin
:members:
+*RawMidi*
+-----------------------------------
+
+.. autoclass:: RawMidi
+ :members:
diff --git a/doc-sphinx/source/index.rst b/doc-sphinx/source/index.rst
index 548d84b..c2c953b 100644
--- a/doc-sphinx/source/index.rst
+++ b/doc-sphinx/source/index.rst
@@ -3,7 +3,7 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
-Welcome to the Pyo 0.7.5 documentation
+Welcome to the Pyo 0.7.6 documentation
===================================================
.. toctree::
diff --git a/embedded/puredata/m_pd.h b/embedded/puredata/m_pd.h
deleted file mode 100755
index 71bd28e..0000000
--- a/embedded/puredata/m_pd.h
+++ /dev/null
@@ -1,665 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
-
-#ifndef __m_pd_h_
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-extern "C" {
-#endif
-
-#define PD_MAJOR_VERSION 0
-#define PD_MINOR_VERSION 41
-#define PD_BUGFIX_VERSION 4
-#define PD_TEST_VERSION "extended"
-
-/* old name for "MSW" flag -- we have to take it for the sake of many old
-"nmakefiles" for externs, which will define NT and not MSW */
-#if defined(NT) && !defined(MSW)
-#define MSW
-#endif
-
-/* These pragmas are only used for MSVC, not MinGW or Cygwin <hans at at.or.at> */
-#ifdef _MSC_VER
-/* #pragma warning( disable : 4091 ) */
-#pragma warning( disable : 4305 ) /* uncast const double to float */
-#pragma warning( disable : 4244 ) /* uncast float/int conversion etc. */
-#pragma warning( disable : 4101 ) /* unused automatic variables */
-#endif /* _MSC_VER */
-
- /* the external storage class is "extern" in UNIX; in MSW it's ugly. */
-#ifdef MSW
-#ifdef PD_INTERNAL
-#define EXTERN __declspec(dllexport) extern
-#else
-#define EXTERN __declspec(dllimport) extern
-#endif /* PD_INTERNAL */
-#else
-#define EXTERN extern
-#endif /* MSW */
-
- /* and depending on the compiler, hidden data structures are
- declared differently: */
-#if defined( __GNUC__) || defined( __BORLANDC__ ) || defined( __MWERKS__ )
-#define EXTERN_STRUCT struct
-#else
-#define EXTERN_STRUCT extern struct
-#endif
-
-
-#if !defined(_SIZE_T) && !defined(_SIZE_T_)
-#include <stddef.h> /* just for size_t -- how lame! */
-#endif
-
-#define MAXPDSTRING 1000 /* must be >= FILENAME_MAX */
-#define MAXPDARG 5 /* max number of args we can typecheck today */
-
-/* signed and unsigned integer types the size of a pointer: */
-/* GG: long is the size of a pointer */
-typedef long t_int;
-
-typedef float t_float; /* a floating-point number at most the same size */
-typedef float t_floatarg; /* floating-point type for function calls */
-
-typedef struct _symbol
-{
- char *s_name;
- struct _class **s_thing;
- struct _symbol *s_next;
-} t_symbol;
-
-EXTERN_STRUCT _array;
-#define t_array struct _array /* g_canvas.h */
-
-/* pointers to glist and array elements go through a "stub" which sticks
-around after the glist or array is freed. The stub itself is deleted when
-both the glist/array is gone and the refcount is zero, ensuring that no
-gpointers are pointing here. */
-
-#define GP_NONE 0 /* the stub points nowhere (has been cut off) */
-#define GP_GLIST 1 /* the stub points to a glist element */
-#define GP_ARRAY 2 /* ... or array */
-
-typedef struct _gstub
-{
- union
- {
- struct _glist *gs_glist; /* glist we're in */
- struct _array *gs_array; /* array we're in */
- } gs_un;
- int gs_which; /* GP_GLIST/GP_ARRAY */
- int gs_refcount; /* number of gpointers pointing here */
-} t_gstub;
-
-typedef struct _gpointer /* pointer to a gobj in a glist */
-{
- union
- {
- struct _scalar *gp_scalar; /* scalar we're in (if glist) */
- union word *gp_w; /* raw data (if array) */
- } gp_un;
- int gp_valid; /* number which must match gpointee */
- t_gstub *gp_stub; /* stub which points to glist/array */
-} t_gpointer;
-
-#define PD_BLOBS 1 /* MP20070211 Use this to test for blob capability */
-/* MP20061223 blob type: */
-typedef struct _blob /* pointer to a blob */
-{
- unsigned long s_length; /* length of blob in bytes */
- unsigned char *s_data; /* pointer to 1st byte of blob */
-} t_blob;
-/* ...MP20061223 blob type */
-
-
-typedef union word
-{
- t_float w_float;
- t_symbol *w_symbol;
- t_gpointer *w_gpointer;
- t_array *w_array;
- struct _glist *w_list;
- int w_index;
- t_blob *w_blob; /* MP20061223 blob type */
-} t_word;
-
-typedef enum
-{
- A_NULL,
- A_FLOAT,
- A_SYMBOL,
- A_POINTER,
- A_SEMI,
- A_COMMA,
- A_DEFFLOAT,
- A_DEFSYM,
- A_DOLLAR,
- A_DOLLSYM,
- A_GIMME,
- A_CANT,
- A_BLOB /* MP20061223 blob type */
-} t_atomtype;
-
-#define A_DEFSYMBOL A_DEFSYM /* better name for this */
-
-typedef struct _atom
-{
- t_atomtype a_type;
- union word a_w;
-} t_atom;
-
-EXTERN_STRUCT _class;
-#define t_class struct _class
-
-EXTERN_STRUCT _outlet;
-#define t_outlet struct _outlet
-
-EXTERN_STRUCT _inlet;
-#define t_inlet struct _inlet
-
-EXTERN_STRUCT _binbuf;
-#define t_binbuf struct _binbuf
-
-EXTERN_STRUCT _clock;
-#define t_clock struct _clock
-
-EXTERN_STRUCT _outconnect;
-#define t_outconnect struct _outconnect
-
-EXTERN_STRUCT _glist;
-#define t_glist struct _glist
-#define t_canvas struct _glist /* LATER lose this */
-
-typedef t_class *t_pd; /* pure datum: nothing but a class pointer */
-
-typedef struct _gobj /* a graphical object */
-{
- t_pd g_pd; /* pure datum header (class) */
- struct _gobj *g_next; /* next in list */
-} t_gobj;
-
-typedef struct _scalar /* a graphical object holding data */
-{
- t_gobj sc_gobj; /* header for graphical object */
- t_symbol *sc_template; /* template name (LATER replace with pointer) */
- t_word sc_vec[1]; /* indeterminate-length array of words */
-} t_scalar;
-
-typedef struct _text /* patchable object - graphical, with text */
-{
- t_gobj te_g; /* header for graphical object */
- t_binbuf *te_binbuf; /* holder for the text */
- t_outlet *te_outlet; /* linked list of outlets */
- t_inlet *te_inlet; /* linked list of inlets */
- short te_xpix; /* x&y location (within the toplevel) */
- short te_ypix;
- short te_width; /* requested width in chars, 0 if auto */
- unsigned int te_type:2; /* from defs below */
-} t_text;
-
-#define T_TEXT 0 /* just a textual comment */
-#define T_OBJECT 1 /* a MAX style patchable object */
-#define T_MESSAGE 2 /* a MAX stype message */
-#define T_ATOM 3 /* a cell to display a number or symbol */
-
-#define te_pd te_g.g_pd
-
- /* t_object is synonym for t_text (LATER unify them) */
-
-typedef struct _text t_object;
-
-#define ob_outlet te_outlet
-#define ob_inlet te_inlet
-#define ob_binbuf te_binbuf
-#define ob_pd te_g.g_pd
-#define ob_g te_g
-
-typedef void (*t_method)(void);
-typedef void *(*t_newmethod)( void);
-typedef void (*t_gotfn)(void *x, ...);
-
-/* ---------------- pre-defined objects and symbols --------------*/
-EXTERN t_pd pd_objectmaker; /* factory for creating "object" boxes */
-EXTERN t_pd pd_canvasmaker; /* factory for creating canvases */
-EXTERN t_symbol s_pointer;
-EXTERN t_symbol s_float;
-EXTERN t_symbol s_symbol;
-EXTERN t_symbol s_blob;
-EXTERN t_symbol s_bang;
-EXTERN t_symbol s_list;
-EXTERN t_symbol s_anything;
-EXTERN t_symbol s_signal;
-EXTERN t_symbol s__N;
-EXTERN t_symbol s__X;
-EXTERN t_symbol s_x;
-EXTERN t_symbol s_y;
-EXTERN t_symbol s_;
-
-/* --------- prototypes from the central message system ----------- */
-EXTERN void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void pd_forwardmess(t_pd *x, int argc, t_atom *argv);
-EXTERN t_symbol *gensym(const char *s);
-EXTERN t_gotfn getfn(t_pd *x, t_symbol *s);
-EXTERN t_gotfn zgetfn(t_pd *x, t_symbol *s);
-EXTERN void nullfn(void);
-EXTERN void pd_vmess(t_pd *x, t_symbol *s, char *fmt, ...);
-#define mess0(x, s) ((*getfn((x), (s)))((x)))
-#define mess1(x, s, a) ((*getfn((x), (s)))((x), (a)))
-#define mess2(x, s, a,b) ((*getfn((x), (s)))((x), (a),(b)))
-#define mess3(x, s, a,b,c) ((*getfn((x), (s)))((x), (a),(b),(c)))
-#define mess4(x, s, a,b,c,d) ((*getfn((x), (s)))((x), (a),(b),(c),(d)))
-#define mess5(x, s, a,b,c,d,e) ((*getfn((x), (s)))((x), (a),(b),(c),(d),(e)))
-EXTERN void obj_list(t_object *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN t_pd *pd_newest(void);
-
-/* --------------- memory management -------------------- */
-EXTERN void *getbytes(size_t nbytes);
-EXTERN void *getzbytes(size_t nbytes);
-EXTERN void *copybytes(void *src, size_t nbytes);
-EXTERN void freebytes(void *x, size_t nbytes);
-EXTERN void *resizebytes(void *x, size_t oldsize, size_t newsize);
-
-/* -------------------- atoms ----------------------------- */
-
-#define SETSEMI(atom) ((atom)->a_type = A_SEMI, (atom)->a_w.w_index = 0)
-#define SETCOMMA(atom) ((atom)->a_type = A_COMMA, (atom)->a_w.w_index = 0)
-#define SETPOINTER(atom, gp) ((atom)->a_type = A_POINTER, \
- (atom)->a_w.w_gpointer = (gp))
-#define SETFLOAT(atom, f) ((atom)->a_type = A_FLOAT, (atom)->a_w.w_float = (f))
-#define SETSYMBOL(atom, s) ((atom)->a_type = A_SYMBOL, \
- (atom)->a_w.w_symbol = (s))
-#define SETBLOB(atom, st) ((atom)->a_type = A_BLOB, (atom)->a_w.w_blob = (st)) /* MP 20061226 blob type */
-#define SETDOLLAR(atom, n) ((atom)->a_type = A_DOLLAR, \
- (atom)->a_w.w_index = (n))
-#define SETDOLLSYM(atom, s) ((atom)->a_type = A_DOLLSYM, \
- (atom)->a_w.w_symbol= (s))
-
-EXTERN t_float atom_getfloat(t_atom *a);
-EXTERN t_int atom_getint(t_atom *a);
-EXTERN t_symbol *atom_getsymbol(t_atom *a);
-EXTERN t_blob *atom_getblob(t_atom *a);/* MP 20070108 blob type */
-EXTERN t_symbol *atom_gensym(t_atom *a);
-EXTERN t_float atom_getfloatarg(int which, int argc, t_atom *argv);
-EXTERN t_int atom_getintarg(int which, int argc, t_atom *argv);
-EXTERN t_symbol *atom_getsymbolarg(int which, int argc, t_atom *argv);
-
-EXTERN void atom_string(t_atom *a, char *buf, unsigned int bufsize);
-
-/* ------------------ binbufs --------------- */
-
-EXTERN t_binbuf *binbuf_new(void);
-EXTERN void binbuf_free(t_binbuf *x);
-EXTERN t_binbuf *binbuf_duplicate(t_binbuf *y);
-
-EXTERN void binbuf_text(t_binbuf *x, char *text, size_t size);
-EXTERN void binbuf_gettext(t_binbuf *x, char **bufp, int *lengthp);
-EXTERN void binbuf_clear(t_binbuf *x);
-EXTERN void binbuf_add(t_binbuf *x, int argc, t_atom *argv);
-EXTERN void binbuf_addv(t_binbuf *x, char *fmt, ...);
-EXTERN void binbuf_addbinbuf(t_binbuf *x, t_binbuf *y);
-EXTERN void binbuf_addsemi(t_binbuf *x);
-EXTERN void binbuf_restore(t_binbuf *x, int argc, t_atom *argv);
-EXTERN void binbuf_print(t_binbuf *x);
-EXTERN int binbuf_getnatom(t_binbuf *x);
-EXTERN t_atom *binbuf_getvec(t_binbuf *x);
-EXTERN void binbuf_eval(t_binbuf *x, t_pd *target, int argc, t_atom *argv);
-EXTERN int binbuf_read(t_binbuf *b, char *filename, char *dirname,
- int crflag);
-EXTERN int binbuf_read_via_canvas(t_binbuf *b, char *filename, t_canvas *canvas,
- int crflag);
-EXTERN int binbuf_read_via_path(t_binbuf *b, char *filename, char *dirname,
- int crflag);
-EXTERN int binbuf_write(t_binbuf *x, char *filename, char *dir,
- int crflag);
-EXTERN void binbuf_evalfile(t_symbol *name, t_symbol *dir);
-EXTERN t_symbol *binbuf_realizedollsym(t_symbol *s, int ac, t_atom *av,
- int tonew);
-
-/* ------------------ clocks --------------- */
-
-EXTERN t_clock *clock_new(void *owner, t_method fn);
-EXTERN void clock_set(t_clock *x, double systime);
-EXTERN void clock_delay(t_clock *x, double delaytime);
-EXTERN void clock_unset(t_clock *x);
-EXTERN double clock_getlogicaltime(void);
-EXTERN double clock_getsystime(void); /* OBSOLETE; use clock_getlogicaltime() */
-EXTERN double clock_gettimesince(double prevsystime);
-EXTERN double clock_getsystimeafter(double delaytime);
-EXTERN void clock_free(t_clock *x);
-
-/* ----------------- pure data ---------------- */
-EXTERN t_pd *pd_new(t_class *cls);
-EXTERN void pd_free(t_pd *x);
-EXTERN void pd_bind(t_pd *x, t_symbol *s);
-EXTERN void pd_unbind(t_pd *x, t_symbol *s);
-EXTERN t_pd *pd_findbyclass(t_symbol *s, t_class *c);
-EXTERN void pd_pushsym(t_pd *x);
-EXTERN void pd_popsym(t_pd *x);
-EXTERN t_symbol *pd_getfilename(void);
-EXTERN t_symbol *pd_getdirname(void);
-EXTERN void pd_bang(t_pd *x);
-EXTERN void pd_pointer(t_pd *x, t_gpointer *gp);
-EXTERN void pd_float(t_pd *x, t_float f);
-EXTERN void pd_symbol(t_pd *x, t_symbol *s);
-EXTERN void pd_blob(t_pd *x, t_blob *st); /* MP 20061226 blob type */
-EXTERN void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-#define pd_class(x) (*(x))
-
-/* ----------------- pointers ---------------- */
-EXTERN void gpointer_init(t_gpointer *gp);
-EXTERN void gpointer_copy(const t_gpointer *gpfrom, t_gpointer *gpto);
-EXTERN void gpointer_unset(t_gpointer *gp);
-EXTERN int gpointer_check(const t_gpointer *gp, int headok);
-
-/* ----------------- patchable "objects" -------------- */
-EXTERN t_inlet *inlet_new(t_object *owner, t_pd *dest, t_symbol *s1,
- t_symbol *s2);
-EXTERN t_inlet *pointerinlet_new(t_object *owner, t_gpointer *gp);
-EXTERN t_inlet *floatinlet_new(t_object *owner, t_float *fp);
-EXTERN t_inlet *symbolinlet_new(t_object *owner, t_symbol **sp);
-EXTERN t_inlet *signalinlet_new(t_object *owner, t_float f);
-EXTERN void inlet_free(t_inlet *x);
-
-EXTERN t_outlet *outlet_new(t_object *owner, t_symbol *s);
-EXTERN void outlet_bang(t_outlet *x);
-EXTERN void outlet_pointer(t_outlet *x, t_gpointer *gp);
-EXTERN void outlet_float(t_outlet *x, t_float f);
-EXTERN void outlet_symbol(t_outlet *x, t_symbol *s);
-EXTERN void outlet_blob(t_outlet *x, t_blob *st); /* MP 20061226 blob type */
-EXTERN void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN t_symbol *outlet_getsymbol(t_outlet *x);
-EXTERN void outlet_free(t_outlet *x);
-EXTERN t_object *pd_checkobject(t_pd *x);
-
-
-/* -------------------- canvases -------------- */
-
-EXTERN void glob_setfilename(void *dummy, t_symbol *name, t_symbol *dir);
-
-EXTERN void canvas_setargs(int argc, t_atom *argv);
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-EXTERN t_symbol *canvas_getcurrentdir(void);
-EXTERN t_glist *canvas_getcurrent(void);
-EXTERN void canvas_makefilename(t_glist *c, char *file,
- char *result,int resultsize);
-EXTERN t_symbol *canvas_getdir(t_glist *x);
-EXTERN char sys_font[]; /* default typeface set in s_main.c */
-EXTERN char sys_fontweight[]; /* default font weight set in s_main.c */
-EXTERN int sys_fontwidth(int fontsize);
-EXTERN int sys_fontheight(int fontsize);
-EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b);
-EXTERN int canvas_open(t_canvas *x, const char *name, const char *ext,
- char *dirresult, char **nameresult, unsigned int size, int bin);
-
-/* ---------------- widget behaviors ---------------------- */
-
-EXTERN_STRUCT _widgetbehavior;
-#define t_widgetbehavior struct _widgetbehavior
-
-EXTERN_STRUCT _parentwidgetbehavior;
-#define t_parentwidgetbehavior struct _parentwidgetbehavior
-EXTERN t_parentwidgetbehavior *pd_getparentwidget(t_pd *x);
-
-/* -------------------- classes -------------- */
-
-#define CLASS_DEFAULT 0 /* flags for new classes below */
-#define CLASS_PD 1
-#define CLASS_GOBJ 2
-#define CLASS_PATCHABLE 3
-#define CLASS_NOINLET 8
-
-#define CLASS_TYPEMASK 3
-
-
-EXTERN t_class *class_new(t_symbol *name, t_newmethod newmethod,
- t_method freemethod, size_t size, int flags, t_atomtype arg1, ...);
-EXTERN void class_addcreator(t_newmethod newmethod, t_symbol *s,
- t_atomtype type1, ...);
-EXTERN void class_addmethod(t_class *c, t_method fn, t_symbol *sel,
- t_atomtype arg1, ...);
-EXTERN void class_addbang(t_class *c, t_method fn);
-EXTERN void class_addpointer(t_class *c, t_method fn);
-EXTERN void class_doaddfloat(t_class *c, t_method fn);
-EXTERN void class_addsymbol(t_class *c, t_method fn);
-EXTERN void class_addblob(t_class *c, t_method fn);/* MP 20061226 blob type */
-EXTERN void class_addlist(t_class *c, t_method fn);
-EXTERN void class_addanything(t_class *c, t_method fn);
-EXTERN void class_sethelpsymbol(t_class *c, t_symbol *s);
-EXTERN void class_setwidget(t_class *c, t_widgetbehavior *w);
-EXTERN void class_setparentwidget(t_class *c, t_parentwidgetbehavior *w);
-EXTERN t_parentwidgetbehavior *class_parentwidget(t_class *c);
-EXTERN char *class_getname(t_class *c);
-EXTERN char *class_gethelpname(t_class *c);
-EXTERN void class_setdrawcommand(t_class *c);
-EXTERN int class_isdrawcommand(t_class *c);
-EXTERN void class_domainsignalin(t_class *c, int onset);
-EXTERN void class_set_extern_dir(t_symbol *s);
-#define CLASS_MAINSIGNALIN(c, type, field) \
- class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0)
-
- /* prototype for functions to save Pd's to a binbuf */
-typedef void (*t_savefn)(t_gobj *x, t_binbuf *b);
-EXTERN void class_setsavefn(t_class *c, t_savefn f);
-EXTERN t_savefn class_getsavefn(t_class *c);
- /* prototype for functions to open properties dialogs */
-typedef void (*t_propertiesfn)(t_gobj *x, struct _glist *glist);
-EXTERN void class_setpropertiesfn(t_class *c, t_propertiesfn f);
-EXTERN t_propertiesfn class_getpropertiesfn(t_class *c);
-
-#ifndef PD_CLASS_DEF
-#define class_addbang(x, y) class_addbang((x), (t_method)(y))
-#define class_addpointer(x, y) class_addpointer((x), (t_method)(y))
-#define class_addfloat(x, y) class_doaddfloat((x), (t_method)(y))
-#define class_addsymbol(x, y) class_addsymbol((x), (t_method)(y))
-#define class_addblob(x, y) class_addblob((x), (t_method)(y)) /* MP20061226 blob type */
-#define class_addlist(x, y) class_addlist((x), (t_method)(y))
-#define class_addanything(x, y) class_addanything((x), (t_method)(y))
-#endif
-
-/* ------------ printing --------------------------------- */
-EXTERN void post(const char *fmt, ...);
-EXTERN void startpost(const char *fmt, ...);
-EXTERN void poststring(const char *s);
-EXTERN void postfloat(float f);
-EXTERN void postatom(int argc, t_atom *argv);
-EXTERN void endpost(void);
-EXTERN void error(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
-EXTERN void verbose(int level, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
-EXTERN void bug(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
-EXTERN void pd_error(void *object, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
-EXTERN void sys_logerror(const char *object, const char *s);
-EXTERN void sys_unixerror(const char *object);
-EXTERN void sys_ouch(void);
-
-
-/* ------------ system interface routines ------------------- */
-EXTERN int sys_isreadablefile(const char *name);
-EXTERN int sys_isabsolutepath(const char *dir);
-EXTERN void sys_bashfilename(const char *from, char *to);
-EXTERN void sys_unbashfilename(const char *from, char *to);
-EXTERN int open_via_path(const char *name, const char *ext, const char *dir,
- char *dirresult, char **nameresult, unsigned int size, int bin);
-EXTERN int sched_geteventno(void);
-EXTERN double sys_getrealtime(void);
-EXTERN int (*sys_idlehook)(void); /* hook to add idle time computation */
-
-
-/* ------------ threading ------------------- */
-EXTERN void sys_lock(void);
-EXTERN void sys_unlock(void);
-EXTERN int sys_trylock(void);
-
-
-/* --------------- signals ----------------------------------- */
-
-typedef float t_sample;
-#define MAXLOGSIG 32
-#define MAXSIGSIZE (1 << MAXLOGSIG)
-
-typedef struct _signal
-{
- int s_n; /* number of points in the array */
- t_sample *s_vec; /* the array */
- t_float s_sr; /* sample rate */
- int s_refcount; /* number of times used */
- int s_isborrowed; /* whether we're going to borrow our array */
- struct _signal *s_borrowedfrom; /* signal to borrow it from */
- struct _signal *s_nextfree; /* next in freelist */
- struct _signal *s_nextused; /* next in used list */
- int s_vecsize; /* allocated size of array in points */
-} t_signal;
-
-typedef t_int *(*t_perfroutine)(t_int *args);
-
-EXTERN t_int *plus_perform(t_int *args);
-EXTERN t_int *zero_perform(t_int *args);
-EXTERN t_int *copy_perform(t_int *args);
-
-EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n);
-EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n);
-EXTERN void dsp_add_scalarcopy(t_float *in, t_sample *out, int n);
-EXTERN void dsp_add_zero(t_sample *out, int n);
-
-EXTERN int sys_getblksize(void);
-EXTERN t_float sys_getsr(void);
-EXTERN int sys_get_inchannels(void);
-EXTERN int sys_get_outchannels(void);
-
-EXTERN void dsp_add(t_perfroutine f, int n, ...);
-EXTERN void dsp_addv(t_perfroutine f, int n, t_int *vec);
-EXTERN void pd_fft(t_float *buf, int npoints, int inverse);
-EXTERN int ilog2(int n);
-
-EXTERN void mayer_fht(t_sample *fz, int n);
-EXTERN void mayer_fft(int n, t_sample *real, t_sample *imag);
-EXTERN void mayer_ifft(int n, t_sample *real, t_sample *imag);
-EXTERN void mayer_realfft(int n, t_sample *real);
-EXTERN void mayer_realifft(int n, t_sample *real);
-
-EXTERN float *cos_table;
-#define LOGCOSTABSIZE 9
-#define COSTABSIZE (1<<LOGCOSTABSIZE)
-
-EXTERN int canvas_suspend_dsp(void);
-EXTERN void canvas_resume_dsp(int oldstate);
-EXTERN void canvas_update_dsp(void);
-EXTERN int canvas_dspstate;
-
-/* up/downsampling */
-typedef struct _resample
-{
- int method; /* up/downsampling method ID */
-
- t_int downsample; /* downsampling factor */
- t_int upsample; /* upsampling factor */
-
- t_sample *s_vec; /* here we hold the resampled data */
- int s_n;
-
- t_sample *coeffs; /* coefficients for filtering... */
- int coefsize;
-
- t_sample *buffer; /* buffer for filtering */
- int bufsize;
-} t_resample;
-
-EXTERN void resample_init(t_resample *x);
-EXTERN void resample_free(t_resample *x);
-
-EXTERN void resample_dsp(t_resample *x, t_sample *in, int insize, t_sample *out, int outsize, int method);
-EXTERN void resamplefrom_dsp(t_resample *x, t_sample *in, int insize, int outsize, int method);
-EXTERN void resampleto_dsp(t_resample *x, t_sample *out, int insize, int outsize, int method);
-
-/* ----------------------- utility functions for signals -------------- */
-EXTERN t_float mtof(t_float);
-EXTERN t_float ftom(t_float);
-EXTERN t_float rmstodb(t_float);
-EXTERN t_float powtodb(t_float);
-EXTERN t_float dbtorms(t_float);
-EXTERN t_float dbtopow(t_float);
-
-EXTERN t_float q8_sqrt(t_float);
-EXTERN t_float q8_rsqrt(t_float);
-#ifndef N32
-EXTERN t_float qsqrt(t_float); /* old names kept for extern compatibility */
-EXTERN t_float qrsqrt(t_float);
-#endif
-/* --------------------- data --------------------------------- */
-
- /* graphical arrays */
-EXTERN_STRUCT _garray;
-#define t_garray struct _garray
-
-EXTERN t_class *garray_class;
-EXTERN int garray_getfloatarray(t_garray *x, int *size, t_float **vec);
-EXTERN int garray_getfloatwords(t_garray *x, int *size, t_word **vec);
-EXTERN t_float garray_get(t_garray *x, t_symbol *s, t_int indx);
-EXTERN void garray_redraw(t_garray *x);
-EXTERN int garray_npoints(t_garray *x);
-EXTERN char *garray_vec(t_garray *x);
-EXTERN void garray_resize(t_garray *x, t_floatarg f);
-EXTERN void garray_usedindsp(t_garray *x);
-EXTERN void garray_setsaveit(t_garray *x, int saveit);
-EXTERN t_class *scalar_class;
-
-EXTERN t_float *value_get(t_symbol *s);
-EXTERN void value_release(t_symbol *s);
-EXTERN int value_getfloat(t_symbol *s, t_float *f);
-EXTERN int value_setfloat(t_symbol *s, t_float f);
-
-/* ------- GUI interface - functions to send strings to TK --------- */
-typedef void (*t_guicallbackfn)(t_gobj *client, t_glist *glist);
-
-EXTERN void sys_vgui(char *fmt, ...);
-EXTERN void sys_gui(char *s);
-EXTERN void sys_pretendguibytes(int n);
-EXTERN void sys_queuegui(void *client, t_glist *glist, t_guicallbackfn f);
-EXTERN void sys_unqueuegui(void *client);
- /* dialog window creation and destruction */
-EXTERN void gfxstub_new(t_pd *owner, void *key, const char *cmd);
-EXTERN void gfxstub_deleteforkey(void *key);
-
-extern t_class *glob_pdobject; /* object to send "pd" messages */
-
-/*------------- Max 0.26 compatibility --------------------*/
-
-/* the following reflects the new way classes are laid out, with the class
- pointing to the messlist and not vice versa. Externs shouldn't feel it. */
-typedef t_class *t_externclass;
-
-EXTERN void c_extern(t_externclass *cls, t_newmethod newroutine,
- t_method freeroutine, t_symbol *name, size_t size, int tiny, \
- t_atomtype arg1, ...);
-EXTERN void c_addmess(t_method fn, t_symbol *sel, t_atomtype arg1, ...);
-
-#define t_getbytes getbytes
-#define t_freebytes freebytes
-#define t_resizebytes resizebytes
-#define typedmess pd_typedmess
-#define vmess pd_vmess
-
-/* A definition to help gui objects straddle 0.34-0.35 changes. If this is
-defined, there is a "te_xpix" field in objects, not a "te_xpos" as before: */
-
-#define PD_USE_TE_XPIX
-
-#if defined(__i386__) || defined(__x86_64__)
-/* a test for NANs and denormals. Should only be necessary on i386. */
-#define PD_BADFLOAT(f) ((((*(unsigned int*)&(f))&0x7f800000)==0) || \
- (((*(unsigned int*)&(f))&0x7f800000)==0x7f800000))
-/* more stringent test: anything not between 1e-19 and 1e19 in absolute val */
-#define PD_BIGORSMALL(f) ((((*(unsigned int*)&(f))&0x60000000)==0) || \
- (((*(unsigned int*)&(f))&0x60000000)==0x60000000))
-#else
-#define PD_BADFLOAT(f) 0
-#define PD_BIGORSMALL(f) 0
-#endif
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-}
-#endif
-
-#define __m_pd_h_
-#endif /* __m_pd_h_ */
diff --git a/embedded/puredata/pyo~-help.pd b/embedded/puredata/pyo~-help.pd
index e8c9c8a..d1f07d9 100644
--- a/embedded/puredata/pyo~-help.pd
+++ b/embedded/puredata/pyo~-help.pd
@@ -1,14 +1,14 @@
-#N canvas 296 140 952 365 10;
+#N canvas 295 147 1007 365 10;
#X obj 28 108 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
-#X obj 144 108 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 144 108 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 13 234 *~;
#X obj 51 234 *~;
#X obj 13 256 dac~;
#X obj 72 213 hsl 128 15 0 1 0 1 empty empty master_gain -2 -8 0 10
-262144 -1 -1 6200 1;
-#X obj 274 223 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 274 223 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 274 243 \; pd dsp \$1;
#X obj 13 59 r msg_to_pyo;
@@ -18,34 +18,34 @@
to 2).;
#N canvas 1 75 824 583 resonators_example 0;
#X obj 35 103 hsl 128 15 0.01 30 1 0 empty empty resonance -2 -8 0
-10 -262144 -1 -1 11200 0;
-#X floatatom 32 120 5 0 0 0 - - -;
+10 -262144 -1 -1 0 0;
+#X floatatom 32 120 5 0 0 0 - - -, f 5;
#X obj 21 530 s msg_to_pyo;
#X obj 98 387 hsl 128 15 0 1 0 0 empty empty delay_time -2 -8 0 10
--262144 -1 -1 1300 0;
-#X floatatom 95 403 5 0 0 0 - - -;
+-262144 -1 -1 0 0;
+#X floatatom 95 403 5 0 0 0 - - -, f 5;
#X msg 95 418 value deltime \$1;
#X obj 111 454 hsl 128 15 0 1 0 0 empty empty delay_feedback -2 -8
-0 10 -262144 -1 -1 10800 0;
-#X floatatom 108 470 5 0 0 0 - - -;
+0 10 -262144 -1 -1 0 0;
+#X floatatom 108 470 5 0 0 0 - - -, f 5;
#X msg 108 485 value delfeed \$1;
#X msg 32 136 value reson \$1;
#X obj 52 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 4700 0;
+-1 -1 0 0;
#X obj 71 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 3200 0;
+-1 -1 0 0;
#X obj 91 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 5800 0;
+-1 -1 0 0;
#X obj 110 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 7100 0;
+-1 -1 0 0;
#X obj 130 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 5500 0;
+-1 -1 0 0;
#X obj 149 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 7100 0;
+-1 -1 0 0;
#X obj 169 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 4400 0;
+-1 -1 0 0;
#X obj 189 177 vsl 15 80 50 500 0 0 empty empty empty 0 -9 0 10 -262144
--1 -1 1800 0;
+-1 -1 0 0;
#X msg 52 306 value freqs \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8;
#X obj 52 264 bondo 8 ____________;
#X obj 52 285 pack f f f f f f f f;
@@ -100,8 +100,8 @@ input;
-1 -1 4233 1;
#X obj 127 144 hsl 128 15 0 36 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 4233 1;
-#X floatatom 75 125 5 0 0 0 - - -;
-#X floatatom 124 160 5 0 0 0 - - -;
+#X floatatom 75 125 5 0 0 0 - - -, f 5;
+#X floatatom 124 160 5 0 0 0 - - -, f 5;
#X obj 124 209 +;
#X obj 124 179 t b f;
#X obj 75 144 t f f;
@@ -142,15 +142,15 @@ input;
;
#X obj 67 172 hsl 128 15 0 0.25 0 0 empty empty brightness -2 -8 0
10 -262144 -1 -1 0 0;
-#X floatatom 64 188 5 0 0 0 - - -;
+#X floatatom 64 188 5 0 0 0 - - -, f 5;
#X msg 64 203 value feed \$1;
#X obj 158 75 hsl 128 15 50 500 0 0 empty empty metro_speed -2 -8 0
10 -262144 -1 -1 0 1;
-#X floatatom 155 93 5 0 0 0 - - -;
-#X floatatom 222 186 5 0 0 0 - - -;
+#X floatatom 155 93 5 0 0 0 - - -, f 5;
+#X floatatom 222 186 5 0 0 0 - - -, f 5;
#X msg 222 216 set amp.fadeout \$1;
#X msg 281 184 set amp.dur \$1;
-#X floatatom 281 165 5 0 0 0 - - -;
+#X floatatom 281 165 5 0 0 0 - - -, f 5;
#X obj 222 132 * 0.001;
#X obj 221 111 - 20;
#X obj 222 165 - 0.005;
@@ -218,7 +218,7 @@ input;
#N canvas 1 75 532 224 conv_reverb_example 0;
#X obj 24 110 hsl 128 15 0 1 0 0 empty empty balance -2 -8 0 10 -262144
-1 -1 0 0;
-#X floatatom 21 127 5 0 0 0 - - -;
+#X floatatom 21 127 5 0 0 0 - - -, f 5;
#X msg 21 143 value bal \$1;
#X obj -3 170 s msg_to_pyo;
#X msg -3 74 read examples/cvlverb.py;
diff --git a/embedded/puredata/pyo~.c b/embedded/puredata/pyo~.c
index 1e675b1..972f66e 100644
--- a/embedded/puredata/pyo~.c
+++ b/embedded/puredata/pyo~.c
@@ -1,5 +1,5 @@
#include <stdlib.h>
-#include "m_pd.h"
+#include <pd/m_pd.h>
#include "Python.h"
#include "m_pyo.h"
diff --git a/examples/algorithmic/01_music_box.py b/examples/algorithmic/01_music_box.py
index 56f86a8..3548f95 100644
--- a/examples/algorithmic/01_music_box.py
+++ b/examples/algorithmic/01_music_box.py
@@ -4,18 +4,23 @@
Music box. 5 voices randomly choosing frequencies over a common scale.
"""
+
from pyo import *
s = Server(duplex=0).boot()
+#--> set list of frequencies
low_freqs = [midiToHz(m+7) for m in [36,43.01,48,55.01,60]]
mid_freqs = [midiToHz(m+7) for m in [60,62,63.93,65,67.01,69,71,72]]
high_freqs = [midiToHz(m+7) for m in [72,74,75.93,77,79.01]]
freqs = [low_freqs,low_freqs,mid_freqs,mid_freqs,high_freqs]
+#<--
+#-->
chx = Choice(choice=freqs, freq=[1,2,3,3,4])
port = Port(chx, risetime=.001, falltime=.001)
sines = SineLoop(port, feedback=[.06,.057,.033,.035,.016], mul=[.15,.15,.1,.1,.06])
pan = SPan(sines, pan=[0, 1, .2, .8, .5]).out()
+#<--
s.gui(locals())
\ No newline at end of file
diff --git a/examples/effects/01_flanger.py b/examples/effects/01_flanger.py
index 4d52111..9be597d 100644
--- a/examples/effects/01_flanger.py
+++ b/examples/effects/01_flanger.py
@@ -8,9 +8,13 @@ from pyo import *
s = Server(sr=44100, nchnls=2, buffersize=512, duplex=0).boot()
+#-->
src = BrownNoise(.1).mix(2).out()
+#<--
+#-->
lf = Sine(freq=.2, mul=.0045, add=.005)
flg = Delay(src, delay=lf, feedback=.25).out()
+#<--
s.gui(locals())
\ No newline at end of file
diff --git a/examples/effects/02_chorus.py b/examples/effects/02_chorus.py
index 57262ef..90fff48 100644
--- a/examples/effects/02_chorus.py
+++ b/examples/effects/02_chorus.py
@@ -8,9 +8,12 @@ from pyo import *
s = Server(sr=44100, nchnls=2, buffersize=512, duplex=0).boot()
+#--> Start a sound
sf = SfPlayer('../snds/baseballmajeur_m.aif', speed=1, loop=True, mul=.3)
sf2 = sf.mix(2).out()
+#<--
+#--> Sets values for 8 delay lines
# delay line frequencies
freqs = [.254, .465, .657, .879, 1.23, 1.342, 1.654, 1.879]
# delay line center delays
@@ -19,8 +22,11 @@ cdelay = [.0087, .0102, .0111, .01254, .0134, .01501, .01707, .0178]
adelay = [.001, .0012, .0013, .0014, .0015, .0016, .002, .0023]
# modulation depth
depth = Sig(1)
+#<--
+#--> Add the delay lines to the source sound
lfos = Sine(freqs, mul=adelay*depth, add=cdelay)
delays = Delay(sf, lfos, feedback=.5, mul=.5).out()
+#<--
s.gui(locals())
diff --git a/include/pyomodule.h b/include/pyomodule.h
index e6f8ee1..32a3f3c 100644
--- a/include/pyomodule.h
+++ b/include/pyomodule.h
@@ -21,7 +21,7 @@
#include "Python.h"
#include <math.h>
-#define PYO_VERSION "0.7.5"
+#define PYO_VERSION "0.7.6"
#ifndef __MYFLT_DEF
#define __MYFLT_DEF
@@ -485,6 +485,7 @@ extern PyTypeObject PeakAmpType;
extern PyTypeObject MainParticleType;
extern PyTypeObject ParticleType;
extern PyTypeObject AtanTableType;
+extern PyTypeObject RawMidiType;
/* Constants */
#define E M_E
@@ -561,51 +562,57 @@ extern PyTypeObject AtanTableType;
/* VISIT & CLEAR */
#define pyo_VISIT \
- if (PyServer_get_server() != NULL) \
+ if (self->server != NULL) \
Py_VISIT(self->server); \
- Py_VISIT(self->stream); \
+ if (self->stream != NULL) \
+ Py_VISIT(self->stream); \
Py_VISIT(self->mul); \
Py_VISIT(self->mul_stream); \
Py_VISIT(self->add); \
Py_VISIT(self->add_stream);
#define pyo_table_VISIT \
- if (PyServer_get_server() != NULL) \
+ if (self->server != NULL) \
Py_VISIT(self->server); \
- Py_VISIT(self->tablestream); \
+ if (self->tablestream != NULL) \
+ Py_VISIT(self->tablestream); \
#define pyo_matrix_VISIT \
- if (PyServer_get_server() != NULL) \
+ if (self->server != NULL) \
Py_VISIT(self->server); \
- Py_VISIT(self->matrixstream); \
+ if (self->matrixstream != NULL) \
+ Py_VISIT(self->matrixstream); \
#define pyo_CLEAR \
- if (PyServer_get_server() != NULL) { \
+ if (self->server != NULL) { \
Py_INCREF(self->server); \
Py_CLEAR(self->server); \
} \
- Py_CLEAR(self->stream); \
+ if (self->stream != NULL) \
+ Py_CLEAR(self->stream); \
Py_CLEAR(self->mul); \
Py_CLEAR(self->mul_stream); \
Py_CLEAR(self->add); \
Py_CLEAR(self->add_stream); \
#define pyo_table_CLEAR \
- if (PyServer_get_server() != NULL) { \
+ if (self->server != NULL) { \
Py_INCREF(self->server); \
Py_CLEAR(self->server); \
} \
- Py_CLEAR(self->tablestream); \
+ if (self->tablestream != NULL) \
+ Py_CLEAR(self->tablestream); \
#define pyo_matrix_CLEAR \
- if (PyServer_get_server() != NULL) { \
+ if (self->server != NULL) { \
Py_INCREF(self->server); \
Py_CLEAR(self->server); \
} \
- Py_CLEAR(self->matrixstream); \
+ if (self->matrixstream != NULL) \
+ Py_CLEAR(self->matrixstream); \
#define pyo_DEALLOC \
- if (PyServer_get_server() != NULL) \
+ if (self->server != NULL && self->stream != NULL) \
Server_removeStream((Server *)self->server, Stream_getStreamId(self->stream)); \
free(self->data); \
diff --git a/installers/osx/release_x86_64.sh b/installers/osx/release_x86_64.sh
index 2779969..2275a10 100644
--- a/installers/osx/release_x86_64.sh
+++ b/installers/osx/release_x86_64.sh
@@ -7,9 +7,9 @@
# 3. cd utils and build E-Pyo
# 4. cd installer/osx and build the realease, only x86_64 version
-export PACKAGE_NAME=pyo_0.7.5_x86_64.pkg
-export DMG_DIR="pyo 0.7.5 Universal"
-export DMG_NAME="pyo_0.7.5_OSX-universal.dmg"
+export PACKAGE_NAME=pyo_0.7.6_x86_64.pkg
+export DMG_DIR="pyo 0.7.6 Universal"
+export DMG_NAME="pyo_0.7.6_OSX-universal.dmg"
export INSTALLER_DIR=`pwd`/installer
export PYO_MODULE_DIR=$INSTALLER_DIR/PyoModule/Package_Contents/tmp
export SUPPORT_LIBS_DIR=$INSTALLER_DIR/SupportLibs/Package_Contents/usr/local/lib
diff --git a/installers/win/win_installer_py26.iss b/installers/win/win_installer_py26.iss
index 8f0acd5..54c1ced 100644
--- a/installers/win/win_installer_py26.iss
+++ b/installers/win/win_installer_py26.iss
@@ -3,7 +3,7 @@
#define appName "pyo"
#define pyVer "2.6"
-#define appVer "0.7.5"
+#define appVer "0.7.6"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
@@ -21,15 +21,15 @@ DisableDirPage=no
AlwaysShowDirOnReadyPage=yes
DefaultGroupName={#appName}
AllowNoIcons=yes
-InfoBeforeFile=C:\Users\olipet\svn\pyo\installers\win\\README-win32-py26.txt
-LicenseFile=C:\Users\olipet\svn\pyo\COPYING.txt
+InfoBeforeFile=C:\Users\olivier\svn\pyo\installers\win\\README-win32-py26.txt
+LicenseFile=C:\Users\olivier\svn\pyo\COPYING.txt
OutputBaseFilename={#appName}_{#appVer}_py{#pyVer}_setup
Compression=lzma
SolidCompression=yes
ChangesAssociations=yes
ChangesEnvironment=yes
DirExistsWarning=no
-SetupIconFile=C:\Users\olipet\svn\pyo\utils\E-PyoIcon.ico
+SetupIconFile=C:\Users\olivier\svn\pyo\utils\E-PyoIcon.ico
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
@@ -51,13 +51,13 @@ Source: "C:\Python26\Lib\site-packages\msvcr90.dll"; DestDir: "{app}\Lib\site-pa
Source: "C:\MinGW\bin\libgcc_s_dw2-1.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
Source: "C:\MinGW\bin\libstdc++-6.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
Source: "C:\Python26\Lib\site-packages\pyo-{#appVer}-py{#pyVer}.egg-info"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
-Source: "C:\Users\olipet\svn\pyo\examples\*"; DestDir: "{userdesktop}\pyo_examples\"; Flags: ignoreversion recursesubdirs createallsubdirs
-Source: "C:\Users\olipet\svn\pyo\installers\win\README-win32-py26.txt"; DestDir: "{userdesktop}"; Flags: ignoreversion
+Source: "C:\Users\olivier\svn\pyo\examples\*"; DestDir: "{userdesktop}\pyo_examples\"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Users\olivier\svn\pyo\installers\win\README-win32-py26.txt"; DestDir: "{userdesktop}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
; E-Pyo stuff
-Source: "C:\Users\olipet\svn\pyo\utils\E-Pyo_py26\E-Pyo.exe"; DestDir: "{pf}\E-Pyo"; Flags: ignoreversion
-Source: "C:\Users\olipet\svn\pyo\utils\E-Pyo_py26\Resources\*"; DestDir: "{pf}\E-Pyo\Resources"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Users\olivier\svn\pyo\utils\E-Pyo_py26\E-Pyo.exe"; DestDir: "{pf}\E-Pyo"; Flags: ignoreversion
+Source: "C:\Users\olivier\svn\pyo\utils\E-Pyo_py26\Resources\*"; DestDir: "{pf}\E-Pyo\Resources"; Flags: ignoreversion recursesubdirs createallsubdirs
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
diff --git a/installers/win/win_installer_py27.iss b/installers/win/win_installer_py27.iss
index af16bc9..e90ddda 100644
--- a/installers/win/win_installer_py27.iss
+++ b/installers/win/win_installer_py27.iss
@@ -3,7 +3,7 @@
#define appName "pyo"
#define pyVer "2.7"
-#define appVer "0.7.5"
+#define appVer "0.7.6"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
@@ -21,15 +21,15 @@ DisableDirPage=no
AlwaysShowDirOnReadyPage=yes
DefaultGroupName={#appName}
AllowNoIcons=yes
-InfoBeforeFile=C:\Users\olipet\svn\pyo\installers\win\\README-win32-py27.txt
-LicenseFile=C:\Users\olipet\svn\pyo\COPYING.txt
+InfoBeforeFile=C:\Users\olivier\svn\pyo\installers\win\\README-win32-py27.txt
+LicenseFile=C:\Users\olivier\svn\pyo\COPYING.txt
OutputBaseFilename={#appName}_{#appVer}_py{#pyVer}_setup
Compression=lzma
SolidCompression=yes
ChangesAssociations=yes
ChangesEnvironment=yes
DirExistsWarning=no
-SetupIconFile=C:\Users\olipet\svn\pyo\utils\E-PyoIcon.ico
+SetupIconFile=C:\Users\olivier\svn\pyo\utils\E-PyoIcon.ico
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
@@ -50,12 +50,12 @@ Source: "C:\Python27\Lib\site-packages\msvcr90.dll"; DestDir: "{app}\Lib\site-pa
Source: "C:\MinGW\bin\libgcc_s_dw2-1.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
Source: "C:\MinGW\bin\libstdc++-6.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
Source: "C:\Python27\Lib\site-packages\pyo-{#appVer}-py{#pyVer}.egg-info"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
-Source: "C:\Users\olipet\svn\pyo\examples\*"; DestDir: "{userdesktop}\pyo_examples\"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Users\olivier\svn\pyo\examples\*"; DestDir: "{userdesktop}\pyo_examples\"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
; E-Pyo stuff
-Source: "C:\Users\olipet\svn\pyo\utils\E-Pyo_py27\E-Pyo.exe"; DestDir: "{pf}\E-Pyo"; Flags: ignoreversion
-Source: "C:\Users\olipet\svn\pyo\utils\E-Pyo_py27\Resources\*"; DestDir: "{pf}\E-Pyo\Resources"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Users\olivier\svn\pyo\utils\E-Pyo_py27\E-Pyo.exe"; DestDir: "{pf}\E-Pyo"; Flags: ignoreversion
+Source: "C:\Users\olivier\svn\pyo\utils\E-Pyo_py27\Resources\*"; DestDir: "{pf}\E-Pyo\Resources"; Flags: ignoreversion recursesubdirs createallsubdirs
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
diff --git a/pyo.py b/pyo.py
index 02ae816..8c2eb72 100644
--- a/pyo.py
+++ b/pyo.py
@@ -97,7 +97,7 @@ OBJECTS_TREE = {'functions': sorted(['pa_count_devices', 'pa_get_default_input',
'BrownNoise', 'Rossler', 'Lorenz', 'LFO', 'SumOsc', 'SuperSaw', 'RCOsc']),
'internals': sorted(['Dummy', 'InputFader', 'Mix', 'VarPort']),
'midi': sorted(['Midictl', 'CtlScan', 'CtlScan2', 'Notein', 'MidiAdsr', 'MidiDelAdsr', 'Bendin',
- 'Touchin', 'Programin']),
+ 'Touchin', 'Programin', 'RawMidi']),
'opensndctrl': sorted(['OscReceive', 'OscSend', 'OscDataSend', 'OscDataReceive', 'OscListReceive']),
'pan': sorted(['Pan', 'SPan', 'Switch', 'Selector', 'Mixer', 'VoiceManager']),
'pattern': sorted(['Pattern', 'Score', 'CallAfter']),
diff --git a/pyolib/_core.py b/pyolib/_core.py
index 64f875d..5549858 100644
--- a/pyolib/_core.py
+++ b/pyolib/_core.py
@@ -18,7 +18,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with pyo. If not, see <http://www.gnu.org/licenses/>.
"""
-from types import ListType, TupleType, SliceType, FloatType, StringType, UnicodeType, NoneType
+from types import BooleanType, ListType, TupleType, SliceType, LongType, IntType, FloatType, StringType, UnicodeType, NoneType
import random, os, sys, inspect, tempfile
from subprocess import call
from weakref import proxy
@@ -64,6 +64,147 @@ FUNCTIONS_INIT_LINES = {"pa_count_host_apis": "pa_count_host_apis()", "pa_list_h
"wrap": "wrap(arg, i)", "floatmap": "floatmap(x, min=0, max=1, exp=1)"
}
+class PyoError(Exception):
+ """Base class for all pyo exceptions."""
+
+class PyoServerStateException(PyoError):
+ """Error raised when an operation requires the server to be booted."""
+
+class PyoArgumentTypeError(PyoError):
+ """Error raised when if an object got an invalid argument."""
+
+def isAudioObject(obj):
+ return isinstance(obj, PyoObject) or hasattr(obj, "stream")
+
+def isTableObject(obj):
+ return isinstance(obj, PyoTableObject) or hasattr(obj, "tablestream")
+
+def isMatrixObject(obj):
+ return isinstance(obj, PyoMatrixObject) or hasattr(obj, "matrixstream")
+
+def isPVObject(obj):
+ return isinstance(obj, PyoPVObject) or hasattr(obj, "pv_stream")
+
+def pyoArgsAssert(obj, format, *args):
+ """
+ Raise an Exception if an object got an invalid argument.
+
+ :Args:
+
+ obj : Pyo object on which method is called.
+ Usually "self" in the function call.
+ format :
+ String of length equal to the number of arguments. Each character
+ indicating the expected argument type.
+
+ - O : float or PyoObject
+ - o : PyoObject
+ - T : float or PyoTableObject
+ - t : PyoTableObject
+ - m : PyoMatrixObject
+ - p : PyoPVObject
+ - n : any number (int or float)
+ - N : any number (no list-expansion)
+ - f : float
+ - F : float (no list-expansion)
+ - i : integer
+ - I : integer (no list-expansion)
+ - s : string or unicode
+ - S : string or unicode (no list-expansion)
+ - b : boolean
+ - B : boolean (no list-expansion)
+ - l : list
+ - L : list or None
+ - u : tuple
+ - x : sequence (list or tuple)
+ - c : callable
+ - C : callable (no list-expansion)
+ - z : anything
+ *args : any
+ Arguments passed to the object's method.
+
+ """
+ expected = ""
+ for i in range(len(args)):
+ f = format[i]
+ argtype = type(args[i])
+ if f == "O":
+ if not isAudioObject(args[i]) and \
+ argtype not in [ListType, IntType, LongType, FloatType]:
+ expected = "float or PyoObject"
+ elif f == "o":
+ if not isAudioObject(args[i]) and argtype not in [ListType]:
+ expected = "PyoObject"
+ elif f == "T":
+ if not isTableObject(args[i]) and argtype not in [FloatType, ListType]:
+ expected = "float or PyoTableObject"
+ elif f == "t":
+ if not isTableObject(args[i]) and argtype not in [ListType]:
+ expected = "PyoTableObject"
+ elif f == "m":
+ if not isMatrixObject(args[i]) and argtype not in [ListType]:
+ expected = "PyoMatrixObject"
+ elif f == "p":
+ if not isPVObject(args[i]) and argtype not in [ListType]:
+ expected = "PyoPVObject"
+ elif f == "n":
+ if argtype not in [ListType, IntType, LongType, FloatType]:
+ expected = "any number"
+ elif f == "N":
+ if argtype not in [IntType, LongType, FloatType]:
+ expected = "any number - list not allowed"
+ elif f == "f":
+ if argtype not in [ListType, FloatType]:
+ expected = "float"
+ elif f == "F":
+ if argtype not in [FloatType]:
+ expected = "float - list not allowed"
+ elif f == "i":
+ if argtype not in [ListType, IntType, LongType]:
+ expected = "integer"
+ elif f == "I":
+ if argtype not in [IntType, LongType]:
+ expected = "integer - list not allowed"
+ elif f == "s":
+ if argtype not in [ListType, StringType, UnicodeType]:
+ expected = "string"
+ elif f == "S":
+ if argtype not in [StringType, UnicodeType]:
+ expected = "string - list not allowed"
+ elif f == "b":
+ if argtype not in [BooleanType, ListType, IntType, LongType]:
+ expected = "boolean"
+ elif f == "B":
+ if argtype not in [BooleanType, IntType, LongType]:
+ expected = "boolean - list not allowed"
+ elif f == "l":
+ if argtype not in [ListType]:
+ expected = "list"
+ elif f == "L":
+ if argtype not in [ListType, NoneType]:
+ expected = "list or None"
+ elif f == "u":
+ if argtype not in [TupleType]:
+ expected = "tuple"
+ elif f == "x":
+ if argtype not in [ListType, TupleType]:
+ expected = "list or tuple"
+ elif f == "c":
+ if not callable(args[i]) and argtype not in [ListType, TupleType, NoneType]:
+ expected = "callable"
+ elif f == "C":
+ if not callable(args[i]) and argtype not in [NoneType]:
+ expected = "callable - list not allowed"
+ elif f == "z":
+ pass
+
+ if expected:
+ break
+
+ if expected:
+ name = obj.__class__.__name__
+ raise PyoArgumentTypeError('bad argument at position %d to "%s" (%s expected, got %s)' % (i, name, expected, argtype))
+
def convertStringToSysEncoding(str):
"""
Convert a string to the current platform file system encoding.
@@ -253,12 +394,6 @@ class WeakMethod(object):
else:
return self.method(*args, **kwargs)
-class PyoError(Exception):
- """Base class for all pyo exceptions."""
-
-class PyoServerStateException(PyoError):
- """Error raised when an operation requires the server to be booted."""
-
######################################################################
### PyoObjectBase -> abstract class for pyo objects
######################################################################
@@ -606,6 +741,7 @@ class PyoObject(PyoObjectBase):
of the first stream.
"""
+ pyoArgsAssert(self, "B", all)
if all:
return [obj._getStream().isPlaying() for obj in self._base_objs]
else:
@@ -625,6 +761,7 @@ class PyoObject(PyoObjectBase):
of the first stream.
"""
+ pyoArgsAssert(self, "B", all)
if all:
return [obj._getStream().isOutputting() for obj in self._base_objs]
else:
@@ -651,6 +788,7 @@ class PyoObject(PyoObjectBase):
will be returned as a float.
"""
+ pyoArgsAssert(self, "B", all)
if not all:
return self._base_objs[0]._getStream().getValue()
else:
@@ -673,9 +811,15 @@ class PyoObject(PyoObjectBase):
Delay, in seconds, before the object's activation. Defaults to 0.
"""
+ pyoArgsAssert(self, "nn", dur, delay)
dur, delay, lmax = convertArgsToLists(dur, delay)
if hasattr(self, "_trig_objs"):
- self._trig_objs.play(dur, delay)
+ if type(self._trig_objs) == ListType:
+ for i in range(lmax):
+ for obj in self._trig_objs:
+ obj.play(wrap(dur,i), wrap(delay,i))
+ else:
+ self._trig_objs.play(dur, delay)
if hasattr(self, "_base_players"):
[obj.play(wrap(dur,i), wrap(delay,i)) for i, obj in enumerate(self._base_players)]
[obj.play(wrap(dur,i), wrap(delay,i)) for i, obj in enumerate(self._base_objs)]
@@ -712,9 +856,15 @@ class PyoObject(PyoObjectBase):
assigned to successive streams.
"""
+ pyoArgsAssert(self, "iInn", chnl, inc, dur, delay)
dur, delay, lmax = convertArgsToLists(dur, delay)
if hasattr(self, "_trig_objs"):
- self._trig_objs.play(dur, delay)
+ if type(self._trig_objs) == ListType:
+ for i in range(lmax):
+ for obj in self._trig_objs:
+ obj.play(wrap(dur,i), wrap(delay,i))
+ else:
+ self._trig_objs.play(dur, delay)
if hasattr(self, "_base_players"):
[obj.play(wrap(dur,i), wrap(delay,i)) for i, obj in enumerate(self._base_players)]
if type(chnl) == ListType:
@@ -735,7 +885,10 @@ class PyoObject(PyoObjectBase):
"""
if hasattr(self, "_trig_objs"):
- self._trig_objs.stop()
+ if type(self._trig_objs) == ListType:
+ [obj.stop() for obj in self._trig_objs]
+ else:
+ self._trig_objs.stop()
if hasattr(self, "_base_players"):
[obj.stop() for obj in self._base_players]
[obj.stop() for obj in self._base_objs]
@@ -778,6 +931,7 @@ class PyoObject(PyoObjectBase):
Maximum value of the output signal.
"""
+ pyoArgsAssert(self, "nn", min, max)
min, max, lmax = convertArgsToLists(min, max)
if lmax > 1:
mul = [(wrap(max,i) - wrap(min,i)) * 0.5 for i in range(lmax)]
@@ -799,6 +953,7 @@ class PyoObject(PyoObjectBase):
New `mul` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._mul = x
x, lmax = convertArgsToLists(x)
[obj.setMul(wrap(x,i/self._op_duplicate)) for i, obj in enumerate(self._base_objs)]
@@ -813,6 +968,7 @@ class PyoObject(PyoObjectBase):
New `add` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._add = x
x, lmax = convertArgsToLists(x)
[obj.setAdd(wrap(x,i/self._op_duplicate)) for i, obj in enumerate(self._base_objs)]
@@ -827,6 +983,7 @@ class PyoObject(PyoObjectBase):
New inversed `add` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._add = x
x, lmax = convertArgsToLists(x)
[obj.setSub(wrap(x,i/self._op_duplicate)) for i, obj in enumerate(self._base_objs)]
@@ -841,6 +998,7 @@ class PyoObject(PyoObjectBase):
New inversed `mul` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._mul = x
x, lmax = convertArgsToLists(x)
[obj.setDiv(wrap(x,i/self._op_duplicate)) for i, obj in enumerate(self._base_objs)]
@@ -863,6 +1021,7 @@ class PyoObject(PyoObjectBase):
Time, in seconds, to reach the new value.
"""
+ pyoArgsAssert(self, "Snn", attr, value, port)
self._target_dict[attr] = value
init = getattr(self, attr)
if self._signal_dict.has_key(attr):
@@ -987,6 +1146,7 @@ class PyoTableObject(PyoObjectBase):
6. A-Law encoded
"""
+ pyoArgsAssert(self, "SII", path, format, sampletype)
ext = path.rsplit('.')
if len(ext) >= 2:
ext = ext[-1].lower()
@@ -1012,6 +1172,7 @@ class PyoTableObject(PyoObjectBase):
per line.
"""
+ pyoArgsAssert(self, "SB", path, oneline)
f = open(path, "w")
if oneline:
f.write(str([obj.getTable() for obj in self._base_objs]))
@@ -1047,6 +1208,7 @@ class PyoTableObject(PyoObjectBase):
length of the lists.
"""
+ pyoArgsAssert(self, "S", path)
f = open(path, "r")
f_list = eval(f.read())
f_len = len(f_list)
@@ -1066,6 +1228,7 @@ class PyoTableObject(PyoObjectBase):
New table size in samples.
"""
+ pyoArgsAssert(self, "I", size)
self._size = size
[obj.setSize(size) for obj in self._base_objs]
self.refreshView()
@@ -1082,6 +1245,7 @@ class PyoTableObject(PyoObjectBase):
first size as an int. Defaults to False.
"""
+ pyoArgsAssert(self, "B", all)
if all:
return [obj.getSize() for obj in self._base_objs]
else:
@@ -1106,6 +1270,7 @@ class PyoTableObject(PyoObjectBase):
Position, in samples, where to record value. Defaults to 0.
"""
+ pyoArgsAssert(self, "NI", value, pos)
[obj.put(value, pos) for obj in self._base_objs]
self.refreshView()
@@ -1123,6 +1288,7 @@ class PyoTableObject(PyoObjectBase):
Position, in samples, where to read the value. Defaults to 0.
"""
+ pyoArgsAssert(self, "I", pos)
values = [obj.get(pos) for obj in self._base_objs]
if len(values) == 1: return values[0]
else: return values
@@ -1141,6 +1307,7 @@ class PyoTableObject(PyoObjectBase):
subtable (or the only one) is returned.
"""
+ pyoArgsAssert(self, "B", all)
if all:
return [obj.getTable() for obj in self._base_objs]
else:
@@ -1210,6 +1377,7 @@ class PyoTableObject(PyoObjectBase):
Exponent factor. Defaults to 10.
"""
+ pyoArgsAssert(self, "N", exp)
[obj.pow(exp) for obj in self._base_objs]
self.refreshView()
return self
@@ -1226,6 +1394,7 @@ class PyoTableObject(PyoObjectBase):
Gain factor for negative samples. Defaults to 1.
"""
+ pyoArgsAssert(self, "NN", gpos, gneg)
[obj.bipolarGain(gpos, gneg) for obj in self._base_objs]
self.refreshView()
return self
@@ -1240,6 +1409,7 @@ class PyoTableObject(PyoObjectBase):
Filter's cutoff, in Hertz. Defaults to 1000.
"""
+ pyoArgsAssert(self, "N", freq)
[obj.lowpass(freq) for obj in self._base_objs]
self.refreshView()
return self
@@ -1254,6 +1424,7 @@ class PyoTableObject(PyoObjectBase):
Fade in duration, in seconds. Defaults to 0.1.
"""
+ pyoArgsAssert(self, "N", dur)
[obj.fadein(dur) for obj in self._base_objs]
self.refreshView()
return self
@@ -1268,6 +1439,7 @@ class PyoTableObject(PyoObjectBase):
Fade out duration, in seconds. Defaults to 0.1.
"""
+ pyoArgsAssert(self, "N", dur)
[obj.fadeout(dur) for obj in self._base_objs]
self.refreshView()
return self
@@ -1285,6 +1457,7 @@ class PyoTableObject(PyoObjectBase):
value(s) to add.
"""
+ pyoArgsAssert(self, "T", x)
if type(x) == ListType:
if type(x[0]) == ListType:
[obj.add(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1309,6 +1482,7 @@ class PyoTableObject(PyoObjectBase):
value(s) to substract.
"""
+ pyoArgsAssert(self, "T", x)
if type(x) == ListType:
if type(x[0]) == ListType:
[obj.sub(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1333,6 +1507,7 @@ class PyoTableObject(PyoObjectBase):
value(s) to multiply.
"""
+ pyoArgsAssert(self, "T", x)
if type(x) == ListType:
if type(x[0]) == ListType:
[obj.mul(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1381,6 +1556,7 @@ class PyoTableObject(PyoObjectBase):
the server GUI before showing the controller window.
"""
+ pyoArgsAssert(self, "SB", title, wxnoserver)
samples = self._base_objs[0].getViewTable((500,200))
createViewTableWindow(samples, title, wxnoserver, self.__class__.__name__, self)
@@ -1444,6 +1620,7 @@ class PyoMatrixObject(PyoObjectBase):
Full path of the generated file.
"""
+ pyoArgsAssert(self, "S", path)
f = open(path, "w")
f.write(str([obj.getData() for obj in self._base_objs]))
f.close()
@@ -1469,6 +1646,7 @@ class PyoMatrixObject(PyoObjectBase):
Full path of the file to read.
"""
+ pyoArgsAssert(self, "S", path)
f = open(path, "r")
f_list = eval(f.read())
f_len = len(f_list)
@@ -1511,6 +1689,7 @@ class PyoMatrixObject(PyoObjectBase):
Amount of boost applied on each value. Defaults to 0.01.
"""
+ pyoArgsAssert(self, "NNN", min, max, boost)
[obj.boost(min, max, boost) for obj in self._base_objs]
def put(self, value, x=0, y=0):
@@ -1531,6 +1710,7 @@ class PyoMatrixObject(PyoObjectBase):
Y position where to record value. Defaults to 0.
"""
+ pyoArgsAssert(self, "NII", value, x, y)
[obj.put(value, x, y) for obj in self._base_objs]
def get(self, x, y):
@@ -1549,6 +1729,7 @@ class PyoMatrixObject(PyoObjectBase):
Y position where to get value. Defaults to 0.
"""
+ pyoArgsAssert(self, "II", x, y)
values = [obj.get(x, y) for obj in self._base_objs]
if len(values) == 1: return values[0]
else: return values
@@ -1569,6 +1750,7 @@ class PyoMatrixObject(PyoObjectBase):
the server GUI before showing the controller window.
"""
+ pyoArgsAssert(self, "SB", title, wxnoserver)
samples = self._base_objs[0].getViewData()
createViewMatrixWindow(samples, self.getSize(), title, wxnoserver, self)
@@ -1619,6 +1801,7 @@ class PyoPVObject(PyoObjectBase):
of the first stream.
"""
+ pyoArgsAssert(self, "B", all)
if all:
return [obj._getStream().isPlaying() for obj in self._base_objs]
else:
@@ -1641,6 +1824,7 @@ class PyoPVObject(PyoObjectBase):
Delay, in seconds, before the object's activation. Defaults to 0.
"""
+ pyoArgsAssert(self, "nn", dur, delay)
dur, delay, lmax = convertArgsToLists(dur, delay)
if hasattr(self, "_trig_objs"):
self._trig_objs.play(dur, delay)
@@ -1682,6 +1866,7 @@ class PyoPVObject(PyoObjectBase):
Time, in seconds, to reach the new value.
"""
+ pyoArgsAssert(self, "Snn", attr, value, port)
self._target_dict[attr] = value
init = getattr(self, attr)
if self._signal_dict.has_key(attr):
@@ -1771,6 +1956,7 @@ class Mix(PyoObject):
"""
def __init__(self, input, voices=1, mul=1, add=0):
+ pyoArgsAssert(self, "oIOO", input, voices, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
mul, add, lmax = convertArgsToLists(mul, add)
@@ -1874,6 +2060,7 @@ class InputFader(PyoObject):
"""
def __init__(self, input):
+ pyoArgsAssert(self, "o", input)
PyoObject.__init__(self)
self._input = input
input, lmax = convertArgsToLists(input)
@@ -1891,6 +2078,7 @@ class InputFader(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i), fadetime) for i, obj in enumerate(self._base_objs)]
@@ -1926,6 +2114,7 @@ class Sig(PyoObject):
"""
def __init__(self, value, mul=1, add=0):
+ pyoArgsAssert(self, "OOO", value, mul, add)
PyoObject.__init__(self, mul, add)
self._value = value
value, mul ,add, lmax = convertArgsToLists(value, mul, add)
@@ -1941,6 +2130,7 @@ class Sig(PyoObject):
Numerical value to convert.
"""
+ pyoArgsAssert(self, "O", x)
self._value = x
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1996,6 +2186,7 @@ class VarPort(PyoObject):
"""
def __init__(self, value, time=0.025, init=0.0, function=None, arg=None, mul=1, add=0):
+ pyoArgsAssert(self, "nnnczOO", value, time, init, function, arg, mul, add)
PyoObject.__init__(self, mul, add)
self._value = value
self._time = time
@@ -2013,6 +2204,7 @@ class VarPort(PyoObject):
Numerical value to convert.
"""
+ pyoArgsAssert(self, "n", x)
self._value = x
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2027,6 +2219,7 @@ class VarPort(PyoObject):
New ramp time.
"""
+ pyoArgsAssert(self, "n", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2041,6 +2234,7 @@ class VarPort(PyoObject):
new `function` attribute.
"""
+ pyoArgsAssert(self, "c", x)
self._function = getWeakMethodRef(x)
x, lmax = convertArgsToLists(x)
[obj.setFunction(WeakMethod(wrap(x,i))) for i, obj in enumerate(self._base_objs)]
@@ -2088,6 +2282,7 @@ class Pow(PyoObject):
"""
def __init__(self, base=10, exponent=1, mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", base, exponent, mul, add)
PyoObject.__init__(self, mul, add)
self._base = base
self._exponent = exponent
@@ -2104,6 +2299,7 @@ class Pow(PyoObject):
new `base` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._base = x
x, lmax = convertArgsToLists(x)
[obj.setBase(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2118,6 +2314,7 @@ class Pow(PyoObject):
new `exponent` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._exponent = x
x, lmax = convertArgsToLists(x)
[obj.setExponent(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2172,6 +2369,7 @@ class Wrap(PyoObject):
"""
def __init__(self, input, min=0.0, max=1.0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, min, max, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._min = min
@@ -2192,6 +2390,7 @@ class Wrap(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2205,6 +2404,7 @@ class Wrap(PyoObject):
New `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2219,6 +2419,7 @@ class Wrap(PyoObject):
New `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2280,13 +2481,10 @@ class Compare(PyoObject):
"""
def __init__(self, input, comp, mode="<", mul=1, add=0):
+ pyoArgsAssert(self, "oOsOO", input, comp, mode, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
- if type(comp) in [StringType, UnicodeType, NoneType]:
- print 'TypeError: "comp" argument of %s must be a float or a PyoObject. Set to 0.\n' % self.__class__.__name__
- comp = self._comp = 0
- else:
- self._comp = comp
+ self._comp = comp
self._mode = mode
self._in_fader = InputFader(input)
self.comp_dict = {"<": 0, "<=": 1, ">": 2, ">=": 3, "==": 4, "!=": 5}
@@ -2308,6 +2506,7 @@ class Compare(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2321,9 +2520,7 @@ class Compare(PyoObject):
New comparison signal.
"""
- if type(x) in [StringType, UnicodeType, NoneType]:
- print >> sys.stderr, 'TypeError: "comp" argument of %s must be a float or a PyoObject.\n' % self.__class__.__name__
- return
+ pyoArgsAssert(self, "O", x)
self._comp = x
x, lmax = convertArgsToLists(x)
[obj.setComp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2340,6 +2537,7 @@ class Compare(PyoObject):
New `mode` attribute.
"""
+ pyoArgsAssert(self, "s", x)
self._mode = x
x, lmax = convertArgsToLists(x)
[obj.setMode(self.comp_dict[wrap(x,i)]) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/_wxwidgets.py b/pyolib/_wxwidgets.py
index aeec4fe..137eb23 100644
--- a/pyolib/_wxwidgets.py
+++ b/pyolib/_wxwidgets.py
@@ -1576,7 +1576,7 @@ class ScopeDisplay(wx.Frame):
self.toolBox.Add(self.activeTog, 0, wx.TOP|wx.LEFT|wx.RIGHT, 5)
self.toolBox.AddSpacer(10)
self.toolBox.Add(wx.StaticText(self.panel, -1, label="Window length (ms):"), 0, wx.TOP, 11)
- self.lenSlider = ControlSlider(self.panel, 10, 60, length * 1000, outFunction=self.setLength)
+ self.lenSlider = ControlSlider(self.panel, 10, 1000, length * 1000, log=True, outFunction=self.setLength)
self.toolBox.Add(self.lenSlider, 1, wx.TOP|wx.LEFT|wx.RIGHT, 11)
self.toolBox.AddSpacer(40)
self.mainBox.Add(self.toolBox, 0, wx.EXPAND)
@@ -1584,9 +1584,9 @@ class ScopeDisplay(wx.Frame):
self.box = wx.BoxSizer(wx.VERTICAL)
self.scopePanel = ScopePanel(self.panel, self.obj)
self.box.Add(self.scopePanel, 1, wx.EXPAND|wx.LEFT|wx.RIGHT, 5)
- self.dispBox.Add(self.box, 1, wx.EXPAND, 0)
+ self.dispBox.Add(self.box, 1, wx.EXPAND|wx.BOTTOM, 5)
self.gainSlider = ControlSlider(self.panel, -24, 24, 20.0 * math.log10(gain), outFunction=self.setGain, orient=wx.VERTICAL)
- self.dispBox.Add(self.gainSlider, 0, wx.EXPAND)
+ self.dispBox.Add(self.gainSlider, 0, wx.EXPAND|wx.BOTTOM, 5)
self.dispBox.AddSpacer(5)
self.mainBox.Add(self.dispBox, 1, wx.EXPAND)
self.panel.SetSizer(self.mainBox)
@@ -1641,7 +1641,6 @@ class ScopePanel(wx.Panel):
def setGain(self, gain):
self.gain = gain
- print self.gain
def setLength(self, length):
self.length = length
diff --git a/pyolib/analysis.py b/pyolib/analysis.py
index a71fc86..81f1db6 100644
--- a/pyolib/analysis.py
+++ b/pyolib/analysis.py
@@ -60,6 +60,7 @@ class Follower(PyoObject):
"""
def __init__(self, input, freq=20, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -79,6 +80,7 @@ class Follower(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -92,6 +94,7 @@ class Follower(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -147,6 +150,7 @@ class Follower2(PyoObject):
"""
def __init__(self, input, risetime=0.01, falltime=0.1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, risetime, falltime, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._risetime = risetime
@@ -167,6 +171,7 @@ class Follower2(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -180,6 +185,7 @@ class Follower2(PyoObject):
New `risetime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._risetime = x
x, lmax = convertArgsToLists(x)
[obj.setRisetime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -194,6 +200,7 @@ class Follower2(PyoObject):
New `falltime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._falltime = x
x, lmax = convertArgsToLists(x)
[obj.setFalltime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -256,6 +263,7 @@ class ZCross(PyoObject):
"""
def __init__(self, input, thresh=0., mul=1, add=0):
+ pyoArgsAssert(self, "onOO", input, thresh, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._thresh = thresh
@@ -275,6 +283,7 @@ class ZCross(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -288,6 +297,7 @@ class ZCross(PyoObject):
New amplitude difference threshold.
"""
+ pyoArgsAssert(self, "n", x)
self._thresh = x
x, lmax = convertArgsToLists(x)
[obj.setThresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -363,6 +373,7 @@ class Yin(PyoObject):
"""
def __init__(self, input, tolerance=0.2, minfreq=40, maxfreq=1000, cutoff=1000, winsize=1024, mul=1, add=0):
+ pyoArgsAssert(self, "onnnniOO", input, tolerance, minfreq, maxfreq, cutoff, winsize, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._tolerance = tolerance
@@ -385,6 +396,7 @@ class Yin(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -398,6 +410,7 @@ class Yin(PyoObject):
New parameter for minima selection, between 0 and 1.
"""
+ pyoArgsAssert(self, "n", x)
self._tolerance = x
x, lmax = convertArgsToLists(x)
[obj.setTolerance(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -412,6 +425,7 @@ class Yin(PyoObject):
New minimum frequency detected.
"""
+ pyoArgsAssert(self, "n", x)
self._minfreq = x
x, lmax = convertArgsToLists(x)
[obj.setMinfreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -426,6 +440,7 @@ class Yin(PyoObject):
New maximum frequency detected.
"""
+ pyoArgsAssert(self, "n", x)
self._maxfreq = x
x, lmax = convertArgsToLists(x)
[obj.setMaxfreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -440,6 +455,7 @@ class Yin(PyoObject):
New input lowpass filter cutoff frequency.
"""
+ pyoArgsAssert(self, "n", x)
self._cutoff = x
x, lmax = convertArgsToLists(x)
[obj.setCutoff(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -526,6 +542,7 @@ class Centroid(PyoObject):
"""
def __init__(self, input, size=1024, mul=1, add=0):
+ pyoArgsAssert(self, "oiOO", input, size, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._size = size
@@ -545,6 +562,7 @@ class Centroid(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -566,7 +584,7 @@ class AttackDetector(PyoObject):
"""
Audio signal onset detection.
- AttackDetector anaylises an audio signal in input an output a trigger each
+ AttackDetector analyses an audio signal in input and output a trigger each
time an onset is detected. An onset is a sharp amplitude rising while the
signal had previously fall below a minimum threshold. Parameters must be
carefully tuned depending on the nature of the analysed signal and the level
@@ -605,6 +623,7 @@ class AttackDetector(PyoObject):
"""
def __init__(self, input, deltime=0.005, cutoff=10, maxthresh=3, minthresh=-30, reltime=0.1, mul=1, add=0):
+ pyoArgsAssert(self, "onnnnnOO", input, deltime, cutoff, maxthresh, minthresh, reltime, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._deltime = deltime
@@ -628,6 +647,7 @@ class AttackDetector(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -641,6 +661,7 @@ class AttackDetector(PyoObject):
New delay between rms analysis.
"""
+ pyoArgsAssert(self, "n", x)
self._deltime = x
x, lmax = convertArgsToLists(x)
[obj.setDeltime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -655,6 +676,7 @@ class AttackDetector(PyoObject):
New cutoff for the follower lowpass filter.
"""
+ pyoArgsAssert(self, "n", x)
self._cutoff = x
x, lmax = convertArgsToLists(x)
[obj.setCutoff(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -669,6 +691,7 @@ class AttackDetector(PyoObject):
New attack threshold in dB.
"""
+ pyoArgsAssert(self, "n", x)
self._maxthresh = x
x, lmax = convertArgsToLists(x)
[obj.setMaxthresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -683,6 +706,7 @@ class AttackDetector(PyoObject):
New minimum threshold in dB.
"""
+ pyoArgsAssert(self, "n", x)
self._minthresh = x
x, lmax = convertArgsToLists(x)
[obj.setMinthresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -697,6 +721,7 @@ class AttackDetector(PyoObject):
Time, in seconds, to wait before reporting a new attack.
"""
+ pyoArgsAssert(self, "n", x)
self._reltime = x
x, lmax = convertArgsToLists(x)
[obj.setReltime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -803,6 +828,7 @@ class Spectrum(PyoObject):
"""
def __init__(self, input, size=1024, wintype=2, function=None):
+ pyoArgsAssert(self, "oiiC", input, size, wintype, function)
PyoObject.__init__(self)
self.points = None
self.viewFrame = None
@@ -836,6 +862,7 @@ class Spectrum(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -849,6 +876,7 @@ class Spectrum(PyoObject):
new `size` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._size = x
x, lmax = convertArgsToLists(x)
[obj.setSize(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -863,6 +891,7 @@ class Spectrum(PyoObject):
new `wintype` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._wintype = x
x, lmax = convertArgsToLists(x)
[obj.setWinType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -879,6 +908,7 @@ class Spectrum(PyoObject):
and will receive the data as a list of lists (one list per channel).
"""
+ pyoArgsAssert(self, "C", function)
self._function = getWeakMethodRef(function)
def poll(self, active):
@@ -892,6 +922,7 @@ class Spectrum(PyoObject):
defaults to True.
"""
+ pyoArgsAssert(self, "B", active)
if active:
self._timer.play()
else:
@@ -908,6 +939,7 @@ class Spectrum(PyoObject):
retrieve the current analysis frame. defaults to 0.05.
"""
+ pyoArgsAssert(self, "N", time)
self._timer.time = time
def setLowbound(self, x):
@@ -922,6 +954,7 @@ class Spectrum(PyoObject):
new `lowbound` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._lowbound = x
x, lmax = convertArgsToLists(x)
tmp = [obj.setLowbound(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -939,6 +972,7 @@ class Spectrum(PyoObject):
new `highbound` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._highbound = x
x, lmax = convertArgsToLists(x)
tmp = [obj.setHighbound(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -971,6 +1005,7 @@ class Spectrum(PyoObject):
new `width` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._width = x
x, lmax = convertArgsToLists(x)
[obj.setWidth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -987,6 +1022,7 @@ class Spectrum(PyoObject):
new `height` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._height = x
x, lmax = convertArgsToLists(x)
[obj.setHeight(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1002,6 +1038,7 @@ class Spectrum(PyoObject):
it back to linear. Defaults to False.
"""
+ pyoArgsAssert(self, "b", x)
self._fscaling = x
x, lmax = convertArgsToLists(x)
[obj.setFscaling(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1019,6 +1056,7 @@ class Spectrum(PyoObject):
False turns it back to linear. Defaults to True.
"""
+ pyoArgsAssert(self, "b", x)
self._mscaling = x
x, lmax = convertArgsToLists(x)
[obj.setMscaling(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1053,6 +1091,7 @@ class Spectrum(PyoObject):
new `gain` attribute, as linear values.
"""
+ pyoArgsAssert(self, "n", x)
self._gain = x
x, lmax = convertArgsToLists(x)
[obj.setGain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1073,6 +1112,7 @@ class Spectrum(PyoObject):
the server GUI before showing the controller window.
"""
+ pyoArgsAssert(self, "SB", title, wxnoserver)
createSpectrumWindow(self, title, wxnoserver)
def _setViewFrame(self, frame):
@@ -1196,6 +1236,7 @@ class Scope(PyoObject):
"""
def __init__(self, input, length=0.05, gain=0.67):
+ pyoArgsAssert(self, "oNN", input, length, gain)
PyoObject.__init__(self)
self.points = None
self.viewFrame = None
@@ -1222,6 +1263,7 @@ class Scope(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1235,6 +1277,7 @@ class Scope(PyoObject):
new `length` attribute.
"""
+ pyoArgsAssert(self, "N", x)
self._length = x
self._timer.time = x
[obj.setLength(x) for obj in self._base_objs]
@@ -1249,6 +1292,7 @@ class Scope(PyoObject):
new `gain` attribute, as linear values.
"""
+ pyoArgsAssert(self, "n", x)
self._gain = x
x, lmax = convertArgsToLists(x)
[obj.setGain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1264,6 +1308,7 @@ class Scope(PyoObject):
defaults to True.
"""
+ pyoArgsAssert(self, "B", active)
if active:
self._timer.play()
else:
@@ -1283,6 +1328,7 @@ class Scope(PyoObject):
width is 500.
"""
+ pyoArgsAssert(self, "I", x)
self._width = x
[obj.setWidth(x) for obj in self._base_objs]
@@ -1300,6 +1346,7 @@ class Scope(PyoObject):
height is 400.
"""
+ pyoArgsAssert(self, "I", x)
self._height = x
[obj.setHeight(x) for obj in self._base_objs]
@@ -1319,6 +1366,7 @@ class Scope(PyoObject):
the server GUI before showing the controller window.
"""
+ pyoArgsAssert(self, "SB", title, wxnoserver)
createScopeWindow(self, title, wxnoserver)
def _setViewFrame(self, frame):
@@ -1393,6 +1441,7 @@ class PeakAmp(PyoObject):
"""
def __init__(self, input, function=None, mul=1, add=0):
+ pyoArgsAssert(self, "oCOO", input, function, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
if callable(function):
@@ -1404,7 +1453,7 @@ class PeakAmp(PyoObject):
self._base_objs = [PeakAmp_base(wrap(in_fader,i), wrap(mul,i), wrap(add,i)) for i in range(lmax)]
sr = self.getSamplingRate()
bs = self.getBufferSize()
- self._timer = Pattern(self._buildList, bs/sr).play()
+ self._timer = Pattern(self._buildList, 0.06).play()
def setInput(self, x, fadetime=0.05):
"""
@@ -1418,6 +1467,7 @@ class PeakAmp(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1431,9 +1481,23 @@ class PeakAmp(PyoObject):
New function to call with amplitude values in arguments.
"""
+ pyoArgsAssert(self, "C", x)
if callable(x):
self._function = getWeakMethodRef(x)
+ def polltime(self, x):
+ """
+ Sets the delay, in seconds, between each call of the function.
+
+ :Args:
+
+ x : float
+ New polling time in seconds.
+
+ """
+ pyoArgsAssert(self, "N", x)
+ self._timer.time = x
+
def out(self, chnl=0, inc=1, dur=0, delay=0):
return self.play(dur, delay)
diff --git a/pyolib/arithmetic.py b/pyolib/arithmetic.py
index 3c12942..f1a476b 100644
--- a/pyolib/arithmetic.py
+++ b/pyolib/arithmetic.py
@@ -47,6 +47,7 @@ class Sin(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -65,6 +66,7 @@ class Sin(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -96,6 +98,7 @@ class Cos(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -114,6 +117,7 @@ class Cos(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -152,6 +156,7 @@ class Tan(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -170,6 +175,7 @@ class Tan(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -203,6 +209,7 @@ class Abs(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -221,6 +228,7 @@ class Abs(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -259,6 +267,7 @@ class Sqrt(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -277,6 +286,7 @@ class Sqrt(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -311,6 +321,7 @@ class Log(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -329,6 +340,7 @@ class Log(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -363,6 +375,7 @@ class Log2(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -381,6 +394,7 @@ class Log2(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -415,6 +429,7 @@ class Log10(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -433,6 +448,7 @@ class Log10(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -470,6 +486,7 @@ class Atan2(PyoObject):
"""
def __init__(self, b=1, a=1, mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", b, a, mul, add)
PyoObject.__init__(self, mul, add)
self._b = b
self._a = a
@@ -486,6 +503,7 @@ class Atan2(PyoObject):
new `b` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._b = x
x, lmax = convertArgsToLists(x)
[obj.setB(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -500,6 +518,7 @@ class Atan2(PyoObject):
new `a` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._a = x
x, lmax = convertArgsToLists(x)
[obj.setA(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -542,6 +561,7 @@ class Floor(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -560,6 +580,7 @@ class Floor(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -594,6 +615,7 @@ class Ceil(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -612,6 +634,7 @@ class Ceil(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -646,6 +669,7 @@ class Round(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -664,6 +688,7 @@ class Round(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -696,6 +721,7 @@ class Tanh(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -714,6 +740,7 @@ class Tanh(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
diff --git a/pyolib/controls.py b/pyolib/controls.py
index 2e99f20..7385c01 100644
--- a/pyolib/controls.py
+++ b/pyolib/controls.py
@@ -77,6 +77,7 @@ class Fader(PyoObject):
"""
def __init__(self, fadein=0.01, fadeout=0.1, dur=0, mul=1, add=0):
+ pyoArgsAssert(self, "nnnOO", fadein, fadeout, dur, mul, add)
PyoObject.__init__(self, mul, add)
self._fadein = fadein
self._fadeout = fadeout
@@ -97,6 +98,7 @@ class Fader(PyoObject):
new `fadein` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._fadein = x
x, lmax = convertArgsToLists(x)
[obj.setFadein(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -111,6 +113,7 @@ class Fader(PyoObject):
new `fadeout` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._fadeout = x
x, lmax = convertArgsToLists(x)
[obj.setFadeout(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -125,6 +128,7 @@ class Fader(PyoObject):
new `dur` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -203,6 +207,7 @@ class Adsr(PyoObject):
"""
def __init__(self, attack=0.01, decay=0.05, sustain=0.707, release=0.1, dur=0, mul=1, add=0):
+ pyoArgsAssert(self, "nnnnnOO", attack, decay, sustain, release, dur, mul, add)
PyoObject.__init__(self, mul, add)
self._attack = attack
self._decay = decay
@@ -225,6 +230,7 @@ class Adsr(PyoObject):
new `attack` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._attack = x
x, lmax = convertArgsToLists(x)
[obj.setAttack(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -239,6 +245,7 @@ class Adsr(PyoObject):
new `decay` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._decay = x
x, lmax = convertArgsToLists(x)
[obj.setDecay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -253,6 +260,7 @@ class Adsr(PyoObject):
new `sustain` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._sustain = x
x, lmax = convertArgsToLists(x)
[obj.setSustain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -267,6 +275,7 @@ class Adsr(PyoObject):
new `sustain` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._release = x
x, lmax = convertArgsToLists(x)
[obj.setRelease(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -281,6 +290,7 @@ class Adsr(PyoObject):
new `dur` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -363,13 +373,8 @@ class Linseg(PyoObject):
"""
def __init__(self, list, loop=False, initToFirstVal=False, mul=1, add=0):
+ pyoArgsAssert(self, "lbbOO", list, loop, initToFirstVal, mul, add)
PyoObject.__init__(self, mul, add)
- if type(list) != ListType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
- if type(list[0]) != TupleType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
self._list = list
self._loop = loop
initToFirstVal, loop, mul, add, lmax = convertArgsToLists(initToFirstVal, loop, mul, add)
@@ -393,6 +398,7 @@ class Linseg(PyoObject):
new `list` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._list = x
if type(x[0]) != ListType:
[obj.setList(x) for i, obj in enumerate(self._base_objs)]
@@ -424,6 +430,7 @@ class Linseg(PyoObject):
new `loop` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._loop = x
x, lmax = convertArgsToLists(x)
[obj.setLoop(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -525,13 +532,8 @@ class Expseg(PyoObject):
"""
def __init__(self, list, loop=False, exp=10, inverse=True, initToFirstVal=False, mul=1, add=0):
+ pyoArgsAssert(self, "lbnbbOO", list, loop, exp, inverse, initToFirstVal, mul, add)
PyoObject.__init__(self, mul, add)
- if type(list) != ListType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
- if type(list[0]) != TupleType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
self._list = list
self._loop = loop
self._exp = exp
@@ -557,6 +559,7 @@ class Expseg(PyoObject):
new `list` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._list = x
if type(x[0]) != ListType:
[obj.setList(x) for i, obj in enumerate(self._base_objs)]
@@ -573,6 +576,7 @@ class Expseg(PyoObject):
new `loop` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._loop = x
x, lmax = convertArgsToLists(x)
[obj.setLoop(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -587,6 +591,7 @@ class Expseg(PyoObject):
new `exp` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._exp = x
x, lmax = convertArgsToLists(x)
[obj.setExp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -601,6 +606,7 @@ class Expseg(PyoObject):
new `inverse` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._inverse = x
x, lmax = convertArgsToLists(x)
[obj.setInverse(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -727,6 +733,7 @@ class SigTo(PyoObject):
"""
def __init__(self, value, time=0.025, init=0.0, mul=1, add=0):
+ pyoArgsAssert(self, "OnnOO", value, time, init, mul, add)
PyoObject.__init__(self, mul, add)
self._value = value
self._time = time
@@ -743,6 +750,7 @@ class SigTo(PyoObject):
Numerical value to convert.
"""
+ pyoArgsAssert(self, "O", x)
self._value = x
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -757,6 +765,7 @@ class SigTo(PyoObject):
New ramp time.
"""
+ pyoArgsAssert(self, "n", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/dynamics.py b/pyolib/dynamics.py
index dbe2ca2..5867977 100644
--- a/pyolib/dynamics.py
+++ b/pyolib/dynamics.py
@@ -49,6 +49,7 @@ class Clip(PyoObject):
"""
def __init__(self, input, min=-1.0, max=1.0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, min, max, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._min = min
@@ -69,6 +70,7 @@ class Clip(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -82,6 +84,7 @@ class Clip(PyoObject):
New `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -96,6 +99,7 @@ class Clip(PyoObject):
New `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -159,6 +163,7 @@ class Mirror(PyoObject):
"""
def __init__(self, input, min=0.0, max=1.0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, min, max, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._min = min
@@ -179,6 +184,7 @@ class Mirror(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -192,6 +198,7 @@ class Mirror(PyoObject):
New `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -206,6 +213,7 @@ class Mirror(PyoObject):
New `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -267,6 +275,7 @@ class Degrade(PyoObject):
"""
def __init__(self, input, bitdepth=16, srscale=1.0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, bitdepth, srscale, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._bitdepth = bitdepth
@@ -287,6 +296,7 @@ class Degrade(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -300,6 +310,7 @@ class Degrade(PyoObject):
New `bitdepth` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bitdepth = x
x, lmax = convertArgsToLists(x)
[obj.setBitdepth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -314,6 +325,7 @@ class Degrade(PyoObject):
New `srscale` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._srscale = x
x, lmax = convertArgsToLists(x)
[obj.setSrscale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -395,6 +407,7 @@ class Compress(PyoObject):
"""
def __init__(self, input, thresh=-20, ratio=2, risetime=0.01, falltime=0.1, lookahead=5.0, knee=0, outputAmp=False, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOnnbOO", input, thresh, ratio, risetime, falltime, lookahead, knee, outputAmp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._thresh = thresh
@@ -419,6 +432,7 @@ class Compress(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -432,6 +446,7 @@ class Compress(PyoObject):
New `thresh` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._thresh = x
x, lmax = convertArgsToLists(x)
[obj.setThresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -446,6 +461,7 @@ class Compress(PyoObject):
New `ratio` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._ratio = x
x, lmax = convertArgsToLists(x)
[obj.setRatio(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -460,6 +476,7 @@ class Compress(PyoObject):
New `risetime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._risetime = x
x, lmax = convertArgsToLists(x)
[obj.setRiseTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -474,6 +491,7 @@ class Compress(PyoObject):
New `falltime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._falltime = x
x, lmax = convertArgsToLists(x)
[obj.setFallTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -488,6 +506,7 @@ class Compress(PyoObject):
New `lookahead` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._lookahead = x
x, lmax = convertArgsToLists(x)
[obj.setLookAhead(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -502,6 +521,7 @@ class Compress(PyoObject):
New `knee` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._knee = x
x, lmax = convertArgsToLists(x)
[obj.setKnee(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -607,6 +627,7 @@ class Gate(PyoObject):
"""
def __init__(self, input, thresh=-70, risetime=0.01, falltime=0.05, lookahead=5.0, outputAmp=False, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOnbOO", input, thresh, risetime, falltime, lookahead, outputAmp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._thresh = thresh
@@ -629,6 +650,7 @@ class Gate(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -642,6 +664,7 @@ class Gate(PyoObject):
New `thresh` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._thresh = x
x, lmax = convertArgsToLists(x)
[obj.setThresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -656,6 +679,7 @@ class Gate(PyoObject):
New `risetime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._risetime = x
x, lmax = convertArgsToLists(x)
[obj.setRiseTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -670,6 +694,7 @@ class Gate(PyoObject):
New `falltime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._falltime = x
x, lmax = convertArgsToLists(x)
[obj.setFallTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -684,6 +709,7 @@ class Gate(PyoObject):
New `lookahead` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._lookahead = x
x, lmax = convertArgsToLists(x)
[obj.setLookAhead(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -756,6 +782,7 @@ class Balance(PyoObject):
"""
def __init__(self, input, input2, freq=10, mul=1, add=0):
+ pyoArgsAssert(self, "ooOOO", input, input2, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._input2 = input2
@@ -779,6 +806,7 @@ class Balance(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -796,6 +824,7 @@ class Balance(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input2 = x
self._in_fader2.setInput(x, fadetime)
@@ -811,6 +840,7 @@ class Balance(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -863,6 +893,7 @@ class Min(PyoObject):
"""
def __init__(self, input, comp=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, comp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._comp = comp
@@ -882,6 +913,7 @@ class Min(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -895,6 +927,7 @@ class Min(PyoObject):
New `comp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._comp = x
x, lmax = convertArgsToLists(x)
[obj.setComp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -940,6 +973,7 @@ class Max(PyoObject):
"""
def __init__(self, input, comp=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, comp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._comp = comp
@@ -959,6 +993,7 @@ class Max(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -972,6 +1007,7 @@ class Max(PyoObject):
New `comp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._comp = x
x, lmax = convertArgsToLists(x)
[obj.setComp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -992,4 +1028,4 @@ class Max(PyoObject):
"""float or PyoObject. Comparison value."""
return self._comp
@comp.setter
- def comp(self, x): self.setComp(x)
\ No newline at end of file
+ def comp(self, x): self.setComp(x)
diff --git a/pyolib/effects.py b/pyolib/effects.py
index aa6ca12..0e4e915 100644
--- a/pyolib/effects.py
+++ b/pyolib/effects.py
@@ -55,6 +55,7 @@ class Disto(PyoObject):
"""
def __init__(self, input, drive=.75, slope=.5, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, drive, slope, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._drive = drive
@@ -75,6 +76,7 @@ class Disto(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -88,6 +90,7 @@ class Disto(PyoObject):
New `drive` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._drive = x
x, lmax = convertArgsToLists(x)
[obj.setDrive(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -102,6 +105,7 @@ class Disto(PyoObject):
New `slope` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._slope = x
x, lmax = convertArgsToLists(x)
[obj.setSlope(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -170,6 +174,7 @@ class Delay(PyoObject):
"""
def __init__(self, input, delay=0.25, feedback=0, maxdelay=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOnOO", input, delay, feedback, maxdelay, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._delay = delay
@@ -191,6 +196,7 @@ class Delay(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -204,6 +210,7 @@ class Delay(PyoObject):
New `delay` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._delay = x
x, lmax = convertArgsToLists(x)
[obj.setDelay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -218,6 +225,7 @@ class Delay(PyoObject):
New `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -285,6 +293,7 @@ class SDelay(PyoObject):
"""
def __init__(self, input, delay=0.25, maxdelay=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOnOO", input, delay, maxdelay, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._delay = delay
@@ -305,6 +314,7 @@ class SDelay(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -318,6 +328,7 @@ class SDelay(PyoObject):
New `delay` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._delay = x
x, lmax = convertArgsToLists(x)
[obj.setDelay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -379,6 +390,7 @@ class Waveguide(PyoObject):
"""
def __init__(self, input, freq=100, dur=10, minfreq=20, mul=1, add=0):
+ pyoArgsAssert(self, "oOOnOO", input, freq, dur, minfreq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -399,6 +411,7 @@ class Waveguide(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -412,6 +425,7 @@ class Waveguide(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -426,6 +440,7 @@ class Waveguide(PyoObject):
New `dur` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -493,6 +508,7 @@ class AllpassWG(PyoObject):
"""
def __init__(self, input, freq=100, feed=0.95, detune=0.5, minfreq=20, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOnOO", input, freq, feed, detune, minfreq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -514,6 +530,7 @@ class AllpassWG(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -527,6 +544,7 @@ class AllpassWG(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -541,6 +559,7 @@ class AllpassWG(PyoObject):
New `feed` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feed = x
x, lmax = convertArgsToLists(x)
[obj.setFeed(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -555,6 +574,7 @@ class AllpassWG(PyoObject):
New `detune` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._detune = x
x, lmax = convertArgsToLists(x)
[obj.setDetune(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -627,6 +647,7 @@ class Freeverb(PyoObject):
"""
def __init__(self, input, size=.5, damp=.5, bal=.5, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOO", input, size, damp, bal, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._size = size
@@ -648,6 +669,7 @@ class Freeverb(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -661,6 +683,7 @@ class Freeverb(PyoObject):
New `size` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._size = x
x, lmax = convertArgsToLists(x)
[obj.setSize(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -675,6 +698,7 @@ class Freeverb(PyoObject):
New `damp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._damp = x
x, lmax = convertArgsToLists(x)
[obj.setDamp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -689,6 +713,7 @@ class Freeverb(PyoObject):
New `bal` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bal = x
x, lmax = convertArgsToLists(x)
[obj.setMix(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -772,6 +797,7 @@ class Convolve(PyoObject):
"""
def __init__(self, input, table, size, mul=1, add=0):
+ pyoArgsAssert(self, "otiOO", input, table, size, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._table = table
@@ -792,6 +818,7 @@ class Convolve(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -805,6 +832,7 @@ class Convolve(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -825,9 +853,9 @@ class Convolve(PyoObject):
class WGVerb(PyoObject):
"""
- 8 delay line mono FDN reverb.
+ 8 delay lines mono FDN reverb.
- 8 delay line FDN reverb, with feedback matrix based upon physical
+ 8 delay lines FDN reverb, with feedback matrix based upon physical
modeling scattering junction of 8 lossless waveguides of equal
characteristic impedance.
@@ -857,6 +885,7 @@ class WGVerb(PyoObject):
"""
def __init__(self, input, feedback=0.5, cutoff=5000, bal=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOO", input, feedback, cutoff, bal, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._feedback = feedback
@@ -878,6 +907,7 @@ class WGVerb(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -891,6 +921,7 @@ class WGVerb(PyoObject):
New `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -905,6 +936,7 @@ class WGVerb(PyoObject):
New `cutoff` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._cutoff = x
x, lmax = convertArgsToLists(x)
[obj.setCutoff(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -919,6 +951,7 @@ class WGVerb(PyoObject):
New `bal` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bal = x
x, lmax = convertArgsToLists(x)
[obj.setMix(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -987,6 +1020,7 @@ class Chorus(PyoObject):
"""
def __init__(self, input, depth=1, feedback=0.25, bal=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOO", input, depth, feedback, bal, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._depth = depth
@@ -1008,6 +1042,7 @@ class Chorus(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1021,6 +1056,7 @@ class Chorus(PyoObject):
New `depth` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._depth = x
x, lmax = convertArgsToLists(x)
[obj.setDepth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1035,6 +1071,7 @@ class Chorus(PyoObject):
New `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1049,6 +1086,7 @@ class Chorus(PyoObject):
New `bal` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bal = x
x, lmax = convertArgsToLists(x)
[obj.setMix(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1114,6 +1152,7 @@ class Harmonizer(PyoObject):
"""
def __init__(self, input, transpo=-7.0, feedback=0, winsize=0.1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOnOO", input, transpo, feedback, winsize, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._transpo = transpo
@@ -1135,6 +1174,7 @@ class Harmonizer(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1148,6 +1188,7 @@ class Harmonizer(PyoObject):
New `transpo` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._transpo = x
x, lmax = convertArgsToLists(x)
[obj.setTranspo(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1162,6 +1203,7 @@ class Harmonizer(PyoObject):
New `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1176,6 +1218,7 @@ class Harmonizer(PyoObject):
New `winsize` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._winsize = x
x, lmax = convertArgsToLists(x)
[obj.setWinsize(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1238,6 +1281,7 @@ class Delay1(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1256,6 +1300,7 @@ class Delay1(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1312,6 +1357,7 @@ class STRev(PyoObject):
"""
def __init__(self, input, inpos=0.5, revtime=1, cutoff=5000, bal=.5, roomSize=1, firstRefGain=-3, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOnnOO", input, inpos, revtime, cutoff, bal, roomSize, firstRefGain, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._inpos = inpos
@@ -1337,6 +1383,7 @@ class STRev(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1350,6 +1397,7 @@ class STRev(PyoObject):
New `inpos` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._inpos = x
x, lmax = convertArgsToLists(x)
[obj.setInpos(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1364,6 +1412,7 @@ class STRev(PyoObject):
New `revtime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._revtime = x
x, lmax = convertArgsToLists(x)
[obj.setRevtime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1378,6 +1427,7 @@ class STRev(PyoObject):
New `cutoff` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._cutoff = x
x, lmax = convertArgsToLists(x)
[obj.setCutoff(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1392,6 +1442,7 @@ class STRev(PyoObject):
New `bal` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bal = x
x, lmax = convertArgsToLists(x)
[obj.setMix(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1406,6 +1457,7 @@ class STRev(PyoObject):
Room size scaler, between 0.25 and 4.0.
"""
+ pyoArgsAssert(self, "n", x)
self._roomSize = x
x, lmax = convertArgsToLists(x)
[obj.setRoomSize(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1420,6 +1472,7 @@ class STRev(PyoObject):
Gain, in dB, of the first reflexions.
"""
+ pyoArgsAssert(self, "n", x)
self._firstRefGain = x
x, lmax = convertArgsToLists(x)
[obj.setFirstRefGain(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1527,6 +1580,7 @@ class SmoothDelay(PyoObject):
"""
def __init__(self, input, delay=0.25, feedback=0, crossfade=0.05, maxdelay=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOnnOO", input, delay, feedback, crossfade, maxdelay, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._delay = delay
@@ -1549,6 +1603,7 @@ class SmoothDelay(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1562,6 +1617,7 @@ class SmoothDelay(PyoObject):
New `delay` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._delay = x
x, lmax = convertArgsToLists(x)
[obj.setDelay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1576,6 +1632,7 @@ class SmoothDelay(PyoObject):
New `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1590,6 +1647,7 @@ class SmoothDelay(PyoObject):
New `crossfade` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._crossfade = x
x, lmax = convertArgsToLists(x)
[obj.setCrossfade(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1665,6 +1723,7 @@ class FreqShift(PyoObject):
"""
def __init__(self, input, shift=100, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, shift, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._shift = shift
@@ -1719,6 +1778,7 @@ class FreqShift(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1732,6 +1792,7 @@ class FreqShift(PyoObject):
New `shift` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._shift = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._sin_objs)]
diff --git a/pyolib/filters.py b/pyolib/filters.py
index ebb5a89..507be15 100644
--- a/pyolib/filters.py
+++ b/pyolib/filters.py
@@ -69,6 +69,7 @@ class Biquad(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, type=0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOiOO", input, freq, q, type, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -90,6 +91,7 @@ class Biquad(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -103,6 +105,7 @@ class Biquad(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -117,6 +120,7 @@ class Biquad(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -136,6 +140,7 @@ class Biquad(PyoObject):
4. allpass
"""
+ pyoArgsAssert(self, "i", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -212,6 +217,7 @@ class Biquadx(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, type=0, stages=4, mul=1, add=0):
+ pyoArgsAssert(self, "oOOiiOO", input, freq, q, type, stages, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -234,6 +240,7 @@ class Biquadx(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -247,6 +254,7 @@ class Biquadx(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -261,6 +269,7 @@ class Biquadx(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -280,6 +289,7 @@ class Biquadx(PyoObject):
4. allpass
"""
+ pyoArgsAssert(self, "i", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -294,6 +304,7 @@ class Biquadx(PyoObject):
New `stages` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._stages = x
x, lmax = convertArgsToLists(x)
[obj.setStages(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -383,6 +394,7 @@ class Biquada(PyoObject):
"""
def __init__(self, input, b0=0.005066, b1=0.010132, b2=0.005066, a0=1.070997, a1=-1.979735, a2=0.929003, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOOOOO", input, b0, b1, b2, a0, a1, a2, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._b0 = Sig(b0)
@@ -407,6 +419,7 @@ class Biquada(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -420,6 +433,7 @@ class Biquada(PyoObject):
New `b0` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._b0.value = x
def setB1(self, x):
@@ -432,6 +446,7 @@ class Biquada(PyoObject):
New `b1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._b1.value = x
def setB2(self, x):
@@ -444,6 +459,7 @@ class Biquada(PyoObject):
New `b2` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._b2.value = x
def setA0(self, x):
@@ -456,6 +472,7 @@ class Biquada(PyoObject):
New `a0` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._a0.value = x
def setA1(self, x):
@@ -468,6 +485,7 @@ class Biquada(PyoObject):
New `a1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._a1.value = x
def setA2(self, x):
@@ -480,6 +498,7 @@ class Biquada(PyoObject):
New `a2` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._a2.value = x
def setCoeffs(self, *args, **kwds):
@@ -601,6 +620,7 @@ class EQ(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, boost=-3.0, type=0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOiOO", input, freq, q, boost, type, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -623,6 +643,7 @@ class EQ(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -636,6 +657,7 @@ class EQ(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -650,6 +672,7 @@ class EQ(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -664,6 +687,7 @@ class EQ(PyoObject):
New `boost` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._boost = x
x, lmax = convertArgsToLists(x)
[obj.setBoost(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -681,6 +705,7 @@ class EQ(PyoObject):
2. highshelf
"""
+ pyoArgsAssert(self, "i", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -748,6 +773,7 @@ class Tone(PyoObject):
"""
def __init__(self, input, freq=1000, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -767,6 +793,7 @@ class Tone(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -780,6 +807,7 @@ class Tone(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -823,6 +851,7 @@ class Atone(PyoObject):
"""
def __init__(self, input, freq=1000, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -842,6 +871,7 @@ class Atone(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -855,6 +885,7 @@ class Atone(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -910,6 +941,7 @@ class Port(PyoObject):
"""
def __init__(self, input, risetime=0.05, falltime=0.05, init=0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOnOO", input, risetime, falltime, init, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._risetime = risetime
@@ -930,6 +962,7 @@ class Port(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -943,6 +976,7 @@ class Port(PyoObject):
New `risetime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._risetime = x
x, lmax = convertArgsToLists(x)
[obj.setRiseTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -957,6 +991,7 @@ class Port(PyoObject):
New `falltime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._falltime = x
x, lmax = convertArgsToLists(x)
[obj.setFallTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1006,6 +1041,7 @@ class DCBlock(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1024,6 +1060,7 @@ class DCBlock(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1070,6 +1107,7 @@ class BandSplit(PyoObject):
"""
def __init__(self, input, num=6, min=20, max=20000, q=1, mul=1, add=0):
+ pyoArgsAssert(self, "oINNOOO", input, num, min, max, q, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._num = num
@@ -1098,6 +1136,7 @@ class BandSplit(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1111,6 +1150,7 @@ class BandSplit(PyoObject):
new `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1169,6 +1209,7 @@ class FourBand(PyoObject):
"""
def __init__(self, input, freq1=150, freq2=500, freq3=2000, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOO", input, freq1, freq2, freq3, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq1 = freq1
@@ -1196,6 +1237,7 @@ class FourBand(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1209,6 +1251,7 @@ class FourBand(PyoObject):
new `freq1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq1 = x
x, lmax = convertArgsToLists(x)
[obj.setFreq1(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1223,6 +1266,7 @@ class FourBand(PyoObject):
new `freq2` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq2 = x
x, lmax = convertArgsToLists(x)
[obj.setFreq2(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1237,6 +1281,7 @@ class FourBand(PyoObject):
new `freq3` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq3 = x
x, lmax = convertArgsToLists(x)
[obj.setFreq3(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1321,6 +1366,7 @@ class Hilbert(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._real_dummy = []
self._imag_dummy = []
@@ -1381,6 +1427,7 @@ class Hilbert(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1429,6 +1476,7 @@ class Allpass(PyoObject):
"""
def __init__(self, input, delay=0.01, feedback=0, maxdelay=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOnOO", input, delay, feedback, maxdelay, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._delay = delay
@@ -1450,6 +1498,7 @@ class Allpass(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1463,6 +1512,7 @@ class Allpass(PyoObject):
New `delay` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._delay = x
x, lmax = convertArgsToLists(x)
[obj.setDelay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1477,6 +1527,7 @@ class Allpass(PyoObject):
New `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1540,6 +1591,7 @@ class Allpass2(PyoObject):
"""
def __init__(self, input, freq=1000, bw=100, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, freq, bw, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -1560,6 +1612,7 @@ class Allpass2(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1573,6 +1626,7 @@ class Allpass2(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1587,6 +1641,7 @@ class Allpass2(PyoObject):
New `bw` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bw = x
x, lmax = convertArgsToLists(x)
[obj.setBw(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1654,6 +1709,7 @@ class Phaser(PyoObject):
"""
def __init__(self, input, freq=1000, spread=1.1, q=10, feedback=0, num=8, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOiOO", input, freq, spread, q, feedback, num, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -1677,6 +1733,7 @@ class Phaser(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1690,6 +1747,7 @@ class Phaser(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1704,6 +1762,7 @@ class Phaser(PyoObject):
New `spread` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._spread = x
x, lmax = convertArgsToLists(x)
[obj.setSpread(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1718,6 +1777,7 @@ class Phaser(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1732,6 +1792,7 @@ class Phaser(PyoObject):
New `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1833,6 +1894,7 @@ class Vocoder(PyoObject):
"""
def __init__(self, input, input2, freq=60, spread=1.25, q=20, slope=0.5, stages=24, mul=1, add=0):
+ pyoArgsAssert(self, "ooOOOOiOO", input, input2, freq, spread, q, slope, stages, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._input2 = input2
@@ -1858,6 +1920,7 @@ class Vocoder(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1873,6 +1936,7 @@ class Vocoder(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input2 = x
self._in_fader2.setInput(x, fadetime)
@@ -1886,6 +1950,7 @@ class Vocoder(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1900,6 +1965,7 @@ class Vocoder(PyoObject):
New `spread` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._spread = x
x, lmax = convertArgsToLists(x)
[obj.setSpread(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1914,6 +1980,7 @@ class Vocoder(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1928,6 +1995,7 @@ class Vocoder(PyoObject):
New `slope` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._slope = x
x, lmax = convertArgsToLists(x)
[obj.setSlope(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1942,6 +2010,7 @@ class Vocoder(PyoObject):
New `stages` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._stages = x
x, lmax = convertArgsToLists(x)
[obj.setStages(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2055,6 +2124,7 @@ class IRWinSinc(PyoObject):
"""
def __init__(self, input, freq=1000, bw=500, type=0, order=256, mul=1, add=0):
+ pyoArgsAssert(self, "oOOiiOO", input, freq, bw, type, order, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -2080,6 +2150,7 @@ class IRWinSinc(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2093,6 +2164,7 @@ class IRWinSinc(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2107,6 +2179,7 @@ class IRWinSinc(PyoObject):
New `bw` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bw = x
x, lmax = convertArgsToLists(x)
[obj.setBandwidth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2125,6 +2198,7 @@ class IRWinSinc(PyoObject):
3. bandpass
"""
+ pyoArgsAssert(self, "i", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2201,6 +2275,7 @@ class IRAverage(PyoObject):
"""
def __init__(self, input, order=256, mul=1, add=0):
+ pyoArgsAssert(self, "oiOO", input, order, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
if (order % 2) != 0:
@@ -2223,6 +2298,7 @@ class IRAverage(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2283,6 +2359,7 @@ class IRPulse(PyoObject):
"""
def __init__(self, input, freq=500, bw=2500, type=0, order=256, mul=1, add=0):
+ pyoArgsAssert(self, "oOOiiOO", input, freq, bw, type, order, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -2308,6 +2385,7 @@ class IRPulse(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2321,6 +2399,7 @@ class IRPulse(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2335,6 +2414,7 @@ class IRPulse(PyoObject):
New `bw` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bw = x
x, lmax = convertArgsToLists(x)
[obj.setBandwidth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2353,6 +2433,7 @@ class IRPulse(PyoObject):
3. Pulse (odd harmonics) & comb & lowpass
"""
+ pyoArgsAssert(self, "i", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2437,6 +2518,7 @@ class IRFM(PyoObject):
"""
def __init__(self, input, carrier=1000, ratio=0.5, index=3, order=256, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOiOO", input, carrier, ratio, index, order, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._carrier = carrier
@@ -2462,6 +2544,7 @@ class IRFM(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2475,6 +2558,7 @@ class IRFM(PyoObject):
New `carrier` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._carrier = x
x, lmax = convertArgsToLists(x)
[obj.setCarrier(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2489,6 +2573,7 @@ class IRFM(PyoObject):
New `ratio` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._ratio = x
x, lmax = convertArgsToLists(x)
[obj.setRatio(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2503,6 +2588,7 @@ class IRFM(PyoObject):
New `index` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2577,6 +2663,7 @@ class SVF(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, type=0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOO", input, freq, q, type, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -2598,6 +2685,7 @@ class SVF(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2612,6 +2700,7 @@ class SVF(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2626,6 +2715,7 @@ class SVF(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2643,6 +2733,7 @@ class SVF(PyoObject):
New `type` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2709,6 +2800,7 @@ class Average(PyoObject):
"""
def __init__(self, input, size=10, mul=1, add=0):
+ pyoArgsAssert(self, "oiOO", input, size, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._size = size
@@ -2728,6 +2820,7 @@ class Average(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2741,6 +2834,7 @@ class Average(PyoObject):
New `size` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._size = x
x, lmax = convertArgsToLists(x)
[obj.setSize(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2794,6 +2888,7 @@ class Reson(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, freq, q, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -2814,6 +2909,7 @@ class Reson(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2827,6 +2923,7 @@ class Reson(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2841,6 +2938,7 @@ class Reson(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2905,6 +3003,7 @@ class Resonx(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, stages=4, mul=1, add=0):
+ pyoArgsAssert(self, "oOOiOO", input, freq, q, stages, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -2926,6 +3025,7 @@ class Resonx(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2939,6 +3039,7 @@ class Resonx(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2953,6 +3054,7 @@ class Resonx(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2967,6 +3069,7 @@ class Resonx(PyoObject):
New `stages` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._stages = x
x, lmax = convertArgsToLists(x)
[obj.setStages(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3028,6 +3131,7 @@ class ButLP(PyoObject):
"""
def __init__(self, input, freq=1000, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -3047,6 +3151,7 @@ class ButLP(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3060,6 +3165,7 @@ class ButLP(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3107,6 +3213,7 @@ class ButHP(PyoObject):
"""
def __init__(self, input, freq=1000, mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -3126,6 +3233,7 @@ class ButHP(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3139,6 +3247,7 @@ class ButHP(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3189,6 +3298,7 @@ class ButBP(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, freq, q, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -3209,6 +3319,7 @@ class ButBP(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3222,6 +3333,7 @@ class ButBP(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3236,6 +3348,7 @@ class ButBP(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3294,6 +3407,7 @@ class ButBR(PyoObject):
"""
def __init__(self, input, freq=1000, q=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, freq, q, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -3314,6 +3428,7 @@ class ButBR(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3327,6 +3442,7 @@ class ButBR(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3341,6 +3457,7 @@ class ButBR(PyoObject):
New `q` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._q = x
x, lmax = convertArgsToLists(x)
[obj.setQ(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3400,6 +3517,7 @@ class ComplexRes(PyoObject):
"""
def __init__(self, input, freq=1000, decay=.25, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, freq, decay, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._freq = freq
@@ -3420,6 +3538,7 @@ class ComplexRes(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3433,6 +3552,7 @@ class ComplexRes(PyoObject):
New `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3447,6 +3567,7 @@ class ComplexRes(PyoObject):
New `decay` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._decay = x
x, lmax = convertArgsToLists(x)
[obj.setDecay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/fourier.py b/pyolib/fourier.py
index 30026cd..b30b25f 100644
--- a/pyolib/fourier.py
+++ b/pyolib/fourier.py
@@ -98,6 +98,7 @@ class FFT(PyoObject):
"""
def __init__(self, input, size=1024, overlaps=4, wintype=2):
+ pyoArgsAssert(self, "oiIi", input, size, overlaps, wintype)
PyoObject.__init__(self)
self._real_dummy = []
self._imag_dummy = []
@@ -173,6 +174,7 @@ class FFT(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -204,6 +206,7 @@ class FFT(PyoObject):
new `size` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._size = x
x, lmax = convertArgsToLists(x)
poly = len(self._base_players) / self._overlaps
@@ -222,6 +225,7 @@ class FFT(PyoObject):
new `wintype` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._wintype = x
x, lmax = convertArgsToLists(x)
[obj.setWinType(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -313,6 +317,7 @@ class IFFT(PyoObject):
"""
def __init__(self, inreal, inimag, size=1024, overlaps=4, wintype=2, mul=1, add=0):
+ pyoArgsAssert(self, "ooiIiOO", inreal, inimag, size, overlaps, wintype, mul, add)
PyoObject.__init__(self, mul, add)
self._inreal = inreal
self._inimag = inimag
@@ -343,6 +348,7 @@ class IFFT(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._inreal = x
self._in_fader.setInput(x, fadetime)
@@ -358,6 +364,7 @@ class IFFT(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._inimag = x
self._in_fader2.setInput(x, fadetime)
@@ -371,6 +378,7 @@ class IFFT(PyoObject):
new `size` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._size = x
x, lmax = convertArgsToLists(x)
ratio = len(self._base_objs) / self._overlaps
@@ -388,6 +396,7 @@ class IFFT(PyoObject):
new `wintype` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._wintype = x
x, lmax = convertArgsToLists(x)
[obj.setWinType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -473,6 +482,7 @@ class CarToPol(PyoObject):
"""
def __init__(self, inreal, inimag, mul=1, add=0):
+ pyoArgsAssert(self, "ooOO", inreal, inimag, mul, add)
PyoObject.__init__(self, mul, add)
self._mag_dummy = []
self._ang_dummy = []
@@ -535,6 +545,7 @@ class CarToPol(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._inreal = x
self._in_fader.setInput(x, fadetime)
@@ -550,6 +561,7 @@ class CarToPol(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._inimag = x
self._in_fader2.setInput(x, fadetime)
@@ -616,6 +628,7 @@ class PolToCar(PyoObject):
"""
def __init__(self, inmag, inang, mul=1, add=0):
+ pyoArgsAssert(self, "ooOO", inmag, inang, mul, add)
PyoObject.__init__(self, mul, add)
self._real_dummy = []
self._imag_dummy = []
@@ -678,6 +691,7 @@ class PolToCar(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._inmag = x
self._in_fader.setInput(x, fadetime)
@@ -693,6 +707,7 @@ class PolToCar(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._inang = x
self._in_fader2.setInput(x, fadetime)
@@ -764,6 +779,7 @@ class FrameDelta(PyoObject):
"""
def __init__(self, input, framesize=1024, overlaps=4, mul=1, add=0):
+ pyoArgsAssert(self, "oiiOO", input, framesize, overlaps, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._framesize = framesize
@@ -799,6 +815,7 @@ class FrameDelta(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -812,6 +829,7 @@ class FrameDelta(PyoObject):
new `framesize` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._framesize = x
x, lmax = convertArgsToLists(x)
[obj.setFrameSize(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -884,6 +902,7 @@ class FrameAccum(PyoObject):
"""
def __init__(self, input, framesize=1024, overlaps=4, mul=1, add=0):
+ pyoArgsAssert(self, "oiiOO", input, framesize, overlaps, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._framesize = framesize
@@ -919,6 +938,7 @@ class FrameAccum(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -932,6 +952,7 @@ class FrameAccum(PyoObject):
new `framesize` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._framesize = x
x, lmax = convertArgsToLists(x)
[obj.setFrameSize(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -999,6 +1020,7 @@ class Vectral(PyoObject):
"""
def __init__(self, input, framesize=1024, overlaps=4, up=1.0, down=0.7, damp=0.9, mul=1, add=0):
+ pyoArgsAssert(self, "oiiOOOOO", input, framesize, overlaps, up, down, damp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._framesize = framesize
@@ -1037,6 +1059,7 @@ class Vectral(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1050,6 +1073,7 @@ class Vectral(PyoObject):
new `framesize` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._framesize = x
x, lmax = convertArgsToLists(x)
[obj.setFrameSize(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1064,6 +1088,7 @@ class Vectral(PyoObject):
new `up` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._up = x
x, lmax = convertArgsToLists(x)
[obj.setUp(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1078,6 +1103,7 @@ class Vectral(PyoObject):
new `down` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._down = x
x, lmax = convertArgsToLists(x)
[obj.setDown(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1092,6 +1118,7 @@ class Vectral(PyoObject):
new `damp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._damp = x
x, lmax = convertArgsToLists(x)
[obj.setDamp(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -1174,6 +1201,7 @@ class CvlVerb(PyoObject):
"""
def __init__(self, input, impulse=SNDS_PATH+"/IRMediumHallStereo.wav", bal=0.25, size=1024, mul=1, add=0):
+ pyoArgsAssert(self, "osOiOO", input, impulse, bal, size, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._impulse = impulse
@@ -1200,6 +1228,7 @@ class CvlVerb(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1213,6 +1242,7 @@ class CvlVerb(PyoObject):
new `bal` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bal = x
x, lmax = convertArgsToLists(x)
[obj.setBal(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/generators.py b/pyolib/generators.py
index bb15550..db2fa97 100644
--- a/pyolib/generators.py
+++ b/pyolib/generators.py
@@ -55,6 +55,7 @@ class Sine(PyoObject):
"""
def __init__(self, freq=1000, phase=0, mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", freq, phase, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._phase = phase
@@ -71,6 +72,7 @@ class Sine(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -85,6 +87,7 @@ class Sine(PyoObject):
new `phase` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._phase = x
x, lmax = convertArgsToLists(x)
[obj.setPhase(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -143,6 +146,7 @@ class SineLoop(PyoObject):
"""
def __init__(self, freq=1000, feedback=0, mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", freq, feedback, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._feedback = feedback
@@ -159,6 +163,7 @@ class SineLoop(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -173,6 +178,7 @@ class SineLoop(PyoObject):
new `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -222,6 +228,7 @@ class Phasor(PyoObject):
"""
def __init__(self, freq=100, phase=0, mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", freq, phase, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._phase = phase
@@ -238,6 +245,7 @@ class Phasor(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -252,6 +260,7 @@ class Phasor(PyoObject):
new `phase` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._phase = x
x, lmax = convertArgsToLists(x)
[obj.setPhase(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -304,6 +313,7 @@ class Input(PyoObject):
"""
def __init__(self, chnl=0, mul=1, add=0):
+ pyoArgsAssert(self, "iOO", chnl, mul, add)
PyoObject.__init__(self, mul, add)
self._chnl = chnl
chnl, mul, add, lmax = convertArgsToLists(chnl, mul, add)
@@ -325,6 +335,7 @@ class Noise(PyoObject):
"""
def __init__(self, mul=1, add=0):
+ pyoArgsAssert(self, "OO", mul, add)
PyoObject.__init__(self, mul, add)
self._type = 0
mul, add, lmax = convertArgsToLists(mul, add)
@@ -341,6 +352,7 @@ class Noise(PyoObject):
1 uses a simple linear congruential generator, cheaper than rand().
"""
+ pyoArgsAssert(self, "i", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -374,6 +386,7 @@ class PinkNoise(PyoObject):
"""
def __init__(self, mul=1, add=0):
+ pyoArgsAssert(self, "OO", mul, add)
PyoObject.__init__(self, mul, add)
mul, add, lmax = convertArgsToLists(mul, add)
self._base_objs = [PinkNoise_base(wrap(mul,i), wrap(add,i)) for i in range(lmax)]
@@ -397,6 +410,7 @@ class BrownNoise(PyoObject):
"""
def __init__(self, mul=1, add=0):
+ pyoArgsAssert(self, "OO", mul, add)
PyoObject.__init__(self, mul, add)
mul, add, lmax = convertArgsToLists(mul, add)
self._base_objs = [BrownNoise_base(wrap(mul,i), wrap(add,i)) for i in range(lmax)]
@@ -433,6 +447,7 @@ class FM(PyoObject):
"""
def __init__(self, carrier=100, ratio=0.5, index=5, mul=1, add=0):
+ pyoArgsAssert(self, "OOOOO", carrier, ratio, index, mul, add)
PyoObject.__init__(self, mul, add)
self._carrier = carrier
self._ratio = ratio
@@ -450,6 +465,7 @@ class FM(PyoObject):
new `carrier` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._carrier = x
x, lmax = convertArgsToLists(x)
[obj.setCarrier(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -464,6 +480,7 @@ class FM(PyoObject):
new `ratio` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._ratio = x
x, lmax = convertArgsToLists(x)
[obj.setRatio(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -478,6 +495,7 @@ class FM(PyoObject):
new `index` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -546,6 +564,7 @@ class CrossFM(PyoObject):
"""
def __init__(self, carrier=100, ratio=0.5, ind1=2, ind2=2, mul=1, add=0):
+ pyoArgsAssert(self, "OOOOOO", carrier, ratio, ind1, ind2, mul, add)
PyoObject.__init__(self, mul, add)
self._carrier = carrier
self._ratio = ratio
@@ -564,6 +583,7 @@ class CrossFM(PyoObject):
new `carrier` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._carrier = x
x, lmax = convertArgsToLists(x)
[obj.setCarrier(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -578,6 +598,7 @@ class CrossFM(PyoObject):
new `ratio` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._ratio = x
x, lmax = convertArgsToLists(x)
[obj.setRatio(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -592,6 +613,7 @@ class CrossFM(PyoObject):
new `ind1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._ind1 = x
x, lmax = convertArgsToLists(x)
[obj.setInd1(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -606,6 +628,7 @@ class CrossFM(PyoObject):
new `ind2` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._ind2 = x
x, lmax = convertArgsToLists(x)
[obj.setInd2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -670,6 +693,7 @@ class Blit(PyoObject):
"""
def __init__(self, freq=100, harms=40, mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", freq, harms, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._harms = harms
@@ -686,6 +710,7 @@ class Blit(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -700,6 +725,7 @@ class Blit(PyoObject):
new `harms` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._harms = x
x, lmax = convertArgsToLists(x)
[obj.setHarms(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -763,6 +789,7 @@ class Rossler(PyoObject):
"""
def __init__(self, pitch=0.25, chaos=0.5, stereo=False, mul=1, add=0):
+ pyoArgsAssert(self, "OObOO", pitch, chaos, stereo, mul, add)
PyoObject.__init__(self, mul, add)
self._pitch = pitch
self._chaos = chaos
@@ -785,6 +812,7 @@ class Rossler(PyoObject):
new `pitch` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@ -802,6 +830,7 @@ class Rossler(PyoObject):
new `chaos` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._chaos = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@ -867,6 +896,7 @@ class Lorenz(PyoObject):
"""
def __init__(self, pitch=0.25, chaos=0.5, stereo=False, mul=1, add=0):
+ pyoArgsAssert(self, "OObOO", pitch, chaos, stereo, mul, add)
PyoObject.__init__(self, mul, add)
self._pitch = pitch
self._chaos = chaos
@@ -889,6 +919,7 @@ class Lorenz(PyoObject):
new `pitch` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@ -906,6 +937,7 @@ class Lorenz(PyoObject):
new `chaos` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._chaos = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@ -965,6 +997,7 @@ class LFO(PyoObject):
"""
def __init__(self, freq=100, sharp=0.5, type=0, mul=1, add=0):
+ pyoArgsAssert(self, "OOiOO", freq, sharp, type, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._sharp = sharp
@@ -982,6 +1015,7 @@ class LFO(PyoObject):
New `freq` attribute, in cycles per seconds.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -996,6 +1030,7 @@ class LFO(PyoObject):
New `sharp` attribute, in the range 0 -> 1.
"""
+ pyoArgsAssert(self, "O", x)
self._sharp = x
x, lmax = convertArgsToLists(x)
[obj.setSharp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1019,6 +1054,7 @@ class LFO(PyoObject):
"""
+ pyoArgsAssert(self, "i", x)
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1102,6 +1138,7 @@ class SumOsc(PyoObject):
"""
def __init__(self, freq=100, ratio=0.5, index=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "OOOOO", freq, ratio, index, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._ratio = ratio
@@ -1119,6 +1156,7 @@ class SumOsc(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1133,6 +1171,7 @@ class SumOsc(PyoObject):
new `ratio` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._ratio = x
x, lmax = convertArgsToLists(x)
[obj.setRatio(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1147,6 +1186,7 @@ class SumOsc(PyoObject):
new `index` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1215,6 +1255,7 @@ class SuperSaw(PyoObject):
"""
def __init__(self, freq=100, detune=0.5, bal=0.7, mul=1, add=0):
+ pyoArgsAssert(self, "OOOOO", freq, detune, bal, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._detune = detune
@@ -1232,6 +1273,7 @@ class SuperSaw(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1246,6 +1288,7 @@ class SuperSaw(PyoObject):
new `detune` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._detune = x
x, lmax = convertArgsToLists(x)
[obj.setDetune(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1260,6 +1303,7 @@ class SuperSaw(PyoObject):
new `bal` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._bal = x
x, lmax = convertArgsToLists(x)
[obj.setBal(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1320,6 +1364,7 @@ class RCOsc(PyoObject):
"""
def __init__(self, freq=100, sharp=0.25, mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", freq, sharp, mul, add)
PyoObject.__init__(self, mul, add)
self._freq = freq
self._sharp = sharp
@@ -1336,6 +1381,7 @@ class RCOsc(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1350,6 +1396,7 @@ class RCOsc(PyoObject):
new `sharp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._sharp = x
x, lmax = convertArgsToLists(x)
[obj.setSharp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/matrix.py b/pyolib/matrix.py
index 0605dbd..3ddee00 100644
--- a/pyolib/matrix.py
+++ b/pyolib/matrix.py
@@ -60,6 +60,7 @@ class NewMatrix(PyoMatrixObject):
"""
def __init__(self, width, height, init=None):
+ pyoArgsAssert(self, "IIL", width, height, init)
PyoMatrixObject.__init__(self)
self._size = (width, height)
if init == None:
@@ -77,6 +78,7 @@ class NewMatrix(PyoMatrixObject):
New matrix. Must be of the same size as the actual matrix.
"""
+ pyoArgsAssert(self, "l", x)
[obj.setMatrix(x) for obj in self._base_objs]
self.refreshView()
@@ -102,5 +104,6 @@ class NewMatrix(PyoMatrixObject):
the range 0 -> 1. Defaults to 0.0625.
"""
+ pyoArgsAssert(self, "NN", freq, phase)
[obj.genSineTerrain(freq, phase) for obj in self._base_objs]
self.refreshView()
\ No newline at end of file
diff --git a/pyolib/matrixprocess.py b/pyolib/matrixprocess.py
index 9f7ded9..9b721a0 100644
--- a/pyolib/matrixprocess.py
+++ b/pyolib/matrixprocess.py
@@ -87,6 +87,7 @@ class MatrixRec(PyoObject):
"""
def __init__(self, input, matrix, fadetime=0, delay=0):
+ pyoArgsAssert(self, "omni", input, matrix, fadetime, delay)
PyoObject.__init__(self)
self._input = input
self._matrix = matrix
@@ -116,6 +117,7 @@ class MatrixRec(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -129,6 +131,7 @@ class MatrixRec(PyoObject):
new `matrix` attribute.
"""
+ pyoArgsAssert(self, "m", x)
self._matrix = x
x, lmax = convertArgsToLists(x)
[obj.setMatrix(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -194,6 +197,7 @@ class MatrixRecLoop(PyoObject):
"""
def __init__(self, input, matrix):
+ pyoArgsAssert(self, "om", input, matrix)
PyoObject.__init__(self)
self._input = input
self._matrix = matrix
@@ -223,6 +227,7 @@ class MatrixRecLoop(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -236,6 +241,7 @@ class MatrixRecLoop(PyoObject):
new `matrix` attribute.
"""
+ pyoArgsAssert(self, "m", x)
self._matrix = x
x, lmax = convertArgsToLists(x)
[obj.setMatrix(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -285,6 +291,7 @@ class MatrixPointer(PyoObject):
"""
def __init__(self, matrix, x, y, mul=1, add=0):
+ pyoArgsAssert(self, "mooOO", matrix, x, y, mul, add)
PyoObject.__init__(self, mul, add)
self._matrix = matrix
self._x = x
@@ -302,6 +309,7 @@ class MatrixPointer(PyoObject):
new `matrix` attribute.
"""
+ pyoArgsAssert(self, "m", x)
self._matrix = x
x, lmax = convertArgsToLists(x)
[obj.setMatrix(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -316,6 +324,7 @@ class MatrixPointer(PyoObject):
new `x` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._x = x
x, lmax = convertArgsToLists(x)
[obj.setX(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -330,6 +339,7 @@ class MatrixPointer(PyoObject):
new `y` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._y = x
x, lmax = convertArgsToLists(x)
[obj.setY(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -401,6 +411,7 @@ class MatrixMorph(PyoObject):
"""
def __init__(self, input, matrix, sources):
+ pyoArgsAssert(self, "oml", input, matrix, sources)
PyoObject.__init__(self)
self._input = input
self._matrix = matrix
@@ -431,6 +442,7 @@ class MatrixMorph(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -444,6 +456,7 @@ class MatrixMorph(PyoObject):
new `matrix` attribute.
"""
+ pyoArgsAssert(self, "m", x)
self._matrix = x
x, lmax = convertArgsToLists(x)
[obj.setMatrix(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -458,6 +471,7 @@ class MatrixMorph(PyoObject):
new `sources` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._sources = x
self._base_sources = [source[0] for source in x]
[obj.setSources(self._base_sources) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/midi.py b/pyolib/midi.py
index dbed36d..588fc88 100644
--- a/pyolib/midi.py
+++ b/pyolib/midi.py
@@ -71,6 +71,7 @@ class Midictl(PyoObject):
"""
def __init__(self, ctlnumber, minscale=0, maxscale=1, init=0, channel=0, mul=1, add=0):
+ pyoArgsAssert(self, "innniOO", ctlnumber, minscale, maxscale, init, channel, mul, add)
PyoObject.__init__(self, mul, add)
self._ctlnumber = ctlnumber
self._minscale = minscale
@@ -92,6 +93,7 @@ class Midictl(PyoObject):
new `ctlnumber` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._ctlnumber = x
x, lmax = convertArgsToLists(x)
[obj.setCtlNumber(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -102,10 +104,11 @@ class Midictl(PyoObject):
:Args:
- x : int
+ x : float
new `minscale` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._minscale = x
x, lmax = convertArgsToLists(x)
[obj.setMinScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -116,10 +119,11 @@ class Midictl(PyoObject):
:Args:
- x : int
+ x : float
new `maxscale` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._maxscale = x
x, lmax = convertArgsToLists(x)
[obj.setMaxScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -134,6 +138,7 @@ class Midictl(PyoObject):
new `channel` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._channel = x
x, lmax = convertArgsToLists(x)
[obj.setChannel(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -148,6 +153,7 @@ class Midictl(PyoObject):
new current value.
"""
+ pyoArgsAssert(self, "n", x)
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -161,6 +167,7 @@ class Midictl(PyoObject):
True activates the interpolation, False deactivates it.
"""
+ pyoArgsAssert(self, "b", x)
x, lmax = convertArgsToLists(x)
[obj.setInterpolation(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -234,10 +241,8 @@ class CtlScan(PyoObject):
"""
def __init__(self, function, toprint=True):
+ pyoArgsAssert(self, "CB", function, toprint)
PyoObject.__init__(self)
- if not callable(function):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
self._function = WeakMethod(function)
self._toprint = toprint
self._base_objs = [CtlScan_base(self._function, self._toprint)]
@@ -274,6 +279,7 @@ class CtlScan(PyoObject):
new `function` attribute.
"""
+ pyoArgsAssert(self, "C", x)
self._function = WeakMethod(x)
[obj.setFunction(self._function) for i, obj in enumerate(self._base_objs)]
@@ -287,6 +293,7 @@ class CtlScan(PyoObject):
new `toprint` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._toprint = x
x, lmax = convertArgsToLists(x)
[obj.setToprint(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -345,10 +352,8 @@ class CtlScan2(PyoObject):
"""
def __init__(self, function, toprint=True):
+ pyoArgsAssert(self, "CB", function, toprint)
PyoObject.__init__(self)
- if not callable(function):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
self._function = WeakMethod(function)
self._toprint = toprint
self._base_objs = [CtlScan2_base(self._function, self._toprint)]
@@ -385,6 +390,7 @@ class CtlScan2(PyoObject):
new `function` attribute.
"""
+ pyoArgsAssert(self, "C", x)
self._function = WeakMethod(x)
[obj.setFunction(self._function) for i, obj in enumerate(self._base_objs)]
@@ -398,6 +404,7 @@ class CtlScan2(PyoObject):
new `toprint` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._toprint = x
x, lmax = convertArgsToLists(x)
[obj.setToprint(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -478,6 +485,7 @@ class Notein(PyoObject):
"""
def __init__(self, poly=10, scale=0, first=0, last=127, channel=0, mul=1, add=0):
+ pyoArgsAssert(self, "IIIIIOO", poly, scale, first, last, channel, mul, add)
PyoObject.__init__(self, mul, add)
self._pitch_dummy = []
self._velocity_dummy = []
@@ -522,6 +530,7 @@ class Notein(PyoObject):
new `channel` attribute.
"""
+ pyoArgsAssert(self, "I", x)
self._channel = x
self._base_handler.setChannel(x)
@@ -538,6 +547,7 @@ class Notein(PyoObject):
new centralkey value.
"""
+ pyoArgsAssert(self, "I", x)
self._base_handler.setCentralKey(x)
def setStealing(self, x):
@@ -554,6 +564,7 @@ class Notein(PyoObject):
True for stealing mode, False for non-stealing.
"""
+ pyoArgsAssert(self, "B", x)
self._base_handler.setStealing(x)
def get(self, identifier="pitch", all=False):
@@ -642,6 +653,7 @@ class Bendin(PyoObject):
"""
def __init__(self, brange=2, scale=0, channel=0, mul=1, add=0):
+ pyoArgsAssert(self, "niiOO", brange, scale, channel, mul, add)
PyoObject.__init__(self, mul, add)
self._brange = brange
self._scale = scale
@@ -658,10 +670,11 @@ class Bendin(PyoObject):
:Args:
- x : int
+ x : float
new `brange` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._brange = x
x, lmax = convertArgsToLists(x)
[obj.setBrange(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -676,6 +689,7 @@ class Bendin(PyoObject):
new `scale` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._scale = x
x, lmax = convertArgsToLists(x)
[obj.setScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -690,6 +704,7 @@ class Bendin(PyoObject):
new `channel` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._channel = x
x, lmax = convertArgsToLists(x)
[obj.setChannel(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -751,6 +766,7 @@ class Touchin(PyoObject):
"""
def __init__(self, minscale=0, maxscale=1, init=0, channel=0, mul=1, add=0):
+ pyoArgsAssert(self, "nnniOO", minscale, maxscale, init, channel, mul, add)
PyoObject.__init__(self, mul, add)
self._minscale = minscale
self._maxscale = maxscale
@@ -767,10 +783,11 @@ class Touchin(PyoObject):
:Args:
- x : int
+ x : float
new `minscale` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._minscale = x
x, lmax = convertArgsToLists(x)
[obj.setMinScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -781,10 +798,11 @@ class Touchin(PyoObject):
:Args:
- x : int
+ x : float
new `maxscale` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._maxscale = x
x, lmax = convertArgsToLists(x)
[obj.setMaxScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -799,6 +817,7 @@ class Touchin(PyoObject):
new `channel` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._channel = x
x, lmax = convertArgsToLists(x)
[obj.setChannel(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -856,6 +875,7 @@ class Programin(PyoObject):
"""
def __init__(self, channel=0, mul=1, add=0):
+ pyoArgsAssert(self, "iOO", channel, mul, add)
PyoObject.__init__(self, mul, add)
self._channel = channel
channel, mul, add, lmax = convertArgsToLists(channel, mul, add)
@@ -874,6 +894,7 @@ class Programin(PyoObject):
new `channel` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._channel = x
x, lmax = convertArgsToLists(x)
[obj.setChannel(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -928,6 +949,7 @@ class MidiAdsr(PyoObject):
"""
def __init__(self, input, attack=0.01, decay=0.05, sustain=0.7, release=0.1, mul=1, add=0):
+ pyoArgsAssert(self, "onnnnOO", input, attack, decay, sustain, release, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._attack = attack
@@ -953,6 +975,7 @@ class MidiAdsr(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -966,6 +989,7 @@ class MidiAdsr(PyoObject):
new `attack` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._attack = x
x, lmax = convertArgsToLists(x)
[obj.setAttack(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -980,6 +1004,7 @@ class MidiAdsr(PyoObject):
new `decay` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._decay = x
x, lmax = convertArgsToLists(x)
[obj.setDecay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -994,6 +1019,7 @@ class MidiAdsr(PyoObject):
new `sustain` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._sustain = x
x, lmax = convertArgsToLists(x)
[obj.setSustain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1008,6 +1034,7 @@ class MidiAdsr(PyoObject):
new `sustain` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._release = x
x, lmax = convertArgsToLists(x)
[obj.setRelease(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1086,6 +1113,7 @@ class MidiDelAdsr(PyoObject):
"""
def __init__(self, input, delay=0, attack=0.01, decay=0.05, sustain=0.7, release=0.1, mul=1, add=0):
+ pyoArgsAssert(self, "onnnnnOO", input, delay, attack, decay, sustain, release, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._delay = delay
@@ -1112,6 +1140,7 @@ class MidiDelAdsr(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1125,6 +1154,7 @@ class MidiDelAdsr(PyoObject):
new `delay` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._delay = x
x, lmax = convertArgsToLists(x)
[obj.setDelay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1139,6 +1169,7 @@ class MidiDelAdsr(PyoObject):
new `attack` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._attack = x
x, lmax = convertArgsToLists(x)
[obj.setAttack(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1153,6 +1184,7 @@ class MidiDelAdsr(PyoObject):
new `decay` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._decay = x
x, lmax = convertArgsToLists(x)
[obj.setDecay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1167,6 +1199,7 @@ class MidiDelAdsr(PyoObject):
new `sustain` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._sustain = x
x, lmax = convertArgsToLists(x)
[obj.setSustain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1181,6 +1214,7 @@ class MidiDelAdsr(PyoObject):
new `sustain` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._release = x
x, lmax = convertArgsToLists(x)
[obj.setRelease(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1218,4 +1252,80 @@ class MidiDelAdsr(PyoObject):
"""float. Duration of the release phase in seconds."""
return self._release
@release.setter
- def release(self, x): self.setRelease(x)
\ No newline at end of file
+ def release(self, x): self.setRelease(x)
+
+class RawMidi(PyoObject):
+ """
+ Raw Midi handler.
+
+ This object calls a python function for each raw midi data
+ (status, data1, data2) event for further processing in Python.
+
+ :Parent: :py:class:`PyoObject`
+
+ :Args:
+
+ function : Python function (can't be a list)
+ Function to be called. The function must be declared
+ with three arguments, one for the status byte and two
+ for the data bytes. Ex.:
+
+ def event(status, data1, data2):
+ print status, data1, data2
+
+ .. note::
+
+ The out() method is bypassed. RawMidi's signal can not be sent
+ to audio outs.
+
+ >>> s = Server()
+ >>> s.setMidiInputDevice(99) # opens all devices
+ >>> s.boot()
+ >>> s.start()
+ >>> def event(status, data1, data2):
+ ... print status, data1, data2
+ >>> a = RawMidi(event)
+
+ """
+ def __init__(self, function):
+ pyoArgsAssert(self, "C", function)
+ PyoObject.__init__(self)
+ self._function = WeakMethod(function)
+ self._base_objs = [RawMidi_base(self._function)]
+
+ def out(self, chnl=0, inc=1, dur=0, delay=0):
+ return self.play(dur, delay)
+
+ def setMul(self, x):
+ pass
+
+ def setAdd(self, x):
+ pass
+
+ def setSub(self, x):
+ pass
+
+ def setDiv(self, x):
+ pass
+
+ def setFunction(self, x):
+ """
+ Replace the `function` attribute.
+
+ :Args:
+
+ x : Python function
+ new `function` attribute.
+
+ """
+ pyoArgsAssert(self, "C", x)
+ self._function = WeakMethod(x)
+ [obj.setFunction(self._function) for i, obj in enumerate(self._base_objs)]
+
+ @property
+ def function(self):
+ """Python function. Function to be called."""
+ return self._function
+ @function.setter
+ def function(self, x):
+ self.setFunction(x)
diff --git a/pyolib/opensndctrl.py b/pyolib/opensndctrl.py
index c92a9a5..163cd94 100644
--- a/pyolib/opensndctrl.py
+++ b/pyolib/opensndctrl.py
@@ -31,10 +31,9 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with pyo. If not, see <http://www.gnu.org/licenses/>.
"""
-import sys
from _core import *
from _maps import *
-from types import IntType, ListType
+from types import ListType
######################################################################
### Open Sound Control
@@ -77,6 +76,7 @@ class OscSend(PyoObject):
"""
def __init__(self, input, port, address, host="127.0.0.1"):
+ pyoArgsAssert(self, "oiss", input, port, address, host)
PyoObject.__init__(self)
self._input = input
self._in_fader = InputFader(input)
@@ -95,6 +95,7 @@ class OscSend(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -118,6 +119,7 @@ class OscSend(PyoObject):
Should be greater or equal to 1.
"""
+ pyoArgsAssert(self, "I", x)
[obj.setBufferRate(x) for obj in self._base_objs]
@property
@@ -169,10 +171,8 @@ class OscReceive(PyoObject):
"""
def __init__(self, port, address, mul=1, add=0):
+ pyoArgsAssert(self, "IsOO", port, address, mul, add)
PyoObject.__init__(self, mul, add)
- if type(port) != IntType:
- print >> sys.stderr, 'TypeError: "port" argument of %s must be an integer.\n' % self.__class__.__name__
- exit()
address, mul, add, lmax = convertArgsToLists(address, mul, add)
self._address = address
self._mainReceiver = OscReceiver_base(port, address)
@@ -207,6 +207,7 @@ class OscReceive(PyoObject):
Addition factor. Defaults to 0.
"""
+ pyoArgsAssert(self, "sOO", path, mul, add)
path, lmax = convertArgsToLists(path)
mul, add, lmax2 = convertArgsToLists(mul, add)
for i, p in enumerate(path):
@@ -225,6 +226,7 @@ class OscReceive(PyoObject):
Path(s) to remove.
"""
+ pyoArgsAssert(self, "s", path)
path, lmax = convertArgsToLists(path)
self._mainReceiver.delAddress(path)
indexes = [self._address.index(p) for p in path]
@@ -242,6 +244,7 @@ class OscReceive(PyoObject):
True activates the interpolation, False deactivates it.
"""
+ pyoArgsAssert(self, "B", x)
[obj.setInterpolation(x) for obj in self._base_objs]
def setValue(self, path, value):
@@ -256,6 +259,7 @@ class OscReceive(PyoObject):
Value to attribute to the given address.
"""
+ pyoArgsAssert(self, "sn", path, value)
path, value, lmax = convertArgsToLists(path, value)
for i in range(lmax):
p = wrap(path,i)
@@ -309,11 +313,17 @@ class OscDataSend(PyoObject):
types : str
String specifying the types sequence of the message to be sent.
Possible values are:
- - integer : "i"
- - long integer : "h"
- - float : "f"
- - double : "d"
- - string : "s"
+ - "i" : integer
+ - "h" : long integer
+ - "f" : float
+ - "d" : double
+ - "s" ; string
+ - "b" : blob (list of chars)
+ - "m" : MIDI packet (list of 4 bytes: [midi port, status, data1, data2])
+ - "c" : char
+ - "T" : True
+ - "F" : False
+ - "N" : None (nil)
The string "ssfi" indicates that the value to send will be a list
containing two strings followed by a float and an integer.
@@ -335,16 +345,26 @@ class OscDataSend(PyoObject):
>>> s = Server().boot()
>>> s.start()
- >>> a = OscDataSend("fissif", 9900, "/data/test")
>>> def pp(address, *args):
... print address
... print args
- >>> b = OscDataReceive(9900, "/data/test", pp)
+ >>> r = OscDataReceive(9900, "/data/test", pp)
+ >>> # Send various types
+ >>> a = OscDataSend("fissif", 9900, "/data/test")
>>> msg = [3.14159, 1, "Hello", "world!", 2, 6.18]
>>> a.send(msg)
+ >>> # Send a blob
+ >>> b = OscDataSend("b", 9900, "/data/test")
+ >>> msg = [[chr(i) for i in range(10)]]
+ >>> b.send(msg)
+ >>> # Send a MIDI noteon on port 0
+ >>> c = OscDataSend("m", 9900, "/data/test")
+ >>> msg = [[0, 144, 60, 100]]
+ >>> c.send(msg)
"""
def __init__(self, types, port, address, host="127.0.0.1"):
+ pyoArgsAssert(self, "siss", types, port, address, host)
PyoObject.__init__(self)
types, port, address, host, lmax = convertArgsToLists(types, port, address, host)
self._base_objs = [OscDataSend_base(wrap(types,i), wrap(port,i), wrap(address,i), wrap(host,i)) for i in range(lmax)]
@@ -396,6 +416,7 @@ class OscDataSend(PyoObject):
is the localhost.
"""
+ pyoArgsAssert(self, "siss", types, port, address, host)
types, port, address, host, lmax = convertArgsToLists(types, port, address, host)
objs = [OscDataSend_base(wrap(types,i), wrap(port,i), wrap(address,i), wrap(host,i)) for i in range(lmax)]
self._base_objs.extend(objs)
@@ -412,6 +433,7 @@ class OscDataSend(PyoObject):
Path(s) to remove.
"""
+ pyoArgsAssert(self, "s", path)
path, lmax = convertArgsToLists(path)
for p in path:
self._base_objs.remove(self._addresses[p])
@@ -433,8 +455,10 @@ class OscDataSend(PyoObject):
"""
if address == None:
+ pyoArgsAssert(self, "l", msg)
[obj.send(msg) for obj in self._base_objs]
else:
+ pyoArgsAssert(self, "lS", msg, address)
self._addresses[address].send(msg)
class OscDataReceive(PyoObject):
@@ -477,25 +501,29 @@ class OscDataReceive(PyoObject):
>>> s = Server().boot()
>>> s.start()
- >>> a = OscDataSend("fissif", 9900, "/data/test")
>>> def pp(address, *args):
... print address
... print args
- >>> b = OscDataReceive(9900, "/data/test", pp)
+ >>> r = OscDataReceive(9900, "/data/test", pp)
+ >>> # Send various types
+ >>> a = OscDataSend("fissif", 9900, "/data/test")
>>> msg = [3.14159, 1, "Hello", "world!", 2, 6.18]
>>> a.send(msg)
+ >>> # Send a blob
+ >>> b = OscDataSend("b", 9900, "/data/test")
+ >>> msg = [[chr(i) for i in range(10)]]
+ >>> b.send(msg)
+ >>> # Send a MIDI noteon on port 0
+ >>> c = OscDataSend("m", 9900, "/data/test")
+ >>> msg = [[0, 144, 60, 100]]
+ >>> c.send(msg)
"""
def __init__(self, port, address, function):
+ pyoArgsAssert(self, "IsC", port, address, function)
PyoObject.__init__(self)
- if type(port) != IntType:
- print >> sys.stderr, 'TypeError: "port" argument of %s must be an integer.\n' % self.__class__.__name__
- exit()
self._port = port
- if not callable(function):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
self._function = WeakMethod(function)
self._address, lmax = convertArgsToLists(address)
# self._address is linked with list at C level
@@ -527,6 +555,7 @@ class OscDataReceive(PyoObject):
New path(s) to receive from.
"""
+ pyoArgsAssert(self, "s", path)
path, lmax = convertArgsToLists(path)
for p in path:
if p not in self._address:
@@ -542,6 +571,7 @@ class OscDataReceive(PyoObject):
Path(s) to remove.
"""
+ pyoArgsAssert(self, "s", path)
path, lmax = convertArgsToLists(path)
for p in path:
index = self._address.index(p)
@@ -592,13 +622,8 @@ class OscListReceive(PyoObject):
"""
def __init__(self, port, address, num=8, mul=1, add=0):
+ pyoArgsAssert(self, "IsIOO", port, address, num, mul, add)
PyoObject.__init__(self, mul, add)
- if type(port) != IntType:
- print >> sys.stderr, 'TypeError: "port" argument of %s must be an integer.\n' % self.__class__.__name__
- exit()
- if type(num) != IntType:
- print >> sys.stderr, 'TypeError: "num" argument of %s must be an integer.\n' % self.__class__.__name__
- exit()
self._num = num
self._op_duplicate = self._num
address, mul, add, lmax = convertArgsToLists(address, mul, add)
@@ -637,6 +662,7 @@ class OscListReceive(PyoObject):
Addition factor. Defaults to 0.
"""
+ pyoArgsAssert(self, "sOO", path, mul, add)
path, lmax = convertArgsToLists(path)
mul, add, lmax2 = convertArgsToLists(mul, add)
for i, p in enumerate(path):
@@ -655,6 +681,7 @@ class OscListReceive(PyoObject):
Path(s) to remove.
"""
+ pyoArgsAssert(self, "s", path)
path, lmax = convertArgsToLists(path)
self._mainReceiver.delAddress(path)
indexes = [self._address.index(p) for p in path]
@@ -674,6 +701,7 @@ class OscListReceive(PyoObject):
True activates the interpolation, False deactivates it.
"""
+ pyoArgsAssert(self, "B", x)
[obj.setInterpolation(x) for obj in self._base_objs]
def setValue(self, path, value):
@@ -688,6 +716,7 @@ class OscListReceive(PyoObject):
List of values to attribute to the given address.
"""
+ pyoArgsAssert(self, "sl", path, value)
path, lmax = convertArgsToLists(path)
for i in range(lmax):
p = wrap(path,i)
diff --git a/pyolib/pan.py b/pyolib/pan.py
index 5175edf..9bf4900 100644
--- a/pyolib/pan.py
+++ b/pyolib/pan.py
@@ -26,7 +26,7 @@ License along with pyo. If not, see <http://www.gnu.org/licenses/>.
import sys, random
from _core import *
from _maps import *
-from types import SliceType, IntType
+from types import SliceType
class Pan(PyoObject):
"""
@@ -56,6 +56,7 @@ class Pan(PyoObject):
"""
def __init__(self, input, outs=2, pan=0.5, spread=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "oIOOOO", input, outs, pan, spread, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._pan = pan
@@ -81,6 +82,7 @@ class Pan(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -94,6 +96,7 @@ class Pan(PyoObject):
new `pan` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pan = x
x, lmax = convertArgsToLists(x)
[obj.setPan(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -108,6 +111,7 @@ class Pan(PyoObject):
new `spread` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._spread = x
x, lmax = convertArgsToLists(x)
[obj.setSpread(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -164,6 +168,7 @@ class SPan(PyoObject):
"""
def __init__(self, input, outs=2, pan=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "oIOOO", input, outs, pan, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._outs = outs
@@ -188,6 +193,7 @@ class SPan(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -201,6 +207,7 @@ class SPan(PyoObject):
new `pan` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pan = x
x, lmax = convertArgsToLists(x)
[obj.setPan(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -257,6 +264,7 @@ class Switch(PyoObject):
"""
def __init__(self, input, outs=2, voice=0., mul=1, add=0):
+ pyoArgsAssert(self, "oIOOO", input, outs, voice, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._outs = outs
@@ -281,6 +289,7 @@ class Switch(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -294,6 +303,7 @@ class Switch(PyoObject):
new `voice` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._voice = x
x, lmax = convertArgsToLists(x)
[obj.setVoice(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -343,6 +353,7 @@ class Selector(PyoObject):
"""
def __init__(self, inputs, voice=0., mul=1, add=0):
+ pyoArgsAssert(self, "lOOO", inputs, voice, mul, add)
PyoObject.__init__(self, mul, add)
self._inputs = inputs
self._voice = voice
@@ -374,6 +385,7 @@ class Selector(PyoObject):
new `inputs` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._inputs = x
for i in range(self._lmax):
for j in range(self._length):
@@ -395,6 +407,7 @@ class Selector(PyoObject):
new `voice` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._voice = x
x, lmax = convertArgsToLists(x)
for i, obj in enumerate(self._base_objs):
@@ -460,6 +473,7 @@ class VoiceManager(PyoObject):
"""
def __init__(self, input, triggers=None, mul=1, add=0):
+ #pyoArgsAssert(self, "ooOO", input, triggers, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._triggers = triggers
@@ -491,6 +505,7 @@ class VoiceManager(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -504,6 +519,7 @@ class VoiceManager(PyoObject):
New `triggers` attribute.
"""
+ #pyoArgsAssert(self, "o", x)
self._triggers = x
if x != None:
if type(x) == ListType:
@@ -577,13 +593,8 @@ class Mixer(PyoObject):
"""
def __init__(self, outs=2, chnls=1, time=0.025, mul=1, add=0):
+ pyoArgsAssert(self, "IInOO", outs, chnls, time, mul, add)
PyoObject.__init__(self, mul, add)
- if type(outs) != IntType:
- print >> sys.stderr, 'TypeError: "outs" argument of %s must be an integer.\n' % self.__class__.__name__
- exit()
- if type(chnls) != IntType:
- print >> sys.stderr, 'TypeError: "chnls" argument of %s must be an integer.\n' % self.__class__.__name__
- exit()
self._outs = outs
self._chnls = chnls
self._time = time
@@ -610,6 +621,7 @@ class Mixer(PyoObject):
New portamento duration.
"""
+ pyoArgsAssert(self, "n", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -629,6 +641,7 @@ class Mixer(PyoObject):
Audio object to add to the mixer.
"""
+ pyoArgsAssert(self, "o", input)
if voice == None:
voice = random.randint(0, 32767)
while self._inputs.has_key(voice):
diff --git a/pyolib/pattern.py b/pyolib/pattern.py
index 26549d3..8147c41 100644
--- a/pyolib/pattern.py
+++ b/pyolib/pattern.py
@@ -23,10 +23,8 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with pyo. If not, see <http://www.gnu.org/licenses/>.
"""
-import sys
from _core import *
from _maps import *
-from types import ListType, TupleType
class Pattern(PyoObject):
"""
@@ -62,15 +60,8 @@ class Pattern(PyoObject):
"""
def __init__(self, function, time=1):
+ pyoArgsAssert(self, "cO", function, time)
PyoObject.__init__(self)
- if type(function) == ListType or type(function) == TupleType:
- if not callable(function[0]):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
- else:
- if not callable(function):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
self._function = getWeakMethodRef(function)
self._time = time
function, time, lmax = convertArgsToLists(function, time)
@@ -86,6 +77,7 @@ class Pattern(PyoObject):
new `function` attribute.
"""
+ pyoArgsAssert(self, "c", x)
self._function = getWeakMethodRef(x)
x, lmax = convertArgsToLists(x)
[obj.setFunction(WeakMethod(wrap(x,i))) for i, obj in enumerate(self._base_objs)]
@@ -100,6 +92,7 @@ class Pattern(PyoObject):
New `time` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -185,6 +178,7 @@ class Score(PyoObject):
"""
def __init__(self, input, fname="event_"):
+ pyoArgsAssert(self, "os", input, fname)
PyoObject.__init__(self)
self._input = input
self._fname = fname
@@ -213,6 +207,7 @@ class Score(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -258,15 +253,8 @@ class CallAfter(PyoObject):
"""
def __init__(self, function, time=1, arg=None):
+ pyoArgsAssert(self, "cn", function, time)
PyoObject.__init__(self)
- if type(function) == ListType or type(function) == TupleType:
- if not callable(function[0]):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
- else:
- if not callable(function):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
self._function = getWeakMethodRef(function)
function, time, arg, lmax = convertArgsToLists(function, time, arg)
self._base_objs = [CallAfter_base(WeakMethod(wrap(function,i)), wrap(time,i), wrap(arg,i)) for i in range(lmax)]
diff --git a/pyolib/phasevoc.py b/pyolib/phasevoc.py
index 4afd67d..ae988d2 100644
--- a/pyolib/phasevoc.py
+++ b/pyolib/phasevoc.py
@@ -82,6 +82,7 @@ class PVAnal(PyoPVObject):
"""
def __init__(self, input, size=1024, overlaps=4, wintype=2):
+ pyoArgsAssert(self, "oiii", input, size, overlaps, wintype)
PyoPVObject.__init__(self)
self._input = input
self._size = size
@@ -103,6 +104,7 @@ class PVAnal(PyoPVObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -116,6 +118,7 @@ class PVAnal(PyoPVObject):
new `size` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._size = x
x, lmax = convertArgsToLists(x)
[obj.setSize(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -130,6 +133,7 @@ class PVAnal(PyoPVObject):
new `overlaps` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._overlaps = x
x, lmax = convertArgsToLists(x)
[obj.setOverlaps(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -212,6 +216,7 @@ class PVSynth(PyoObject):
"""
def __init__(self, input, wintype=2, mul=1, add=0):
+ pyoArgsAssert(self, "piOO", input, wintype, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._wintype = wintype
@@ -228,6 +233,7 @@ class PVSynth(PyoObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -242,6 +248,7 @@ class PVSynth(PyoObject):
new `wintype` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._wintype = x
x, lmax = convertArgsToLists(x)
[obj.setWinType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -300,6 +307,7 @@ class PVAddSynth(PyoObject):
"""
def __init__(self, input, pitch=1, num=100, first=0, inc=1, mul=1, add=0):
+ pyoArgsAssert(self, "pOiiiOO", input, pitch, num, first, inc, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._pitch = pitch
@@ -319,6 +327,7 @@ class PVAddSynth(PyoObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -333,6 +342,7 @@ class PVAddSynth(PyoObject):
new `pitch` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
[obj.setPitch(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -347,6 +357,7 @@ class PVAddSynth(PyoObject):
new `num` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._num = x
x, lmax = convertArgsToLists(x)
[obj.setNum(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -361,6 +372,7 @@ class PVAddSynth(PyoObject):
new `first` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._first = x
x, lmax = convertArgsToLists(x)
[obj.setFirst(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -375,6 +387,7 @@ class PVAddSynth(PyoObject):
new `inc` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._inc = x
x, lmax = convertArgsToLists(x)
[obj.setInc(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -442,6 +455,7 @@ class PVTranspose(PyoPVObject):
"""
def __init__(self, input, transpo=1):
+ pyoArgsAssert(self, "pO", input, transpo)
PyoPVObject.__init__(self)
self._input = input
self._transpo = transpo
@@ -458,6 +472,7 @@ class PVTranspose(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -472,6 +487,7 @@ class PVTranspose(PyoPVObject):
new `transpo` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._transpo = x
x, lmax = convertArgsToLists(x)
[obj.setTranspo(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -523,6 +539,7 @@ class PVVerb(PyoPVObject):
"""
def __init__(self, input, revtime=0.75, damp=0.75):
+ pyoArgsAssert(self, "pOO", input, revtime, damp)
PyoPVObject.__init__(self)
self._input = input
self._revtime = revtime
@@ -540,6 +557,7 @@ class PVVerb(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -554,6 +572,7 @@ class PVVerb(PyoPVObject):
new `revtime` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._revtime = x
x, lmax = convertArgsToLists(x)
[obj.setRevtime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -568,6 +587,7 @@ class PVVerb(PyoPVObject):
new `damp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._damp = x
x, lmax = convertArgsToLists(x)
[obj.setDamp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -623,6 +643,7 @@ class PVGate(PyoPVObject):
"""
def __init__(self, input, thresh=-20, damp=0.):
+ pyoArgsAssert(self, "pOO", input, thresh, damp)
PyoPVObject.__init__(self)
self._input = input
self._thresh = thresh
@@ -640,6 +661,7 @@ class PVGate(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -654,6 +676,7 @@ class PVGate(PyoPVObject):
new `thresh` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._thresh = x
x, lmax = convertArgsToLists(x)
[obj.setThresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -668,6 +691,7 @@ class PVGate(PyoPVObject):
new `damp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._damp = x
x, lmax = convertArgsToLists(x)
[obj.setDamp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -746,6 +770,7 @@ class PVCross(PyoPVObject):
"""
def __init__(self, input, input2, fade=1):
+ pyoArgsAssert(self, "ppO", input, input2, fade)
PyoPVObject.__init__(self)
self._input = input
self._input2 = input2
@@ -763,6 +788,7 @@ class PVCross(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -777,6 +803,7 @@ class PVCross(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input2 = x
x, lmax = convertArgsToLists(x)
[obj.setInput2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -787,10 +814,11 @@ class PVCross(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `fade` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._fade = x
x, lmax = convertArgsToLists(x)
[obj.setFade(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -861,6 +889,7 @@ class PVMult(PyoPVObject):
"""
def __init__(self, input, input2):
+ pyoArgsAssert(self, "pp", input, input2)
PyoPVObject.__init__(self)
self._input = input
self._input2 = input2
@@ -877,6 +906,7 @@ class PVMult(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -891,6 +921,7 @@ class PVMult(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input2 = x
x, lmax = convertArgsToLists(x)
[obj.setInput2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -957,6 +988,7 @@ class PVMorph(PyoPVObject):
"""
def __init__(self, input, input2, fade=0.5):
+ pyoArgsAssert(self, "ppO", input, input2, fade)
PyoPVObject.__init__(self)
self._input = input
self._input2 = input2
@@ -974,6 +1006,7 @@ class PVMorph(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -988,6 +1021,7 @@ class PVMorph(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input2 = x
x, lmax = convertArgsToLists(x)
[obj.setInput2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -998,10 +1032,11 @@ class PVMorph(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `fade` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._fade = x
x, lmax = convertArgsToLists(x)
[obj.setFade(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1068,6 +1103,7 @@ class PVFilter(PyoPVObject):
"""
def __init__(self, input, table, gain=1, mode=0):
+ pyoArgsAssert(self, "ptOi", input, table, gain, mode)
PyoPVObject.__init__(self)
self._input = input
self._table = table
@@ -1086,6 +1122,7 @@ class PVFilter(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1100,6 +1137,7 @@ class PVFilter(PyoPVObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1114,6 +1152,7 @@ class PVFilter(PyoPVObject):
new `gain` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._gain = x
x, lmax = convertArgsToLists(x)
[obj.setGain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1128,6 +1167,7 @@ class PVFilter(PyoPVObject):
new `mode` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._mode = x
x, lmax = convertArgsToLists(x)
[obj.setMode(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1215,6 +1255,7 @@ class PVDelay(PyoPVObject):
"""
def __init__(self, input, deltable, feedtable, maxdelay=1.0, mode=0):
+ pyoArgsAssert(self, "pttni", input, deltable, feedtable, maxdelay, mode)
PyoPVObject.__init__(self)
self._input = input
self._deltable = deltable
@@ -1234,6 +1275,7 @@ class PVDelay(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1248,6 +1290,7 @@ class PVDelay(PyoPVObject):
new `deltable` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._deltable = x
x, lmax = convertArgsToLists(x)
[obj.setDeltable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1262,6 +1305,7 @@ class PVDelay(PyoPVObject):
new `feedtable` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._feedtable = x
x, lmax = convertArgsToLists(x)
[obj.setFeedtable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1276,6 +1320,7 @@ class PVDelay(PyoPVObject):
new `mode` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._mode = x
x, lmax = convertArgsToLists(x)
[obj.setMode(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1347,6 +1392,7 @@ class PVBuffer(PyoPVObject):
"""
def __init__(self, input, index, pitch=1.0, length=1.0):
+ pyoArgsAssert(self, "poOn", input, index, pitch, length)
PyoPVObject.__init__(self)
self._input = input
self._index = index
@@ -1365,6 +1411,7 @@ class PVBuffer(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1379,6 +1426,7 @@ class PVBuffer(PyoPVObject):
new `index` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1393,6 +1441,7 @@ class PVBuffer(PyoPVObject):
new `pitch` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
[obj.setPitch(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1447,6 +1496,7 @@ class PVShift(PyoPVObject):
"""
def __init__(self, input, shift=0):
+ pyoArgsAssert(self, "pO", input, shift)
PyoPVObject.__init__(self)
self._input = input
self._shift = shift
@@ -1463,6 +1513,7 @@ class PVShift(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1473,10 +1524,11 @@ class PVShift(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `shift` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._shift = x
x, lmax = convertArgsToLists(x)
[obj.setShift(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1537,6 +1589,7 @@ class PVAmpMod(PyoPVObject):
"""
def __init__(self, input, basefreq=1, spread=0):
+ pyoArgsAssert(self, "pOO", input, basefreq, spread)
PyoPVObject.__init__(self)
self._input = input
self._basefreq = basefreq
@@ -1554,6 +1607,7 @@ class PVAmpMod(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1564,10 +1618,11 @@ class PVAmpMod(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `basefreq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._basefreq = x
x, lmax = convertArgsToLists(x)
[obj.setBasefreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1578,10 +1633,11 @@ class PVAmpMod(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `spread` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._spread = x
x, lmax = convertArgsToLists(x)
[obj.setSpread(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1660,6 +1716,7 @@ class PVFreqMod(PyoPVObject):
"""
def __init__(self, input, basefreq=1, spread=0, depth=0.1):
+ pyoArgsAssert(self, "pOOO", input, basefreq, spread, depth)
PyoPVObject.__init__(self)
self._input = input
self._basefreq = basefreq
@@ -1678,6 +1735,7 @@ class PVFreqMod(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1688,10 +1746,11 @@ class PVFreqMod(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `basefreq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._basefreq = x
x, lmax = convertArgsToLists(x)
[obj.setBasefreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1702,10 +1761,11 @@ class PVFreqMod(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `spread` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._spread = x
x, lmax = convertArgsToLists(x)
[obj.setSpread(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1716,10 +1776,11 @@ class PVFreqMod(PyoPVObject):
:Args:
- x : int
+ x : float or PyoObject
new `depth` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._depth = x
x, lmax = convertArgsToLists(x)
[obj.setDepth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1813,6 +1874,7 @@ class PVBufLoops(PyoPVObject):
"""
def __init__(self, input, low=1.0, high=1.0, mode=0, length=1.0):
+ pyoArgsAssert(self, "pOOin", input, low, high, mode, length)
PyoPVObject.__init__(self)
self._input = input
self._low = low
@@ -1832,6 +1894,7 @@ class PVBufLoops(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1846,6 +1909,7 @@ class PVBufLoops(PyoPVObject):
new `low` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._low = x
x, lmax = convertArgsToLists(x)
[obj.setLow(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1860,6 +1924,7 @@ class PVBufLoops(PyoPVObject):
new `high` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._high = x
x, lmax = convertArgsToLists(x)
[obj.setHigh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1874,6 +1939,7 @@ class PVBufLoops(PyoPVObject):
new `mode` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._mode = x
x, lmax = convertArgsToLists(x)
[obj.setMode(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1955,6 +2021,7 @@ class PVBufTabLoops(PyoPVObject):
"""
def __init__(self, input, speed, length=1.0):
+ pyoArgsAssert(self, "ptn", input, speed, length)
PyoPVObject.__init__(self)
self._input = input
self._speed = speed
@@ -1972,6 +2039,7 @@ class PVBufTabLoops(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1986,6 +2054,7 @@ class PVBufTabLoops(PyoPVObject):
new `speed` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._speed = x
x, lmax = convertArgsToLists(x)
[obj.setSpeed(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2050,6 +2119,7 @@ class PVMix(PyoPVObject):
"""
def __init__(self, input, input2):
+ pyoArgsAssert(self, "pp", input, input2)
PyoPVObject.__init__(self)
self._input = input
self._input2 = input2
@@ -2066,6 +2136,7 @@ class PVMix(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input = x
x, lmax = convertArgsToLists(x)
[obj.setInput(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2080,6 +2151,7 @@ class PVMix(PyoPVObject):
New signal to process.
"""
+ pyoArgsAssert(self, "p", x)
self._input2 = x
x, lmax = convertArgsToLists(x)
[obj.setInput2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/players.py b/pyolib/players.py
index 9812b89..3b5da47 100644
--- a/pyolib/players.py
+++ b/pyolib/players.py
@@ -83,6 +83,7 @@ class SfPlayer(PyoObject):
"""
def __init__(self, path, speed=1, loop=False, offset=0, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "sObniOO", path, speed, loop, offset, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._path = path
self._speed = speed
@@ -114,6 +115,7 @@ class SfPlayer(PyoObject):
Full path of the new sound.
"""
+ pyoArgsAssert(self, "s", path)
if type(self._path) == ListType:
curNchnls = sndinfo(self._path[0])[3]
else:
@@ -159,6 +161,7 @@ class SfPlayer(PyoObject):
new `speed` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._speed = x
x, lmax = convertArgsToLists(x)
[obj.setSpeed(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -173,6 +176,7 @@ class SfPlayer(PyoObject):
new `loop` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._loop = x
x, lmax = convertArgsToLists(x)
for i, obj in enumerate(self._base_players):
@@ -189,6 +193,7 @@ class SfPlayer(PyoObject):
new `offset` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._offset = x
x, lmax = convertArgsToLists(x)
[obj.setOffset(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -203,6 +208,7 @@ class SfPlayer(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -300,6 +306,7 @@ class SfMarkerShuffler(PyoObject):
"""
def __init__(self, path, speed=1, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "sOiOO", path, speed, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._speed = speed
self._interp = interp
@@ -330,6 +337,7 @@ class SfMarkerShuffler(PyoObject):
new `speed` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._speed = x
x, lmax = convertArgsToLists(x)
[obj.setSpeed(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -344,6 +352,7 @@ class SfMarkerShuffler(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -423,6 +432,7 @@ class SfMarkerLooper(PyoObject):
"""
def __init__(self, path, speed=1, mark=0, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "sOOiOO", path, speed, mark, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._speed = speed
self._mark = mark
@@ -454,6 +464,7 @@ class SfMarkerLooper(PyoObject):
new `speed` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._speed = x
x, lmax = convertArgsToLists(x)
[obj.setSpeed(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -468,6 +479,7 @@ class SfMarkerLooper(PyoObject):
new `mark` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._mark = x
x, lmax = convertArgsToLists(x)
[obj.setMark(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -482,6 +494,7 @@ class SfMarkerLooper(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_players)]
diff --git a/pyolib/randoms.py b/pyolib/randoms.py
index 0b79845..f3e3f68 100644
--- a/pyolib/randoms.py
+++ b/pyolib/randoms.py
@@ -21,7 +21,6 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with pyo. If not, see <http://www.gnu.org/licenses/>.
"""
-import sys
from _core import *
from _maps import *
from types import StringType, ListType
@@ -53,6 +52,7 @@ class Randi(PyoObject):
"""
def __init__(self, min=0., max=1., freq=1., mul=1, add=0):
+ pyoArgsAssert(self, "OOOOO", min, max, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._min = min
self._max = max
@@ -70,6 +70,7 @@ class Randi(PyoObject):
new `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -84,6 +85,7 @@ class Randi(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -98,7 +100,8 @@ class Randi(PyoObject):
new `freq` attribute.
"""
- self._port = x
+ pyoArgsAssert(self, "O", x)
+ self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -158,6 +161,7 @@ class Randh(PyoObject):
"""
def __init__(self, min=0., max=1., freq=1., mul=1, add=0):
+ pyoArgsAssert(self, "OOOOO", min, max, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._min = min
self._max = max
@@ -175,6 +179,7 @@ class Randh(PyoObject):
new `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -189,6 +194,7 @@ class Randh(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -203,7 +209,8 @@ class Randh(PyoObject):
new `freq` attribute.
"""
- self._port = x
+ pyoArgsAssert(self, "O", x)
+ self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -261,10 +268,8 @@ class Choice(PyoObject):
"""
def __init__(self, choice, freq=1., mul=1, add=0):
+ pyoArgsAssert(self, "lOOO", choice, freq, mul, add)
PyoObject.__init__(self, mul, add)
- if type(choice) != ListType:
- print >> sys.stderr, 'TypeError: "choice" argument of %s must be a list.\n' % self.__class__.__name__
- exit()
self._choice = choice
self._freq = freq
freq, mul, add, lmax = convertArgsToLists(freq, mul, add)
@@ -285,6 +290,7 @@ class Choice(PyoObject):
new `choice` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._choice = x
if type(x[0]) != ListType:
[obj.setChoice(self._choice) for i, obj in enumerate(self._base_objs)]
@@ -301,6 +307,7 @@ class Choice(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -349,6 +356,7 @@ class RandInt(PyoObject):
"""
def __init__(self, max=100, freq=1., mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", max, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._max = max
self._freq = freq
@@ -365,6 +373,7 @@ class RandInt(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -379,6 +388,7 @@ class RandInt(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -432,6 +442,7 @@ class RandDur(PyoObject):
"""
def __init__(self, min=0., max=1., mul=1, add=0):
+ pyoArgsAssert(self, "OOOO", min, max, mul, add)
PyoObject.__init__(self, mul, add)
self._min = min
self._max = max
@@ -448,6 +459,7 @@ class RandDur(PyoObject):
new `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -462,6 +474,7 @@ class RandDur(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -577,6 +590,7 @@ class Xnoise(PyoObject):
"""
def __init__(self, dist=0, freq=1., x1=0.5, x2=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "OOOOO", freq, x1, x2, mul, add)
PyoObject.__init__(self, mul, add)
self._dist = dist
self._freq = freq
@@ -593,7 +607,7 @@ class Xnoise(PyoObject):
:Args:
- x : int
+ x : string or int
new `dist` attribute.
"""
@@ -613,6 +627,7 @@ class Xnoise(PyoObject):
new `x1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._x1 = x
x, lmax = convertArgsToLists(x)
[obj.setX1(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -627,6 +642,7 @@ class Xnoise(PyoObject):
new `x2` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._x2 = x
x, lmax = convertArgsToLists(x)
[obj.setX2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -641,7 +657,8 @@ class Xnoise(PyoObject):
new `freq` attribute.
"""
- self._port = x
+ pyoArgsAssert(self, "O", x)
+ self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -784,6 +801,7 @@ class XnoiseMidi(PyoObject):
"""
def __init__(self, dist=0, freq=1., x1=0.5, x2=0.5, scale=0, mrange=(0,127), mul=1, add=0):
+ pyoArgsAssert(self, "OOOixOO", freq, x1, x2, scale, mrange, mul, add)
PyoObject.__init__(self, mul, add)
self._dist = dist
self._freq = freq
@@ -827,6 +845,7 @@ class XnoiseMidi(PyoObject):
new `scale` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._scale = x
x, lmax = convertArgsToLists(x)
[obj.setScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -843,6 +862,7 @@ class XnoiseMidi(PyoObject):
maximum output midi range.
"""
+ pyoArgsAssert(self, "ii", mini, maxi)
self._mrange = (mini, maxi)
mini, maxi, lmax = convertArgsToLists(mini, maxi)
[obj.setRange(wrap(mini,i), wrap(maxi,i)) for i, obj in enumerate(self._base_objs)]
@@ -857,6 +877,7 @@ class XnoiseMidi(PyoObject):
new `x1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._x1 = x
x, lmax = convertArgsToLists(x)
[obj.setX1(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -871,7 +892,8 @@ class XnoiseMidi(PyoObject):
new `x2` attribute.
"""
- self._x2= x
+ pyoArgsAssert(self, "O", x)
+ self._x2 = x
x, lmax = convertArgsToLists(x)
[obj.setX2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -885,7 +907,8 @@ class XnoiseMidi(PyoObject):
new `freq` attribute.
"""
- self._port = x
+ pyoArgsAssert(self, "O", x)
+ self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1031,6 +1054,7 @@ class XnoiseDur(PyoObject):
"""
def __init__(self, dist=0, min=0., max=1., x1=0.5, x2=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "OOOOOO", min, max, x1, x2, mul, add)
PyoObject.__init__(self, mul, add)
self._dist = dist
self._min = min
@@ -1048,7 +1072,7 @@ class XnoiseDur(PyoObject):
:Args:
- x : int
+ x : string or int
new `dist` attribute.
"""
@@ -1068,6 +1092,7 @@ class XnoiseDur(PyoObject):
new `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1082,6 +1107,7 @@ class XnoiseDur(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1096,6 +1122,7 @@ class XnoiseDur(PyoObject):
new `x1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._x1 = x
x, lmax = convertArgsToLists(x)
[obj.setX1(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1110,7 +1137,8 @@ class XnoiseDur(PyoObject):
new `x2` attribute.
"""
- self._x2= x
+ pyoArgsAssert(self, "O", x)
+ self._x2 = x
x, lmax = convertArgsToLists(x)
[obj.setX2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1194,6 +1222,7 @@ class Urn(PyoObject):
"""
def __init__(self, max=100, freq=1., mul=1, add=0):
+ pyoArgsAssert(self, "iOOO", max, freq, mul, add)
PyoObject.__init__(self, mul, add)
self._max = max
self._freq = freq
@@ -1214,6 +1243,7 @@ class Urn(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1228,6 +1258,7 @@ class Urn(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
diff --git a/pyolib/tableprocess.py b/pyolib/tableprocess.py
index e36094b..88ba328 100644
--- a/pyolib/tableprocess.py
+++ b/pyolib/tableprocess.py
@@ -62,6 +62,7 @@ class Osc(PyoObject):
"""
def __init__(self, table, freq=1000, phase=0, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "tOOiOO", table, freq, phase, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._freq = freq
@@ -80,6 +81,7 @@ class Osc(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -94,6 +96,7 @@ class Osc(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -108,6 +111,7 @@ class Osc(PyoObject):
new `phase` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._phase = x
x, lmax = convertArgsToLists(x)
[obj.setPhase(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -122,6 +126,7 @@ class Osc(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -201,6 +206,7 @@ class OscLoop(PyoObject):
"""
def __init__(self, table, freq=1000, feedback=0, mul=1, add=0):
+ pyoArgsAssert(self, "tOOOO", table, freq, feedback, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._freq = freq
@@ -218,6 +224,7 @@ class OscLoop(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -232,6 +239,7 @@ class OscLoop(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -246,6 +254,7 @@ class OscLoop(PyoObject):
new `feedback` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -315,6 +324,7 @@ class OscTrig(PyoObject):
"""
def __init__(self, table, trig, freq=1000, phase=0, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "toOOiOO", table, trig, freq, phase, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._trig = trig
@@ -334,6 +344,7 @@ class OscTrig(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -348,6 +359,7 @@ class OscTrig(PyoObject):
new `trig` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._trig = x
x, lmax = convertArgsToLists(x)
[obj.setTrig(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -362,6 +374,7 @@ class OscTrig(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -376,6 +389,7 @@ class OscTrig(PyoObject):
new `phase` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._phase = x
x, lmax = convertArgsToLists(x)
[obj.setPhase(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -390,6 +404,7 @@ class OscTrig(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -520,6 +535,7 @@ class OscBank(PyoObject):
"""
def __init__(self, table, freq=100, spread=1, slope=.9, frndf=1, frnda=0, arndf=1, arnda=0, num=24, fjit=False, mul=1, add=0):
+ pyoArgsAssert(self, "tOOOOOOOibOO", table, freq, spread, slope, frndf, frnda, arndf, arnda, num, fjit, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._freq = freq
@@ -544,6 +560,7 @@ class OscBank(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -558,6 +575,7 @@ class OscBank(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -572,6 +590,7 @@ class OscBank(PyoObject):
new `spread` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._spread = x
x, lmax = convertArgsToLists(x)
[obj.setSpread(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -586,6 +605,7 @@ class OscBank(PyoObject):
new `slope` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._slope = x
x, lmax = convertArgsToLists(x)
[obj.setSlope(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -600,6 +620,7 @@ class OscBank(PyoObject):
new `frndf` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._frndf = x
x, lmax = convertArgsToLists(x)
[obj.setFrndf(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -614,6 +635,7 @@ class OscBank(PyoObject):
new `frnda` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._frnda = x
x, lmax = convertArgsToLists(x)
[obj.setFrnda(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -628,6 +650,7 @@ class OscBank(PyoObject):
new `arndf` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._arndf = x
x, lmax = convertArgsToLists(x)
[obj.setArndf(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -642,6 +665,7 @@ class OscBank(PyoObject):
new `arnda` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._arnda = x
x, lmax = convertArgsToLists(x)
[obj.setArnda(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -656,6 +680,7 @@ class OscBank(PyoObject):
new `fjit` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._fjit = x
x, lmax = convertArgsToLists(x)
[obj.setFjit(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -782,6 +807,7 @@ class TableRead(PyoObject):
"""
def __init__(self, table, freq=1, loop=0, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "tObiOO", table, freq, loop, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._freq = freq
@@ -801,6 +827,7 @@ class TableRead(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -815,6 +842,7 @@ class TableRead(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -829,6 +857,7 @@ class TableRead(PyoObject):
new `loop` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._loop = x
x, lmax = convertArgsToLists(x)
[obj.setLoop(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -843,6 +872,7 @@ class TableRead(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -937,6 +967,7 @@ class Pulsar(PyoObject):
"""
def __init__(self, table, env, freq=100, frac=0.5, phase=0, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "ttOOOiOO", table, env, freq, frac, phase, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._env = env
@@ -957,6 +988,7 @@ class Pulsar(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -971,6 +1003,7 @@ class Pulsar(PyoObject):
new `env` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._env = x
x, lmax = convertArgsToLists(x)
[obj.setEnv(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -985,6 +1018,7 @@ class Pulsar(PyoObject):
new `freq` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._freq = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -999,6 +1033,7 @@ class Pulsar(PyoObject):
new `frac` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._frac = x
x, lmax = convertArgsToLists(x)
[obj.setFrac(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1013,6 +1048,7 @@ class Pulsar(PyoObject):
new `phase` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._phase = x
x, lmax = convertArgsToLists(x)
[obj.setPhase(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1031,6 +1067,7 @@ class Pulsar(PyoObject):
4. cubic
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1107,6 +1144,7 @@ class Pointer(PyoObject):
"""
def __init__(self, table, index, mul=1, add=0):
+ pyoArgsAssert(self, "toOO", table, index, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._index = index
@@ -1123,6 +1161,7 @@ class Pointer(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1137,6 +1176,7 @@ class Pointer(PyoObject):
new `index` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1193,6 +1233,7 @@ class Pointer2(PyoObject):
"""
def __init__(self, table, index, interp=4, autosmooth=True, mul=1, add=0):
+ pyoArgsAssert(self, "toibOO", table, index, interp, autosmooth, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._index = index
@@ -1211,6 +1252,7 @@ class Pointer2(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1225,6 +1267,7 @@ class Pointer2(PyoObject):
new `index` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1243,6 +1286,7 @@ class Pointer2(PyoObject):
4. cubic interpolation (default)
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1261,6 +1305,7 @@ class Pointer2(PyoObject):
new `autosmooth` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._autosmooth = x
x, lmax = convertArgsToLists(x)
[obj.setAutoSmooth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1322,6 +1367,7 @@ class TableIndex(PyoObject):
"""
def __init__(self, table, index, mul=1, add=0):
+ pyoArgsAssert(self, "toOO", table, index, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._index = index
@@ -1338,6 +1384,7 @@ class TableIndex(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1352,6 +1399,7 @@ class TableIndex(PyoObject):
new `index` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1402,6 +1450,7 @@ class Lookup(PyoObject):
"""
def __init__(self, table, index, mul=1, add=0):
+ pyoArgsAssert(self, "toOO", table, index, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._index = index
@@ -1418,6 +1467,7 @@ class Lookup(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1432,6 +1482,7 @@ class Lookup(PyoObject):
new `index` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._index = x
x, lmax = convertArgsToLists(x)
[obj.setIndex(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1514,6 +1565,7 @@ class TableRec(PyoObject):
"""
def __init__(self, input, table, fadetime=0):
+ pyoArgsAssert(self, "otn", input, table, fadetime)
PyoObject.__init__(self)
self._time_dummy = []
self._input = input
@@ -1551,6 +1603,7 @@ class TableRec(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1564,6 +1617,7 @@ class TableRec(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1627,6 +1681,7 @@ class TableWrite(PyoObject):
"""
def __init__(self, input, pos, table):
+ pyoArgsAssert(self, "oot", input, pos, table)
PyoObject.__init__(self)
self._input = input
self._pos = pos
@@ -1656,6 +1711,7 @@ class TableWrite(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1669,6 +1725,7 @@ class TableWrite(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1683,6 +1740,7 @@ class TableWrite(PyoObject):
new `pos` attribute.
"""
+ pyoArgsAssert(self, "o", x)
self._pos = x
x, lmax = convertArgsToLists(x)
[obj.setPos(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1746,6 +1804,7 @@ class TableMorph(PyoObject):
"""
def __init__(self, input, table, sources):
+ pyoArgsAssert(self, "otl", input, table, sources)
PyoObject.__init__(self)
self._input = input
self._table = table
@@ -1776,6 +1835,7 @@ class TableMorph(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1789,6 +1849,7 @@ class TableMorph(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1803,6 +1864,7 @@ class TableMorph(PyoObject):
new `sources` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._sources = x
self._base_sources = [source[0] for source in x]
[obj.setSources(self._base_sources) for i, obj in enumerate(self._base_objs)]
@@ -1870,6 +1932,7 @@ class Granulator(PyoObject):
"""
def __init__(self, table, env, pitch=1, pos=0, dur=.1, grains=8, basedur=.1, mul=1, add=0):
+ pyoArgsAssert(self, "ttOOOinOO", table, env, pitch, pos, dur, grains, basedur, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._env = env
@@ -1893,6 +1956,7 @@ class Granulator(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1907,6 +1971,7 @@ class Granulator(PyoObject):
new `env` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._env = x
x, lmax = convertArgsToLists(x)
[obj.setEnv(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1921,6 +1986,7 @@ class Granulator(PyoObject):
new `pitch` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
[obj.setPitch(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1935,6 +2001,7 @@ class Granulator(PyoObject):
new `pos` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pos = x
x, lmax = convertArgsToLists(x)
[obj.setPos(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1949,6 +2016,7 @@ class Granulator(PyoObject):
new `dur` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1963,6 +2031,7 @@ class Granulator(PyoObject):
new `grains` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._grains = x
x, lmax = convertArgsToLists(x)
[obj.setGrains(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1977,6 +2046,7 @@ class Granulator(PyoObject):
new `basedur` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._basedur = x
x, lmax = convertArgsToLists(x)
[obj.setBaseDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2088,6 +2158,7 @@ class TrigTableRec(PyoObject):
"""
def __init__(self, input, trig, table, fadetime=0):
+ pyoArgsAssert(self, "ootn", input, trig, table, fadetime)
PyoObject.__init__(self)
self._time_dummy = []
self._input = input
@@ -2127,6 +2198,7 @@ class TrigTableRec(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2142,6 +2214,7 @@ class TrigTableRec(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._trig = x
self._in_fader2.setInput(x, fadetime)
@@ -2155,6 +2228,7 @@ class TrigTableRec(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2245,6 +2319,7 @@ class Looper(PyoObject):
"""
def __init__(self, table, pitch=1, start=0, dur=1., xfade=20, mode=1, xfadeshape=0, startfromloop=False, interp=2, autosmooth=False, mul=1, add=0):
+ pyoArgsAssert(self, "tOOOOiibibOO", table, pitch, start, dur, xfade, mode, xfadeshape, startfromloop, interp, autosmooth, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._pitch = pitch
@@ -2271,6 +2346,7 @@ class Looper(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2285,6 +2361,7 @@ class Looper(PyoObject):
new `pitch` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
[obj.setPitch(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2299,6 +2376,7 @@ class Looper(PyoObject):
new `start` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._start = x
x, lmax = convertArgsToLists(x)
[obj.setStart(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2313,6 +2391,7 @@ class Looper(PyoObject):
new `dur` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2327,6 +2406,7 @@ class Looper(PyoObject):
new `xfade` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._xfade = x
x, lmax = convertArgsToLists(x)
[obj.setXfade(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2341,6 +2421,7 @@ class Looper(PyoObject):
new `xfadeshape` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._xfadeshape = x
x, lmax = convertArgsToLists(x)
[obj.setXfadeShape(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2355,6 +2436,7 @@ class Looper(PyoObject):
new `startfromloop` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._startfromloop = x
x, lmax = convertArgsToLists(x)
[obj.setStartFromLoop(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2369,6 +2451,7 @@ class Looper(PyoObject):
new `mode` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._mode = x
x, lmax = convertArgsToLists(x)
[obj.setMode(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2383,6 +2466,7 @@ class Looper(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2397,6 +2481,7 @@ class Looper(PyoObject):
new `autosmooth` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._autosmooth = x
x, lmax = convertArgsToLists(x)
[obj.setAutoSmooth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2539,6 +2624,7 @@ class TablePut(PyoObject):
"""
def __init__(self, input, table):
+ pyoArgsAssert(self, "ot", input, table)
PyoObject.__init__(self)
self._input = input
self._table = table
@@ -2568,6 +2654,7 @@ class TablePut(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2581,6 +2668,7 @@ class TablePut(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2641,6 +2729,7 @@ class Granule(PyoObject):
"""
def __init__(self, table, env, dens=50, pitch=1, pos=0, dur=.1, mul=1, add=0):
+ pyoArgsAssert(self, "ttOOOOOO", table, env, dens, pitch, pos, dur, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._env = env
@@ -2663,6 +2752,7 @@ class Granule(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2677,6 +2767,7 @@ class Granule(PyoObject):
new `env` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._env = x
x, lmax = convertArgsToLists(x)
[obj.setEnv(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2691,6 +2782,7 @@ class Granule(PyoObject):
new `dens` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dens = x
x, lmax = convertArgsToLists(x)
[obj.setDens(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2705,6 +2797,7 @@ class Granule(PyoObject):
new `pitch` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
[obj.setPitch(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2719,6 +2812,7 @@ class Granule(PyoObject):
new `pos` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pos = x
x, lmax = convertArgsToLists(x)
[obj.setPos(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2733,6 +2827,7 @@ class Granule(PyoObject):
new `dur` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2748,6 +2843,7 @@ class Granule(PyoObject):
while False means asynchronous.
"""
+ pyoArgsAssert(self, "b", x)
self._sync = x
x, lmax = convertArgsToLists(x)
[obj.setSync(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2832,6 +2928,7 @@ class TableScale(PyoObject):
"""
def __init__(self, table, outtable, mul=1, add=0):
+ pyoArgsAssert(self, "ttOO", table, outtable, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._outtable = outtable
@@ -2848,6 +2945,7 @@ class TableScale(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2862,6 +2960,7 @@ class TableScale(PyoObject):
new `outtable` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._outtable = x
x, lmax = convertArgsToLists(x)
[obj.setOuttable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2945,6 +3044,7 @@ class Particle(PyoObject):
"""
def __init__(self, table, env, dens=50, pitch=1, pos=0, dur=.1, dev=0.01, pan=0.5, chnls=1, mul=1, add=0):
+ pyoArgsAssert(self, "ttOOOOOOIOO", table, env, dens, pitch, pos, dur, dev, pan, chnls, mul, add)
PyoObject.__init__(self, mul, add)
self._table = table
self._env = env
@@ -2972,6 +3072,7 @@ class Particle(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -2986,6 +3087,7 @@ class Particle(PyoObject):
new `env` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._env = x
x, lmax = convertArgsToLists(x)
[obj.setEnv(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3000,6 +3102,7 @@ class Particle(PyoObject):
new `dens` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dens = x
x, lmax = convertArgsToLists(x)
[obj.setDens(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3014,6 +3117,7 @@ class Particle(PyoObject):
new `pitch` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
[obj.setPitch(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3028,6 +3132,7 @@ class Particle(PyoObject):
new `pos` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pos = x
x, lmax = convertArgsToLists(x)
[obj.setPos(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3042,6 +3147,7 @@ class Particle(PyoObject):
new `dur` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3056,6 +3162,7 @@ class Particle(PyoObject):
new `dev` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dev = x
x, lmax = convertArgsToLists(x)
[obj.setDev(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3070,6 +3177,7 @@ class Particle(PyoObject):
new `pan` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._pan = x
x, lmax = convertArgsToLists(x)
[obj.setPan(wrap(x,i)) for i, obj in enumerate(self._base_players)]
diff --git a/pyolib/tables.py b/pyolib/tables.py
index 6bdffb0..aeed3c1 100644
--- a/pyolib/tables.py
+++ b/pyolib/tables.py
@@ -52,6 +52,7 @@ class HarmTable(PyoTableObject):
"""
def __init__(self, list=[1., 0.], size=8192):
+ pyoArgsAssert(self, "lI", list, size)
PyoTableObject.__init__(self, size)
self._list = copy.deepcopy(list)
self._base_objs = [HarmTable_base(self._list, size)]
@@ -68,6 +69,7 @@ class HarmTable(PyoTableObject):
numbers 1,2,3, etc.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -102,6 +104,7 @@ class SawTable(PyoTableObject):
"""
def __init__(self, order=10, size=8192):
+ pyoArgsAssert(self, "II", order, size)
PyoTableObject.__init__(self, size)
self._order = order
list = [1./i for i in range(1,(order+1))]
@@ -117,6 +120,7 @@ class SawTable(PyoTableObject):
New number of harmonics
"""
+ pyoArgsAssert(self, "I", x)
self._order = x
list = [1./i for i in range(1,(self._order+1))]
[obj.replace(list) for obj in self._base_objs]
@@ -152,6 +156,7 @@ class SquareTable(PyoTableObject):
"""
def __init__(self, order=10, size=8192):
+ pyoArgsAssert(self, "II", order, size)
PyoTableObject.__init__(self, size)
self._order = order
list = []
@@ -172,6 +177,7 @@ class SquareTable(PyoTableObject):
New number of harmonics
"""
+ pyoArgsAssert(self, "I", x)
self._order = x
list = []
for i in range(1,(self._order*2)):
@@ -217,6 +223,7 @@ class ChebyTable(PyoTableObject):
"""
def __init__(self, list=[1., 0.], size=8192):
+ pyoArgsAssert(self, "lI", list, size)
PyoTableObject.__init__(self, size)
self._list = copy.deepcopy(list)
self._base_objs = [ChebyTable_base(self._list, size)]
@@ -234,6 +241,7 @@ class ChebyTable(PyoTableObject):
numbers 1,2,3, ..., 12. Up to 12 partials can be specified.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -277,6 +285,7 @@ class HannTable(PyoTableObject):
"""
def __init__(self, size=8192):
+ pyoArgsAssert(self, "I", size)
PyoTableObject.__init__(self, size)
self._base_objs = [HannTable_base(size)]
@@ -303,6 +312,7 @@ class SincTable(PyoTableObject):
"""
def __init__(self, freq=pi*2, windowed=False, size=8192):
+ pyoArgsAssert(self, "NBI", freq, windowed, size)
PyoTableObject.__init__(self, size)
self._freq = freq
self._windowed = windowed
@@ -318,6 +328,7 @@ class SincTable(PyoTableObject):
New frequency in radians.
"""
+ pyoArgsAssert(self, "N", x)
self._freq = x
[obj.setFreq(x) for obj in self._base_objs]
self.refreshView()
@@ -332,6 +343,7 @@ class SincTable(PyoTableObject):
New windowed flag.
"""
+ pyoArgsAssert(self, "B", x)
self._windowed = x
[obj.setWindowed(x) for obj in self._base_objs]
self.refreshView()
@@ -380,6 +392,7 @@ class WinTable(PyoTableObject):
"""
def __init__(self, type=2, size=8192):
+ pyoArgsAssert(self, "II", type, size)
PyoTableObject.__init__(self, size)
self._type = type
self._base_objs = [WinTable_base(type, size)]
@@ -394,6 +407,7 @@ class WinTable(PyoTableObject):
Windowing function.
"""
+ pyoArgsAssert(self, "I", type)
self._type = type
[obj.setType(type) for obj in self._base_objs]
self.refreshView()
@@ -428,6 +442,7 @@ class ParaTable(PyoTableObject):
"""
def __init__(self, size=8192):
+ pyoArgsAssert(self, "I", size)
PyoTableObject.__init__(self, size)
self._base_objs = [ParaTable_base(size)]
@@ -461,6 +476,7 @@ class LinTable(PyoTableObject):
"""
def __init__(self, list=[(0, 0.), (8191, 1.)], size=8192):
+ pyoArgsAssert(self, "lI", list, size)
PyoTableObject.__init__(self, size)
if size < list[-1][0]:
print "LinTable warning : size smaller than last point position."
@@ -480,6 +496,7 @@ class LinTable(PyoTableObject):
in the table. Location must be integer.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -502,6 +519,7 @@ class LinTable(PyoTableObject):
Defaults to 0.02.
"""
+ pyoArgsAssert(self, "SN", filename, tolerance)
_path, _name = os.path.split(filename)
# files = sorted([f for f in os.listdir(_path) if _name+"_" in f])
# if _name not in files: files.append(_name)
@@ -591,6 +609,7 @@ class LogTable(PyoTableObject):
"""
def __init__(self, list=[(0, 0.), (8191, 1.)], size=8192):
+ pyoArgsAssert(self, "lI", list, size)
PyoTableObject.__init__(self, size)
if size < list[-1][0]:
print "LogTable warning : size smaller than last point position."
@@ -610,6 +629,7 @@ class LogTable(PyoTableObject):
in the table. Location must be integer.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -632,6 +652,7 @@ class LogTable(PyoTableObject):
Defaults to 0.02.
"""
+ pyoArgsAssert(self, "SN", filename, tolerance)
_path, _name = os.path.split(filename)
# files = sorted([f for f in os.listdir(_path) if _name+"_" in f])
# if _name not in files: files.append(_name)
@@ -721,6 +742,7 @@ class CosLogTable(PyoTableObject):
"""
def __init__(self, list=[(0, 0.), (8191, 1.)], size=8192):
+ pyoArgsAssert(self, "lI", list, size)
PyoTableObject.__init__(self, size)
if size < list[-1][0]:
print "CosLogTable warning : size smaller than last point position."
@@ -740,6 +762,7 @@ class CosLogTable(PyoTableObject):
in the table. Location must be integer.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -762,6 +785,7 @@ class CosLogTable(PyoTableObject):
Defaults to 0.02.
"""
+ pyoArgsAssert(self, "SN", filename, tolerance)
_path, _name = os.path.split(filename)
# files = sorted([f for f in os.listdir(_path) if _name+"_" in f])
# if _name not in files: files.append(_name)
@@ -850,6 +874,7 @@ class CosTable(PyoTableObject):
"""
def __init__(self, list=[(0, 0.), (8191, 1.)], size=8192):
+ pyoArgsAssert(self, "lI", list, size)
PyoTableObject.__init__(self, size)
if size < list[-1][0]:
print "CosTable warning : size smaller than last point position."
@@ -869,6 +894,7 @@ class CosTable(PyoTableObject):
in the table. Location must be integer.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -891,6 +917,7 @@ class CosTable(PyoTableObject):
Defaults to 0.02.
"""
+ pyoArgsAssert(self, "SN", filename, tolerance)
_path, _name = os.path.split(filename)
# files = sorted([f for f in os.listdir(_path) if _name+"_" in f])
# if _name not in files: files.append(_name)
@@ -995,6 +1022,7 @@ class CurveTable(PyoTableObject):
"""
def __init__(self, list=[(0, 0.), (8191, 1.)], tension=0, bias=0, size=8192):
+ pyoArgsAssert(self, "lNNI", list, tension, bias, size)
PyoTableObject.__init__(self, size)
if size < list[-1][0]:
print "CurveTable warning : size smaller than last point position."
@@ -1017,6 +1045,7 @@ class CurveTable(PyoTableObject):
New `tension` attribute.
"""
+ pyoArgsAssert(self, "N", x)
self._tension = x
[obj.setTension(x) for obj in self._base_objs]
self.refreshView()
@@ -1034,6 +1063,7 @@ class CurveTable(PyoTableObject):
New `bias` attribute.
"""
+ pyoArgsAssert(self, "N", x)
self._bias = x
[obj.setBias(x) for obj in self._base_objs]
self.refreshView()
@@ -1049,6 +1079,7 @@ class CurveTable(PyoTableObject):
in the table. Location must be integer.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -1071,6 +1102,7 @@ class CurveTable(PyoTableObject):
Defaults to 0.02.
"""
+ pyoArgsAssert(self, "SN", filename, tolerance)
_path, _name = os.path.split(filename)
# files = sorted([f for f in os.listdir(_path) if _name+"_" in f])
# if _name not in files: files.append(_name)
@@ -1178,6 +1210,7 @@ class ExpTable(PyoTableObject):
"""
def __init__(self, list=[(0, 0.), (8192, 1.)], exp=10, inverse=True, size=8192):
+ pyoArgsAssert(self, "lNBI", list, exp, inverse, size)
PyoTableObject.__init__(self, size)
if size < list[-1][0]:
print "ExpTable warning : size smaller than last point position."
@@ -1198,6 +1231,7 @@ class ExpTable(PyoTableObject):
New `exp` attribute.
"""
+ pyoArgsAssert(self, "N", x)
self._exp = x
[obj.setExp(x) for obj in self._base_objs]
self.refreshView()
@@ -1212,6 +1246,7 @@ class ExpTable(PyoTableObject):
New `inverse` attribute.
"""
+ pyoArgsAssert(self, "B", x)
self._inverse = x
[obj.setInverse(x) for obj in self._base_objs]
self.refreshView()
@@ -1227,6 +1262,7 @@ class ExpTable(PyoTableObject):
in the table. Location must be integer.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@ -1249,6 +1285,7 @@ class ExpTable(PyoTableObject):
Defaults to 0.02.
"""
+ pyoArgsAssert(self, "SN", filename, tolerance)
_path, _name = os.path.split(filename)
# files = sorted([f for f in os.listdir(_path) if _name+"_" in f])
# if _name not in files: files.append(_name)
@@ -1736,6 +1773,7 @@ class NewTable(PyoTableObject):
"""
def __init__(self, length, chnls=1, init=None, feedback=0.0):
+ pyoArgsAssert(self, "NILN", length, chnls, init, feedback)
PyoTableObject.__init__(self)
self._length = length
self._chnls = chnls
@@ -1762,6 +1800,7 @@ class NewTable(PyoTableObject):
the list will be loaded in all tablestreams.
"""
+ pyoArgsAssert(self, "l", x)
if type(x[0]) != ListType:
x = [x]
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1777,6 +1816,7 @@ class NewTable(PyoTableObject):
New `feedback` value.
"""
+ pyoArgsAssert(self, "N", x)
self._feedback = x
[obj.setFeedback(x) for i, obj in enumerate(self._base_objs)]
@@ -1925,6 +1965,7 @@ class DataTable(PyoTableObject):
"""
def __init__(self, size, chnls=1, init=None):
+ pyoArgsAssert(self, "IIL", size, chnls, init)
PyoTableObject.__init__(self, size)
self._chnls = chnls
self._init = init
@@ -1948,6 +1989,7 @@ class DataTable(PyoTableObject):
the list will be loaded in all tablestreams.
"""
+ pyoArgsAssert(self, "l", x)
if type(x[0]) != ListType:
x = [x]
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2033,6 +2075,7 @@ class AtanTable(PyoTableObject):
"""
def __init__(self, slope=0.5, size=8192):
+ pyoArgsAssert(self, "NI", slope, size)
PyoTableObject.__init__(self, size)
self._slope = slope
self._base_objs = [AtanTable_base(slope, size)]
@@ -2047,6 +2090,7 @@ class AtanTable(PyoTableObject):
New slope between 0 and 1.
"""
+ pyoArgsAssert(self, "N", x)
self._slope = x
[obj.setSlope(x) for obj in self._base_objs]
self.refreshView()
@@ -2106,6 +2150,7 @@ class PartialTable(PyoTableObject):
"""
def __init__(self, list=[(1,1), (1.33,0.5),(1.67,0.3)], size=65536):
+ pyoArgsAssert(self, "lI", list, size)
PyoTableObject.__init__(self, size)
self._list = list
self._par_table = HarmTable(self._create_list(), size)
@@ -2139,6 +2184,7 @@ class PartialTable(PyoTableObject):
and its strength.
"""
+ pyoArgsAssert(self, "l", list)
self._list = list
[obj.replace(self._create_list()) for obj in self._base_objs]
self.normalize()
diff --git a/pyolib/triggers.py b/pyolib/triggers.py
index 0125b62..2e74fa9 100644
--- a/pyolib/triggers.py
+++ b/pyolib/triggers.py
@@ -27,7 +27,6 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with pyo. If not, see <http://www.gnu.org/licenses/>.
"""
-import sys
from _core import *
from _maps import *
from _widgets import createGraphWindow
@@ -114,6 +113,7 @@ class Metro(PyoObject):
"""
def __init__(self, time=1, poly=1):
+ pyoArgsAssert(self, "OI", time, poly)
PyoObject.__init__(self)
self._time = time
self._poly = poly
@@ -130,6 +130,7 @@ class Metro(PyoObject):
New `time` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)*self._poly) for i, obj in enumerate(self._base_objs)]
@@ -199,10 +200,8 @@ class Seq(PyoObject):
"""
def __init__(self, time=1, seq=[1], poly=1):
+ pyoArgsAssert(self, "OlI", time, seq, poly)
PyoObject.__init__(self)
- if type(seq) != ListType:
- print >> sys.stderr, 'TypeError: "seq" argument of %s must be a list.\n' % self.__class__.__name__
- exit()
self._time = time
self._seq = seq
self._poly = poly
@@ -225,6 +224,7 @@ class Seq(PyoObject):
New `time` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -239,6 +239,7 @@ class Seq(PyoObject):
New `seq` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._seq = x
if type(x[0]) != ListType:
[obj.setSeq(x) for i, obj in enumerate(self._base_players)]
@@ -317,6 +318,7 @@ class Cloud(PyoObject):
"""
def __init__(self, density=10, poly=1):
+ pyoArgsAssert(self, "OI", density, poly)
PyoObject.__init__(self)
self._density = density
self._poly = poly
@@ -334,6 +336,7 @@ class Cloud(PyoObject):
New `density` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._density = x
x, lmax = convertArgsToLists(x)
[obj.setDensity(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -431,6 +434,7 @@ class Beat(PyoObject):
"""
def __init__(self, time=.125, taps=16, w1=80, w2=50, w3=30, poly=1):
+ pyoArgsAssert(self, "OinnnI", time, taps, w1, w2, w3, poly)
PyoObject.__init__(self)
self._tap_dummy = []
self._amp_dummy = []
@@ -528,6 +532,7 @@ class Beat(PyoObject):
Memory number. 0 <= x < 32.
"""
+ pyoArgsAssert(self, "I", x)
[obj.store(x) for i, obj in enumerate(self._base_players)]
def recall(self, x):
@@ -540,6 +545,7 @@ class Beat(PyoObject):
Memory number. 0 <= x < 32.
"""
+ pyoArgsAssert(self, "I", x)
[obj.recall(x) for i, obj in enumerate(self._base_players)]
def getPresets(self):
@@ -562,6 +568,7 @@ class Beat(PyoObject):
List of presets.
"""
+ pyoArgsAssert(self, "l", x)
if len(self._base_players) == 1:
return self._base_players[0].setPresets(x)
else:
@@ -577,6 +584,7 @@ class Beat(PyoObject):
New `time` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -591,6 +599,7 @@ class Beat(PyoObject):
New `taps` attribute.
"""
+ pyoArgsAssert(self, "I", x)
self._taps = x
x, lmax = convertArgsToLists(x)
[obj.setTaps(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -605,6 +614,7 @@ class Beat(PyoObject):
New `w1` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self.setWeights(w1=x)
def setW2(self, x):
@@ -617,6 +627,7 @@ class Beat(PyoObject):
New `w2` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self.setWeights(w2=x)
def setW3(self, x):
@@ -629,6 +640,7 @@ class Beat(PyoObject):
New `w3` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self.setWeights(w3=x)
def setWeights(self, w1=None, w2=None, w3=None):
@@ -758,6 +770,7 @@ class TrigRandInt(PyoObject):
"""
def __init__(self, input, max=100., mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, max, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._max = max
@@ -777,6 +790,7 @@ class TrigRandInt(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -790,6 +804,7 @@ class TrigRandInt(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -851,6 +866,7 @@ class TrigRand(PyoObject):
"""
def __init__(self, input, min=0., max=1., port=0., init=0., mul=1, add=0):
+ pyoArgsAssert(self, "oOOnnOO", input, min, max, port, init, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._min = min
@@ -872,6 +888,7 @@ class TrigRand(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -885,6 +902,7 @@ class TrigRand(PyoObject):
new `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -899,6 +917,7 @@ class TrigRand(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -913,6 +932,7 @@ class TrigRand(PyoObject):
new `port` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._port = x
x, lmax = convertArgsToLists(x)
[obj.setPort(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -984,10 +1004,8 @@ class TrigChoice(PyoObject):
"""
def __init__(self, input, choice, port=0., init=0., mul=1, add=0):
+ pyoArgsAssert(self, "olnnOO", input, choice, port, init, mul, add)
PyoObject.__init__(self, mul, add)
- if type(choice) != ListType:
- print >> sys.stderr, 'TypeError: "choice" argument of %s must be a list.\n' % self.__class__.__name__
- exit()
self._input = input
self._choice = choice
self._port = port
@@ -1012,6 +1030,7 @@ class TrigChoice(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1025,6 +1044,7 @@ class TrigChoice(PyoObject):
new `choice` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._choice = x
if type(x[0]) != ListType:
[obj.setChoice(self._choice) for i, obj in enumerate(self._base_objs)]
@@ -1041,6 +1061,7 @@ class TrigChoice(PyoObject):
new `port` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._port = x
x, lmax = convertArgsToLists(x)
[obj.setPort(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1110,15 +1131,8 @@ class TrigFunc(PyoObject):
"""
def __init__(self, input, function, arg=None):
+ pyoArgsAssert(self, "oc", input, function)
PyoObject.__init__(self)
- if type(function) == ListType or type(function) == TupleType:
- if not callable(function[0]):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
- else:
- if not callable(function):
- print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
- exit()
self._input = input
self._function = getWeakMethodRef(function)
self._arg = arg
@@ -1147,6 +1161,7 @@ class TrigFunc(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1160,6 +1175,7 @@ class TrigFunc(PyoObject):
new `function` attribute.
"""
+ pyoArgsAssert(self, "c", x)
self._function = getWeakMethodRef(x)
x, lmax = convertArgsToLists(x)
[obj.setFunction(WeakMethod(wrap(x,i))) for i, obj in enumerate(self._base_objs)]
@@ -1240,6 +1256,7 @@ class TrigEnv(PyoObject):
"""
def __init__(self, input, table, dur=1, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "otOiOO", input, table, dur, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._table = table
@@ -1262,6 +1279,7 @@ class TrigEnv(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1275,6 +1293,7 @@ class TrigEnv(PyoObject):
new `table` attribute.
"""
+ pyoArgsAssert(self, "t", x)
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1289,6 +1308,7 @@ class TrigEnv(PyoObject):
new `dur` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1303,6 +1323,7 @@ class TrigEnv(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1376,13 +1397,8 @@ class TrigLinseg(PyoObject):
"""
def __init__(self, input, list, mul=1, add=0):
+ pyoArgsAssert(self, "olOO", input, list, mul, add)
PyoObject.__init__(self, mul, add)
- if type(list) != ListType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
- if type(list[0]) != TupleType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
self._input = input
self._list = list
self._in_fader = InputFader(input)
@@ -1405,6 +1421,7 @@ class TrigLinseg(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1418,6 +1435,7 @@ class TrigLinseg(PyoObject):
new `list` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._list = x
[obj.setList(x) for i, obj in enumerate(self._base_objs)]
@@ -1541,13 +1559,8 @@ class TrigExpseg(PyoObject):
"""
def __init__(self, input, list, exp=10, inverse=True, mul=1, add=0):
+ pyoArgsAssert(self, "olnbOO", input, list, exp, inverse, mul, add)
PyoObject.__init__(self, mul, add)
- if type(list) != ListType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
- if type(list[0]) != TupleType:
- print >> sys.stderr, 'TypeError: "list" argument of %s must be a list of tuples.\n' % self.__class__.__name__
- exit()
self._input = input
self._list = list
self._exp = exp
@@ -1572,6 +1585,7 @@ class TrigExpseg(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1585,6 +1599,7 @@ class TrigExpseg(PyoObject):
new `list` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._list = x
[obj.setList(x) for i, obj in enumerate(self._base_objs)]
@@ -1598,6 +1613,7 @@ class TrigExpseg(PyoObject):
new `exp` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._exp = x
x, lmax = convertArgsToLists(x)
[obj.setExp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1612,6 +1628,7 @@ class TrigExpseg(PyoObject):
new `inverse` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._inverse = x
x, lmax = convertArgsToLists(x)
[obj.setInverse(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1801,6 +1818,7 @@ class TrigXnoise(PyoObject):
"""
def __init__(self, input, dist=0, x1=0.5, x2=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, x1, x2, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._dist = dist
@@ -1824,6 +1842,7 @@ class TrigXnoise(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1853,6 +1872,7 @@ class TrigXnoise(PyoObject):
new `x1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._x1 = x
x, lmax = convertArgsToLists(x)
[obj.setX1(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1867,7 +1887,8 @@ class TrigXnoise(PyoObject):
new `x2` attribute.
"""
- self._x2= x
+ pyoArgsAssert(self, "O", x)
+ self._x2 = x
x, lmax = convertArgsToLists(x)
[obj.setX2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2004,6 +2025,7 @@ class TrigXnoiseMidi(PyoObject):
"""
def __init__(self, input, dist=0, x1=0.5, x2=0.5, scale=0, mrange=(0,127), mul=1, add=0):
+ pyoArgsAssert(self, "oOOixOO", input, x1, x2, scale, mrange, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._dist = dist
@@ -2029,6 +2051,7 @@ class TrigXnoiseMidi(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2063,6 +2086,7 @@ class TrigXnoiseMidi(PyoObject):
new `scale` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._scale = x
x, lmax = convertArgsToLists(x)
[obj.setScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2079,6 +2103,7 @@ class TrigXnoiseMidi(PyoObject):
maximum output midi range.
"""
+ pyoArgsAssert(self, "ii", mini, maxi)
self._mrange = (mini, maxi)
mini, maxi, lmax = convertArgsToLists(mini, maxi)
[obj.setRange(wrap(mini,i), wrap(maxi,i)) for i, obj in enumerate(self._base_objs)]
@@ -2093,6 +2118,7 @@ class TrigXnoiseMidi(PyoObject):
new `x1` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._x1 = x
x, lmax = convertArgsToLists(x)
[obj.setX1(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2107,7 +2133,8 @@ class TrigXnoiseMidi(PyoObject):
new `x2` attribute.
"""
- self._x2= x
+ pyoArgsAssert(self, "O", x)
+ self._x2 = x
x, lmax = convertArgsToLists(x)
[obj.setX2(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2190,6 +2217,7 @@ class Counter(PyoObject):
"""
def __init__(self, input, min=0, max=100, dir=0, mul=1, add=0):
+ pyoArgsAssert(self, "oiiiOO", input, min, max, dir, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._min = min
@@ -2214,6 +2242,7 @@ class Counter(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2227,6 +2256,7 @@ class Counter(PyoObject):
new `min` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2241,6 +2271,7 @@ class Counter(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2255,6 +2286,7 @@ class Counter(PyoObject):
new `dir` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._dir = x
x, lmax = convertArgsToLists(x)
[obj.setDir(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2270,6 +2302,7 @@ class Counter(PyoObject):
Value where to reset the count. Defaults to None.
"""
+ pyoArgsAssert(self, "i", x)
value, lmax = convertArgsToLists(value)
[obj.reset(wrap(value,i)) for i, obj in enumerate(self._base_objs)]
@@ -2348,6 +2381,7 @@ class Select(PyoObject):
"""
def __init__(self, input, value=0, mul=1, add=0):
+ pyoArgsAssert(self, "oiOO", input, value, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._value = value
@@ -2370,6 +2404,7 @@ class Select(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2383,6 +2418,7 @@ class Select(PyoObject):
new `value` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._value = x
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2432,6 +2468,7 @@ class Change(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -2453,6 +2490,7 @@ class Change(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2508,6 +2546,7 @@ class Thresh(PyoObject):
"""
def __init__(self, input, threshold=0., dir=0, mul=1, add=0):
+ pyoArgsAssert(self, "oOiOO", input, threshold, dir, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._threshold = threshold
@@ -2531,6 +2570,7 @@ class Thresh(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2544,6 +2584,7 @@ class Thresh(PyoObject):
new `threshold` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._threshold = x
x, lmax = convertArgsToLists(x)
[obj.setThreshold(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2558,6 +2599,7 @@ class Thresh(PyoObject):
new `dir` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._dir = x
x, lmax = convertArgsToLists(x)
[obj.setDir(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2618,6 +2660,7 @@ class Percent(PyoObject):
"""
def __init__(self, input, percent=50., mul=1, add=0):
+ pyoArgsAssert(self, "oOOO", input, percent, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._percent = percent
@@ -2640,6 +2683,7 @@ class Percent(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2653,6 +2697,7 @@ class Percent(PyoObject):
new `percent` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._percent = x
x, lmax = convertArgsToLists(x)
[obj.setPercent(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2711,6 +2756,7 @@ class Timer(PyoObject):
"""
def __init__(self, input, input2, mul=1, add=0):
+ pyoArgsAssert(self, "ooOO", input, input2, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._input2 = input2
@@ -2731,6 +2777,7 @@ class Timer(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2746,6 +2793,7 @@ class Timer(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input2 = x
self._in_fader2.setInput(x, fadetime)
@@ -2794,10 +2842,8 @@ class Iter(PyoObject):
"""
def __init__(self, input, choice, init=0., mul=1, add=0):
+ pyoArgsAssert(self, "olnOO", input, choice, init, mul, add)
PyoObject.__init__(self, mul, add)
- if type(choice) != ListType:
- print >> sys.stderr, 'TypeError: "choice" argument of %s must be a list.\n' % self.__class__.__name__
- exit()
self._input = input
self._choice = choice
self._in_fader = InputFader(input)
@@ -2821,6 +2867,7 @@ class Iter(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2834,6 +2881,7 @@ class Iter(PyoObject):
new `choice` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._choice = x
if type(x[0]) != ListType:
[obj.setChoice(self._choice) for i, obj in enumerate(self._base_objs)]
@@ -2850,6 +2898,7 @@ class Iter(PyoObject):
Value where to reset the count. Defaults to 0.
"""
+ pyoArgsAssert(self, "I", x)
[obj.reset(x) for obj in self._base_objs]
@property
@@ -2896,6 +2945,7 @@ class Count(PyoObject):
"""
def __init__(self, input, min=0, max=0, mul=1, add=0):
+ pyoArgsAssert(self, "oiiOO", input, min, max, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._min = min
@@ -2916,6 +2966,7 @@ class Count(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -2929,6 +2980,7 @@ class Count(PyoObject):
new `min` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -2943,6 +2995,7 @@ class Count(PyoObject):
new `max` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3007,6 +3060,7 @@ class NextTrig(PyoObject):
"""
def __init__(self, input, input2, mul=1, add=0):
+ pyoArgsAssert(self, "ooOO", input, input2, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._input2 = input2
@@ -3027,6 +3081,7 @@ class NextTrig(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3042,6 +3097,7 @@ class NextTrig(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input2 = x
self._in_fader2.setInput(x, fadetime)
@@ -3094,6 +3150,7 @@ class TrigVal(PyoObject):
"""
def __init__(self, input, value=0., init=0., mul=1, add=0):
+ pyoArgsAssert(self, "oOnOO", input, value, init, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._value = value
@@ -3113,6 +3170,7 @@ class TrigVal(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3126,6 +3184,7 @@ class TrigVal(PyoObject):
new `value` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._value = x
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -3209,6 +3268,7 @@ class Euclide(PyoObject):
"""
def __init__(self, time=.125, taps=16, onsets=10, poly=1):
+ pyoArgsAssert(self, "OiiI", time, taps, onsets, poly)
PyoObject.__init__(self)
self._tap_dummy = []
self._amp_dummy = []
@@ -3305,6 +3365,7 @@ class Euclide(PyoObject):
New `time` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3319,6 +3380,7 @@ class Euclide(PyoObject):
New `taps` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._taps = x
x, onsets, lmax = convertArgsToLists(x, self._onsets)
for i in range(len(self._base_players)):
@@ -3336,6 +3398,7 @@ class Euclide(PyoObject):
New `onsets` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._onsets = x
x, taps, lmax = convertArgsToLists(x, self._taps)
for i in range(len(self._base_players)):
@@ -3466,6 +3529,7 @@ class TrigBurst(PyoObject):
"""
def __init__(self, input, time=.25, count=10, expand=1.0, ampfade=1.0, poly=1):
+ pyoArgsAssert(self, "oOinnI", input, time, count, expand, ampfade, poly)
PyoObject.__init__(self)
self._tap_dummy = []
self._amp_dummy = []
@@ -3545,6 +3609,7 @@ class TrigBurst(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -3558,6 +3623,7 @@ class TrigBurst(PyoObject):
New `time` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3572,6 +3638,7 @@ class TrigBurst(PyoObject):
New `count` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._count = x
x, lmax = convertArgsToLists(x)
[obj.setCount(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3582,10 +3649,11 @@ class TrigBurst(PyoObject):
:Args:
- x : int
+ x : float
New `expand` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._expand = x
x, lmax = convertArgsToLists(x)
[obj.setExpand(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@ -3596,10 +3664,11 @@ class TrigBurst(PyoObject):
:Args:
- x : int
+ x : float
New `ampfade` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._ampfade = x
x, lmax = convertArgsToLists(x)
[obj.setAmpfade(wrap(x,i)) for i, obj in enumerate(self._base_players)]
diff --git a/pyolib/utils.py b/pyolib/utils.py
index 6683ce7..9cfc841 100644
--- a/pyolib/utils.py
+++ b/pyolib/utils.py
@@ -98,6 +98,7 @@ class Print(PyoObject):
"""
def __init__(self, input, method=0, interval=0.25, message=""):
+ pyoArgsAssert(self, "oins", input, method, interval, message)
PyoObject.__init__(self)
self._input = input
self._method = method
@@ -119,6 +120,7 @@ class Print(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -132,6 +134,7 @@ class Print(PyoObject):
New `method` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._method = x
x, lmax = convertArgsToLists(x)
[obj.setMethod(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -146,6 +149,7 @@ class Print(PyoObject):
New `interval` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._interval = x
x, lmax = convertArgsToLists(x)
[obj.setInterval(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -160,6 +164,7 @@ class Print(PyoObject):
New `message` attribute.
"""
+ pyoArgsAssert(self, "s", x)
self._message = x
x, lmax = convertArgsToLists(x)
[obj.setMessage(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -236,10 +241,8 @@ class Snap(PyoObject):
"""
def __init__(self, input, choice, scale=0, mul=1, add=0):
+ pyoArgsAssert(self, "oliOO", input, choice, scale, mul, add)
PyoObject.__init__(self, mul, add)
- if type(choice) != ListType:
- print >> sys.stderr, 'TypeError: "choice" argument of %s must be a list.\n' % self.__class__.__name__
- exit()
self._input = input
self._choice = choice
self._scale = scale
@@ -264,6 +267,7 @@ class Snap(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -277,6 +281,7 @@ class Snap(PyoObject):
new `choice` attribute.
"""
+ pyoArgsAssert(self, "l", x)
self._choice = x
[obj.setChoice(x) for i, obj in enumerate(self._base_objs)]
@@ -295,6 +300,7 @@ class Snap(PyoObject):
new `scale` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._scale = x
x, lmax = convertArgsToLists(x)
[obj.setScale(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -346,6 +352,7 @@ class Interp(PyoObject):
"""
def __init__(self, input, input2, interp=0.5, mul=1, add=0):
+ pyoArgsAssert(self, "ooOOO", input, input2, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._input2 = input2
@@ -367,6 +374,7 @@ class Interp(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -382,6 +390,7 @@ class Interp(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input2 = x
self._in_fader2.setInput(x, fadetime)
@@ -395,6 +404,7 @@ class Interp(PyoObject):
New `interp` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -452,6 +462,7 @@ class SampHold(PyoObject):
"""
def __init__(self, input, controlsig, value=0.0, mul=1, add=0):
+ pyoArgsAssert(self, "ooOOO", input, controlsig, value, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._controlsig = controlsig
@@ -473,6 +484,7 @@ class SampHold(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -488,6 +500,7 @@ class SampHold(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._controlsig = x
self._in_fader2.setInput(x, fadetime)
@@ -501,6 +514,7 @@ class SampHold(PyoObject):
New `value` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._value = x
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -601,6 +615,7 @@ class Record(PyoObject):
"""
def __init__(self, input, filename, chnls=2, fileformat=0, sampletype=0, buffering=4):
+ pyoArgsAssert(self, "oSIIII", input, filename, chnls, fileformat, sampletype, buffering)
PyoObject.__init__(self)
self._input = input
self._in_fader = InputFader(input)
@@ -630,6 +645,7 @@ class Record(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -664,6 +680,7 @@ class Denorm(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -682,6 +699,7 @@ class Denorm(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -759,6 +777,7 @@ class ControlRec(PyoObject):
"""
def __init__(self, input, filename, rate=1000, dur=0.0):
+ pyoArgsAssert(self, "oSIN", input, filename, rate, dur)
PyoObject.__init__(self)
self._input = input
self._filename = filename
@@ -839,6 +858,7 @@ class ControlRead(PyoObject):
"""
def __init__(self, filename, rate=1000, loop=False, interp=2, mul=1, add=0):
+ pyoArgsAssert(self, "SIBIOO", filename, rate, loop, interp, mul, add)
PyoObject.__init__(self, mul, add)
self._filename = filename
self._path, self._name = os.path.split(filename)
@@ -869,6 +889,7 @@ class ControlRead(PyoObject):
new `rate` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._rate = x
x, lmax = convertArgsToLists(x)
[obj.setRate(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -883,6 +904,7 @@ class ControlRead(PyoObject):
new `loop` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._loop = x
x, lmax = convertArgsToLists(x)
[obj.setLoop(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -897,6 +919,7 @@ class ControlRead(PyoObject):
new `interp` attribute.
"""
+ pyoArgsAssert(self, "i", x)
self._interp = x
x, lmax = convertArgsToLists(x)
[obj.setInterp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -976,6 +999,7 @@ class NoteinRec(PyoObject):
"""
def __init__(self, input, filename):
+ pyoArgsAssert(self, "oS", input, filename)
PyoObject.__init__(self)
self._input = input
self._filename = filename
@@ -1045,6 +1069,7 @@ class NoteinRead(PyoObject):
"""
def __init__(self, filename, loop=False, mul=1, add=0):
+ pyoArgsAssert(self, "SBOO", filename, loop, mul, add)
PyoObject.__init__(self, mul, add)
self._pitch_dummy = []
self._velocity_dummy = []
@@ -1119,6 +1144,7 @@ class NoteinRead(PyoObject):
new `loop` attribute.
"""
+ pyoArgsAssert(self, "b", x)
self._loop = x
x, lmax = convertArgsToLists(x)
[obj.setLoop(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1155,6 +1181,7 @@ class DBToA(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1173,6 +1200,7 @@ class DBToA(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1209,6 +1237,7 @@ class AToDB(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1227,6 +1256,7 @@ class AToDB(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1274,6 +1304,7 @@ class Scale(PyoObject):
"""
def __init__(self, input, inmin=0, inmax=1, outmin=0, outmax=1, exp=1, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOOnOO", input, inmin, inmax, outmin, outmax, exp, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._inmin = inmin
@@ -1297,6 +1328,7 @@ class Scale(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1310,6 +1342,7 @@ class Scale(PyoObject):
New `inmin` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._inmin = x
x, lmax = convertArgsToLists(x)
[obj.setInMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1324,6 +1357,7 @@ class Scale(PyoObject):
New `inmax` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._inmax = x
x, lmax = convertArgsToLists(x)
[obj.setInMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1338,6 +1372,7 @@ class Scale(PyoObject):
New `outmin` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._outmin = x
x, lmax = convertArgsToLists(x)
[obj.setOutMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1352,6 +1387,7 @@ class Scale(PyoObject):
New `outmax` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._outmax = x
x, lmax = convertArgsToLists(x)
[obj.setOutMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1366,6 +1402,7 @@ class Scale(PyoObject):
New `exp` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._exp = x
x, lmax = convertArgsToLists(x)
[obj.setExp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1444,6 +1481,7 @@ class CentsToTranspo(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1462,6 +1500,7 @@ class CentsToTranspo(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1496,6 +1535,7 @@ class TranspoToCents(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1514,6 +1554,7 @@ class TranspoToCents(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1548,6 +1589,7 @@ class MToF(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1566,6 +1608,7 @@ class MToF(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1603,6 +1646,7 @@ class FToM(PyoObject):
"""
def __init__(self, input, mul=1, add=0):
+ pyoArgsAssert(self, "oOO", input, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@ -1621,6 +1665,7 @@ class FToM(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1661,6 +1706,7 @@ class MToT(PyoObject):
"""
def __init__(self, input, centralkey=60.0, mul=1, add=0):
+ pyoArgsAssert(self, "onOO", input, centralkey, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._centralkey = centralkey
@@ -1680,6 +1726,7 @@ class MToT(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1693,6 +1740,7 @@ class MToT(PyoObject):
New `centralkey` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self._centralkey = x
x, lmax = convertArgsToLists(x)
[obj.setCentralKey(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1737,6 +1785,7 @@ class Between(PyoObject):
"""
def __init__(self, input, min=-1.0, max=1.0, mul=1, add=0):
+ pyoArgsAssert(self, "oOOOO", input, min, max, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._min = min
@@ -1757,6 +1806,7 @@ class Between(PyoObject):
Crossfade time between old and new input. Defaults to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1770,6 +1820,7 @@ class Between(PyoObject):
New `min` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._min = x
x, lmax = convertArgsToLists(x)
[obj.setMin(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1784,6 +1835,7 @@ class Between(PyoObject):
New `max` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._max = x
x, lmax = convertArgsToLists(x)
[obj.setMax(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@ -1843,6 +1895,7 @@ class TrackHold(PyoObject):
"""
def __init__(self, input, controlsig, value=0.0, mul=1, add=0):
+ pyoArgsAssert(self, "ooOOO", input, controlsig, value, mul, add)
PyoObject.__init__(self, mul, add)
self._input = input
self._controlsig = controlsig
@@ -1864,6 +1917,7 @@ class TrackHold(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._input = x
self._in_fader.setInput(x, fadetime)
@@ -1879,6 +1933,7 @@ class TrackHold(PyoObject):
Crossfade time between old and new input. Default to 0.05.
"""
+ pyoArgsAssert(self, "oN", x, fadetime)
self._controlsig = x
self._in_fader2.setInput(x, fadetime)
@@ -1892,6 +1947,7 @@ class TrackHold(PyoObject):
New `value` attribute.
"""
+ pyoArgsAssert(self, "O", x)
self._value = x
x, lmax = convertArgsToLists(x)
[obj.setValue(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
diff --git a/scripts/release_doc_src.sh b/scripts/release_doc_src.sh
index 128bf69..0c9caa2 100644
--- a/scripts/release_doc_src.sh
+++ b/scripts/release_doc_src.sh
@@ -6,7 +6,7 @@
# 3. Execute from pyo folder : ./scripts/release_doc_src.sh
#
-version=0.7.5
+version=0.7.6
replace=XXX
doc_rep=pyo_XXX-doc
diff --git a/scripts/win/windows-7-build-routine.txt b/scripts/win/windows-7-build-routine.txt
index f2b08c2..84e74ec 100644
--- a/scripts/win/windows-7-build-routine.txt
+++ b/scripts/win/windows-7-build-routine.txt
@@ -1,16 +1,17 @@
=== STEP 1 ===
---- Install Python (2.6 and 2.7)
+--- Install Python 2.6 and 2.7.10 and WxPython 3.0.2.0 for each version
-=== STEP 2 ===
+=== STEP 2 (should be git soon) ===
--- Install Slick SVN 1.8.10
http://www.sliksvn.com
=== STEP 3 ===
---- Install scons 2.3.2 in the Python site-packages:
+--- Install scons 2.3.5 in the Python site-packages:
http://www.scons.org/download.php
=== STEP 4 ===
---- Install MinGW (minimalist) from sourceforge
+--- Install MinGW (minimalist GNU for Windows) from sourceforge
+--- Add ";C:\MinGW\bin;C:\MinGW\mingw32\bin" to the PATH variable
=== STEP 5 ===
--- Install pthreads (just copy files from ftp):
@@ -25,6 +26,9 @@ Do not build from sources.
=== STEP 7 ===
--- Update liblo tag 0.26 from the tarball at http://liblo.sourceforge.net (not SVN!),
copy build/config-msvc.h --> src/config.h,
+
+If there is a conflict about struct timespec, remove the definition in pthread.h.
+
and build with this SConstruct:
# S C O N S T R U C T F O R L I B L O . D L L
@@ -81,7 +85,7 @@ Try the trunk version first, if that doesn't work use the most recent tag.
--- Copy ASIOSDK to portaudio/src/hostapi/asio
--- Check the pa_win_hostapis.c file and make sure that it is configured to build
-the DirectSound, WMME, and ASIO drivers:
+the DirectSound, WMME, and ASIO drivers. (nothing to do here)
--- Need to removed "volatile" from function definitions in MinGW/include/winbase.h
@@ -120,7 +124,7 @@ commonEnvironment.Append(CPPPATH = [".", "src/common", "src/hostapi", "src/os",
"C:/portaudio/src/hostapi/asio/ASIOSDK/host",
"C:/portaudio/src/hostapi/asio/ASIOSDK/host/pc",
"C:/portaudio/src/hostapi/asio/ASIOSDK/common",
-"C:/Program Files/Microsoft DirectX SDK (April 2007)/Include"])
+"C:/Program Files (x86)/Microsoft DirectX SDK (April 2007)/Include"])
commonEnvironment.Append(LIBS=Split('''
setupapi
@@ -175,7 +179,7 @@ portAudio = commonEnvironment.SharedLibrary('portaudio', portAudioSources)
##########################################################################
=== STEP 11 ===
-4 --- Update the PortMidi library http://portmedia.sourceforge.net from SVN and build it with this SConstruct:
+--- Update the PortMidi library http://portmedia.sourceforge.net from SVN and build it with this SConstruct:
'''
MinGW SConstruct for PortMidi
@@ -259,8 +263,6 @@ Depends(test, portmidi)
[build]
compiler = mingw32
-*** For Python 2.5, comment line 428 to 434 in Python25/include/pyconfig.py
-
=== STEP 13 ===
--- Download pyo sources from svn and build it with:
diff --git a/setup.py b/setup.py
index 2e5c607..2f2c75f 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@ from distutils.core import setup, Extension
import os, sys, getopt
import time
-pyo_version = "0.7.5"
+pyo_version = "0.7.6"
build_osx_with_jack_support = False
compile_externals = False
@@ -88,10 +88,10 @@ else:
# Platform-specific build settings for the pyo extension(s).
if sys.platform == "win32":
- include_dirs = ['C:\portaudio\include', 'C:\Program Files\Mega-Nerd\libsndfile\include',
+ include_dirs = ['C:\portaudio\include', 'C:\Program Files (x86)\Mega-Nerd\libsndfile\include',
'C:\portmidi\pm_common', 'C:\liblo', 'C:\pthreads\include', 'include',
'C:\portmidi\porttime']
- library_dirs = ['C:\portaudio', 'C:/Program Files/Mega-Nerd/libsndfile/bin', 'C:\portmidi', 'C:\liblo', 'C:\pthreads\lib']
+ library_dirs = ['C:\portaudio', 'C:/Program Files (x86)/Mega-Nerd/libsndfile/bin', 'C:\portmidi', 'C:\liblo', 'C:\pthreads\lib']
libraries = ['portaudio', 'portmidi', 'porttime', 'libsndfile-1', 'lo', 'pthreadVC2']
else:
tsrt = time.strftime('"%d %b %Y %H:%M:%S"', time.localtime())
diff --git a/src/engine/pyomodule.c b/src/engine/pyomodule.c
index a7a2f89..88b37e4 100644
--- a/src/engine/pyomodule.c
+++ b/src/engine/pyomodule.c
@@ -2550,6 +2550,7 @@ init_pyo64(void)
module_add_object(m, "MainParticle_base", &MainParticleType);
module_add_object(m, "Particle_base", &ParticleType);
module_add_object(m, "AtanTable_base", &AtanTableType);
+ module_add_object(m, "RawMidi_base", &RawMidiType);
PyModule_AddStringConstant(m, "PYO_VERSION", PYO_VERSION);
#ifdef COMPILE_EXTERNALS
diff --git a/src/objects/analysismodule.c b/src/objects/analysismodule.c
index a9cfe9a..1ad618b 100644
--- a/src/objects/analysismodule.c
+++ b/src/objects/analysismodule.c
@@ -1698,7 +1698,10 @@ Centroid_process_i(Centroid *self) {
sum1 += tmp * i;
sum2 += tmp;
}
- tmp = sum1 / sum2;
+ if (sum2 < 0.000000001)
+ tmp = 0.0;
+ else
+ tmp = sum1 / sum2;
self->centroid += tmp * self->sr / self->size;
self->centroid *= 0.5;
for (i=0; i<self->hsize; i++) {
diff --git a/src/objects/midimodule.c b/src/objects/midimodule.c
index 3f20b29..0bf5a3d 100644
--- a/src/objects/midimodule.c
+++ b/src/objects/midimodule.c
@@ -3586,3 +3586,168 @@ PyTypeObject MidiDelAdsrType = {
0, /* tp_alloc */
MidiDelAdsr_new, /* tp_new */
};
+
+typedef struct {
+ pyo_audio_HEAD
+ PyObject *callable;
+} RawMidi;
+
+static void
+RawMidi_setProcMode(RawMidi *self) {}
+
+static void
+RawMidi_compute_next_data_frame(RawMidi *self)
+{
+ PmEvent *buffer;
+ int i, count, status, data1, data2;
+
+ buffer = Server_getMidiEventBuffer((Server *)self->server);
+ count = Server_getMidiEventCount((Server *)self->server);
+
+ if (count > 0) {
+ PyObject *tup;
+ for (i=count-1; i>=0; i--) {
+ status = Pm_MessageStatus(buffer[i].message); // Temp note event holders
+ data1 = Pm_MessageData1(buffer[i].message);
+ data2 = Pm_MessageData2(buffer[i].message);
+ tup = PyTuple_New(3);
+ PyTuple_SetItem(tup, 0, PyInt_FromLong(status));
+ PyTuple_SetItem(tup, 1, PyInt_FromLong(data1));
+ PyTuple_SetItem(tup, 2, PyInt_FromLong(data2));
+ PyObject_Call((PyObject *)self->callable, tup, NULL);
+ }
+ }
+}
+
+static int
+RawMidi_traverse(RawMidi *self, visitproc visit, void *arg)
+{
+ pyo_VISIT
+ Py_VISIT(self->callable);
+ return 0;
+}
+
+static int
+RawMidi_clear(RawMidi *self)
+{
+ pyo_CLEAR
+ Py_CLEAR(self->callable);
+ return 0;
+}
+
+static void
+RawMidi_dealloc(RawMidi* self)
+{
+ pyo_DEALLOC
+ RawMidi_clear(self);
+ self->ob_type->tp_free((PyObject*)self);
+}
+
+static PyObject *
+RawMidi_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+ int i;
+ PyObject *calltmp=NULL;
+ RawMidi *self;
+ self = (RawMidi *)type->tp_alloc(type, 0);
+
+ INIT_OBJECT_COMMON
+ Stream_setFunctionPtr(self->stream, RawMidi_compute_next_data_frame);
+ self->mode_func_ptr = RawMidi_setProcMode;
+
+ static char *kwlist[] = {"callable", NULL};
+
+ if (! PyArg_ParseTupleAndKeywords(args, kwds, "O", kwlist, &calltmp))
+ Py_RETURN_NONE;
+
+ if (calltmp) {
+ PyObject_CallMethod((PyObject *)self, "setFunction", "O", calltmp);
+ }
+
+ PyObject_CallMethod(self->server, "addStream", "O", self->stream);
+
+ return (PyObject *)self;
+}
+
+static PyObject * RawMidi_getServer(RawMidi* self) { GET_SERVER };
+static PyObject * RawMidi_getStream(RawMidi* self) { GET_STREAM };
+
+static PyObject * RawMidi_play(RawMidi *self, PyObject *args, PyObject *kwds) { PLAY };
+static PyObject * RawMidi_stop(RawMidi *self) { STOP };
+
+static PyObject *
+RawMidi_setFunction(RawMidi *self, PyObject *arg)
+{
+ PyObject *tmp;
+
+ if (! PyCallable_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError, "The callable attribute must be a valid Python function.");
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
+ tmp = arg;
+ Py_XDECREF(self->callable);
+ Py_INCREF(tmp);
+ self->callable = tmp;
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+static PyMemberDef RawMidi_members[] = {
+ {"server", T_OBJECT_EX, offsetof(RawMidi, server), 0, "Pyo server."},
+ {"stream", T_OBJECT_EX, offsetof(RawMidi, stream), 0, "Stream object."},
+ {NULL} /* Sentinel */
+};
+
+static PyMethodDef RawMidi_methods[] = {
+ {"getServer", (PyCFunction)RawMidi_getServer, METH_NOARGS, "Returns server object."},
+ {"_getStream", (PyCFunction)RawMidi_getStream, METH_NOARGS, "Returns stream object."},
+ {"play", (PyCFunction)RawMidi_play, METH_VARARGS|METH_KEYWORDS, "Starts computing without sending sound to soundcard."},
+ {"stop", (PyCFunction)RawMidi_stop, METH_NOARGS, "Stops computing."},
+ {"setFunction", (PyCFunction)RawMidi_setFunction, METH_O, "Sets the function to be called."},
+ {NULL} /* Sentinel */
+};
+
+PyTypeObject RawMidiType = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /*ob_size*/
+ "_pyo.RawMidi_base", /*tp_name*/
+ sizeof(RawMidi), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ (destructor)RawMidi_dealloc, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare*/
+ 0, /*tp_repr*/
+ 0, /*tp_as_number*/
+ 0, /*tp_as_sequence*/
+ 0, /*tp_as_mapping*/
+ 0, /*tp_hash */
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ 0, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_CHECKTYPES, /*tp_flags*/
+ "RawMidi objects. Calls a function with midi data as arguments.", /* tp_doc */
+ (traverseproc)RawMidi_traverse, /* tp_traverse */
+ (inquiry)RawMidi_clear, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ RawMidi_methods, /* tp_methods */
+ RawMidi_members, /* tp_members */
+ 0, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ RawMidi_new, /* tp_new */
+};
diff --git a/src/objects/oscmodule.c b/src/objects/oscmodule.c
index 569029c..e40c8cc 100644
--- a/src/objects/oscmodule.c
+++ b/src/objects/oscmodule.c
@@ -736,7 +736,13 @@ typedef struct {
static void
OscDataSend_compute_next_data_frame(OscDataSend *self)
{
- int i;
+ int i, j = 0;
+ Py_ssize_t blobsize = 0;
+ PyObject *datalist = NULL;
+ char *blobdata = NULL;
+ uint8_t midi[4];
+ lo_blob *blob = NULL;
+
lo_message *msg;
char *path = PyString_AsString(self->address_path);
@@ -746,19 +752,48 @@ OscDataSend_compute_next_data_frame(OscDataSend *self)
for (i=0; i<self->num_items; i++) {
switch (self->types[i]) {
case LO_INT32:
- lo_message_add_int32(msg, PyInt_AsLong(PyList_GetItem(self->value, i)));
+ lo_message_add_int32(msg, PyInt_AS_LONG(PyList_GET_ITEM(self->value, i)));
break;
case LO_INT64:
- lo_message_add_int64(msg, (long)PyLong_AsLong(PyList_GetItem(self->value, i)));
+ lo_message_add_int64(msg, (long)PyLong_AsLong(PyList_GET_ITEM(self->value, i)));
break;
case LO_FLOAT:
- lo_message_add_float(msg, PyFloat_AsDouble(PyList_GetItem(self->value, i)));
+ lo_message_add_float(msg, PyFloat_AS_DOUBLE(PyList_GET_ITEM(self->value, i)));
break;
case LO_DOUBLE:
- lo_message_add_double(msg, (double)PyFloat_AsDouble(PyList_GetItem(self->value, i)));
+ lo_message_add_double(msg, (double)PyFloat_AS_DOUBLE(PyList_GET_ITEM(self->value, i)));
break;
case LO_STRING:
- lo_message_add_string(msg, PyString_AsString(PyList_GetItem(self->value, i)));
+ lo_message_add_string(msg, PyString_AsString(PyList_GET_ITEM(self->value, i)));
+ break;
+ case LO_CHAR:
+ lo_message_add_char(msg, (char)PyString_AsString(PyList_GET_ITEM(self->value, i))[0]);
+ break;
+ case LO_BLOB:
+ datalist = PyList_GET_ITEM(self->value, i);
+ blobsize = PyList_Size(datalist);
+ blobdata = (char *)malloc(blobsize * sizeof(char));
+ for (j=0; j<blobsize; j++) {
+ blobdata[j] = (char)PyString_AsString(PyList_GET_ITEM(datalist, j))[0];
+ }
+ blob = lo_blob_new(blobsize * sizeof(char), blobdata);
+ lo_message_add_blob(msg, blob);
+ break;
+ case LO_MIDI:
+ datalist = PyList_GET_ITEM(self->value, i);
+ for (j=0; j<4; j++) {
+ midi[j] = (uint8_t)PyInt_AS_LONG(PyList_GET_ITEM(datalist, j));
+ }
+ lo_message_add_midi(msg, midi);
+ break;
+ case LO_NIL:
+ lo_message_add_nil(msg);
+ break;
+ case LO_TRUE:
+ lo_message_add_true(msg);
+ break;
+ case LO_FALSE:
+ lo_message_add_false(msg);
break;
default:
break;
@@ -769,8 +804,11 @@ OscDataSend_compute_next_data_frame(OscDataSend *self)
}
self->something_to_send = 0;
lo_message_free(msg);
+ if (blob != NULL)
+ lo_blob_free(blob);
+ if (blobdata != NULL)
+ free(blobdata);
}
-
}
static int
@@ -861,7 +899,7 @@ OscDataSend_send(OscDataSend *self, PyObject *arg)
self->something_to_send = 1;
}
else
- printf("argument to send() method must be a tuple of values.\n");
+ printf("argument to send() method must be a list of values.\n");
Py_INCREF(Py_None);
return Py_None;
@@ -938,35 +976,71 @@ int OscDataReceive_handler(const char *path, const char *types, lo_arg **argv, i
{
OscDataReceive *self = user_data;
PyObject *tup, *result=NULL;
+ lo_blob *blob = NULL;
+ char *blobdata = NULL;
+ uint32_t blobsize = 0;
+ PyObject *charlist = NULL;
tup = PyTuple_New(argc+1);
- int i, ok = 0;
+ int i, ok = 0, j = 0;
Py_ssize_t lsize = PyList_Size(self->address_path);
for (i=0; i<lsize; i++) {
- if (lo_pattern_match(path, PyString_AsString(PyList_GetItem(self->address_path, i)))) {
+ if (lo_pattern_match(path, PyString_AsString(PyList_GET_ITEM(self->address_path, i)))) {
ok = 1;
break;
}
}
if (ok) {
- PyTuple_SetItem(tup, 0, PyString_FromString(path));
+ PyTuple_SET_ITEM(tup, 0, PyString_FromString(path));
for (i=0; i<argc; i++) {
switch (types[i]) {
case LO_INT32:
- PyTuple_SetItem(tup, i+1, PyInt_FromLong(argv[i]->i));
+ PyTuple_SET_ITEM(tup, i+1, PyInt_FromLong(argv[i]->i));
break;
case LO_INT64:
- PyTuple_SetItem(tup, i+1, PyLong_FromLong(argv[i]->h));
+ PyTuple_SET_ITEM(tup, i+1, PyLong_FromLong(argv[i]->h));
break;
case LO_FLOAT:
- PyTuple_SetItem(tup, i+1, PyFloat_FromDouble(argv[i]->f));
+ PyTuple_SET_ITEM(tup, i+1, PyFloat_FromDouble(argv[i]->f));
break;
case LO_DOUBLE:
- PyTuple_SetItem(tup, i+1, PyFloat_FromDouble(argv[i]->d));
+ PyTuple_SET_ITEM(tup, i+1, PyFloat_FromDouble(argv[i]->d));
break;
case LO_STRING:
- PyTuple_SetItem(tup, i+1, PyString_FromString(&argv[i]->s));
+ PyTuple_SET_ITEM(tup, i+1, PyString_FromString(&argv[i]->s));
+ break;
+ case LO_CHAR:
+ PyTuple_SET_ITEM(tup, i+1, PyString_FromFormat("%c", argv[i]->c));
+ break;
+ case LO_BLOB:
+ blob = (lo_blob)argv[i];
+ blobsize = lo_blob_datasize(blob);
+ blobdata = lo_blob_dataptr(blob);
+ charlist = PyList_New(blobsize);
+ for (j=0; j<blobsize; j++) {
+ PyList_SET_ITEM(charlist, j, PyString_FromFormat("%c", blobdata[j]));
+ }
+ PyTuple_SET_ITEM(tup, i+1, charlist);
+ break;
+ case LO_MIDI:
+ charlist = PyList_New(4);
+ for (j=0; j<4; j++) {
+ PyList_SET_ITEM(charlist, j, PyInt_FromLong(argv[i]->m[j]));
+ }
+ PyTuple_SET_ITEM(tup, i+1, charlist);
+ break;
+ case LO_NIL:
+ Py_INCREF(Py_None);
+ PyTuple_SET_ITEM(tup, i+1, Py_None);
+ break;
+ case LO_TRUE:
+ Py_INCREF(Py_True);
+ PyTuple_SET_ITEM(tup, i+1, Py_True);
+ break;
+ case LO_FALSE:
+ Py_INCREF(Py_False);
+ PyTuple_SET_ITEM(tup, i+1, Py_False);
break;
default:
break;
@@ -978,6 +1052,7 @@ int OscDataReceive_handler(const char *path, const char *types, lo_arg **argv, i
}
Py_XDECREF(tup);
Py_XDECREF(result);
+ Py_XDECREF(charlist);
return 0;
}
diff --git a/utils/E-Pyo.py b/utils/E-Pyo.py
index de136b3..87d556a 100755
--- a/utils/E-Pyo.py
+++ b/utils/E-Pyo.py
@@ -45,10 +45,13 @@ PLATFORM = sys.platform
DEFAULT_ENCODING = sys.getdefaultencoding()
ENCODING = sys.getfilesystemencoding()
ENCODING_LIST = ["utf_8", "latin_1", "mac_roman", "cp1252", "cp1250", "utf_16"]
-ENCODING_DICT = {'cp-1250': 'cp1250', 'cp-1251': 'cp1251', 'cp-1252': 'cp1252', 'latin-1': 'latin_1',
- 'mac-roman': 'mac_roman', 'utf-8': 'utf_8', 'utf-16': 'utf_16', 'utf-16 (Big Endian)': 'utf_16_be',
- 'utf-16 (Little Endian)': 'utf_16_le', 'utf-32': 'utf_32', 'utf-32 (Big Endian)':
- 'utf_32_be', 'utf-32 (Little Endian)': 'utf_32_le'}
+ENCODING_DICT = {'cp-1250': 'cp1250', 'cp-1251': 'cp1251', 'cp-1252': 'cp1252',
+ 'latin-1': 'latin_1', 'mac-roman': 'mac_roman',
+ 'utf-8': 'utf_8', 'utf-16': 'utf_16',
+ 'utf-16 (Big Endian)': 'utf_16_be',
+ 'utf-16 (Little Endian)': 'utf_16_le', 'utf-32': 'utf_32',
+ 'utf-32 (Big Endian)': 'utf_32_be',
+ 'utf-32 (Little Endian)': 'utf_32_le'}
APP_NAME = 'E-Pyo'
APP_VERSION = PYO_VERSION
@@ -119,6 +122,7 @@ def hex_to_rgb(value):
lv = len(value)
return tuple(int(value[i:i+lv/3], 16) for i in range(0, lv, lv/3))
+################## Paths ##################
TEMP_PATH = os.path.join(os.path.expanduser('~'), '.epyo')
if not os.path.isdir(TEMP_PATH):
os.mkdir(TEMP_PATH)
@@ -155,7 +159,8 @@ if PLATFORM == "darwin" and '/%s.app' % APP_NAME in os.getcwd():
# Check for which Python to use #
if PLATFORM == "win32":
- WHICH_PYTHON = PREFERENCES.get("which_python", "C:\Python%d%d\python.exe" % sys.version_info[:2])
+ WHICH_PYTHON = PREFERENCES.get("which_python",
+ "C:\Python%d%d\python.exe" % sys.version_info[:2])
else:
WHICH_PYTHON = PREFERENCES.get("which_python", "")
INSTALLATION_ERROR_MESSAGE = ""
@@ -163,13 +168,16 @@ CALLER_NEED_TO_INVOKE_32_BIT = False
SET_32_BIT_ARCH = "export VERSIONER_PYTHON_PREFER_32_BIT=yes;"
if WHICH_PYTHON == "":
if OSX_APP_BUNDLED:
- proc = subprocess.Popen(["export PATH=/usr/local/bin:$PATH;which python"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ proc = subprocess.Popen(["export PATH=/usr/local/bin:$PATH;which python"],
+ shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
WHICH_PYTHON = proc.communicate()[0][:-1]
elif PLATFORM == "darwin":
- proc = subprocess.Popen(["which python"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ proc = subprocess.Popen(["which python"], shell=True,
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
WHICH_PYTHON = proc.communicate()[0][:-1]
elif PLATFORM == "linux2":
- proc = subprocess.Popen(["which python"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ proc = subprocess.Popen(["which python"], shell=True,
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
WHICH_PYTHON = proc.communicate()[0][:-1]
else:
### No more used on Windows ###
@@ -477,9 +485,11 @@ if not READY:
s.gui(locals())
'''
-TEMPLATE_NAMES = {98: "Header", 97: "Pyo", 96: "WxPython", 95: "Cecilia5", 94: "Zyne", 93: "Audio Interface", 92: "RadioPyo"}
-TEMPLATE_DICT = {98: HEADER_TEMPLATE, 97: PYO_TEMPLATE, 96: WXPYTHON_TEMPLATE, 95: CECILIA5_TEMPLATE,
- 94: ZYNE_TEMPLATE, 93: AUDIO_INTERFACE_TEMPLATE, 92: RADIOPYO_TEMPLATE}
+TEMPLATE_NAMES = {98: "Header", 97: "Pyo", 96: "WxPython", 95: "Cecilia5",
+ 94: "Zyne", 93: "Audio Interface", 92: "RadioPyo"}
+TEMPLATE_DICT = {98: HEADER_TEMPLATE, 97: PYO_TEMPLATE, 96: WXPYTHON_TEMPLATE,
+ 95: CECILIA5_TEMPLATE, 94: ZYNE_TEMPLATE,
+ 93: AUDIO_INTERFACE_TEMPLATE, 92: RADIOPYO_TEMPLATE}
TEMPLATE_PATH = os.path.join(RESOURCES_PATH, "templates")
if not os.path.isdir(TEMPLATE_PATH):
@@ -535,8 +545,10 @@ WHILE_COMP = """ `i` `>` `0`:
"""
ASSERT_COMP = ''' `expression` `>` `0`, "`expression should be positive`"
'''
-BUILTINS_DICT = {"from": FROM_COMP, "try": TRY_COMP, "if": IF_COMP, "def": DEF_COMP, "class": CLASS_COMP,
- "for": FOR_COMP, "while": WHILE_COMP, "exec": EXEC_COMP, "raise": RAISE_COMP, "assert": ASSERT_COMP}
+BUILTINS_DICT = {"from": FROM_COMP, "try": TRY_COMP, "if": IF_COMP,
+ "def": DEF_COMP, "class": CLASS_COMP, "for": FOR_COMP,
+ "while": WHILE_COMP, "exec": EXEC_COMP, "raise": RAISE_COMP,
+ "assert": ASSERT_COMP}
################## Interface Bitmaps ##################
catalog = {}
@@ -773,7 +785,9 @@ KEY_COMMANDS = {
}
############## Allowed Extensions ##############
-ALLOWED_EXT = PREFERENCES.get("allowed_ext", ["py", "c5", "txt", "", "c", "h", "cpp", "hpp", "sh", "rst", "iss", "sg", "md", "jsfx-inc"])
+ALLOWED_EXT = PREFERENCES.get("allowed_ext",
+ ["py", "c5", "txt", "", "c", "h", "cpp", "hpp", "zy",
+ "sh", "rst", "iss", "sg", "md", "jsfx-inc", "lua", "css"])
############## Pyo keywords ##############
tree = OBJECTS_TREE
@@ -813,15 +827,23 @@ else:
STYLES_GENERALS = ['default', 'background', 'selback', 'caret']
-STYLES_TEXT_COMP = ['comment', 'commentblock', 'number', 'operator', 'string', 'triple', 'keyword', 'pyokeyword',
- 'class', 'function', 'linenumber']
-STYLES_INTER_COMP = ['marginback', 'foldmarginback', 'markerfg', 'markerbg', 'bracelight', 'bracebad', 'lineedge']
-STYLES_LABELS = {'default': 'Foreground', 'background': 'Background', 'selback': 'Selection', 'caret': 'Caret',
- 'comment': 'Comment', 'commentblock': 'Comment Block', 'number': 'Number', 'string': 'String',
- 'triple': 'Triple String', 'keyword': 'Python Keyword', 'pyokeyword': 'Pyo Keyword', 'class': 'Class Name',
- 'function': 'Function Name', 'linenumber': 'Line Number', 'operator': 'Operator', 'foldmarginback': 'Folding Margin Background',
- 'marginback': 'Number Margin Background', 'markerfg': 'Marker Foreground', 'markerbg': 'Marker Background',
- 'bracelight': 'Brace Match', 'bracebad': 'Brace Mismatch', 'lineedge': 'Line Edge'}
+STYLES_TEXT_COMP = ['comment', 'commentblock', 'number', 'operator', 'string',
+ 'triple', 'keyword', 'pyokeyword', 'class', 'function',
+ 'linenumber']
+STYLES_INTER_COMP = ['marginback', 'foldmarginback', 'markerfg', 'markerbg',
+ 'bracelight', 'bracebad', 'lineedge']
+STYLES_LABELS = {'default': 'Foreground', 'background': 'Background',
+ 'selback': 'Selection', 'caret': 'Caret', 'comment': 'Comment',
+ 'commentblock': 'Comment Block', 'number': 'Number',
+ 'string': 'String', 'triple': 'Triple String',
+ 'keyword': 'Python Keyword', 'pyokeyword': 'Pyo Keyword',
+ 'class': 'Class Name', 'function': 'Function Name',
+ 'linenumber': 'Line Number', 'operator': 'Operator',
+ 'foldmarginback': 'Folding Margin Background',
+ 'marginback': 'Number Margin Background',
+ 'markerfg': 'Marker Foreground', 'markerbg': 'Marker Background',
+ 'bracelight': 'Brace Match', 'bracebad': 'Brace Mismatch',
+ 'lineedge': 'Line Edge'}
with open(PREF_STYLE) as f:
text = f.read()
@@ -920,23 +942,23 @@ class RunningThread(threading.Thread):
prelude = "export -n %s;export PATH=/usr/local/bin:/usr/local/lib:$PATH;" % vars_to_remove
if CALLER_NEED_TO_INVOKE_32_BIT:
self.proc = subprocess.Popen(['%s%s%s -u "%s"' % (prelude, SET_32_BIT_ARCH, WHICH_PYTHON, self.path)],
- shell=True, cwd=self.cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ shell=True, cwd=self.cwd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
else:
self.proc = subprocess.Popen(['%s%s -u "%s"' % (prelude, WHICH_PYTHON, self.path)], cwd=self.cwd,
- shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
elif PLATFORM == "darwin":
if CALLER_NEED_TO_INVOKE_32_BIT:
self.proc = subprocess.Popen(['%s%s -u "%s"' % (SET_32_BIT_ARCH, WHICH_PYTHON, self.path)],
- shell=True, cwd=self.cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ shell=True, cwd=self.cwd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
else:
self.proc = subprocess.Popen(['%s -u "%s"' % (WHICH_PYTHON, self.path)], cwd=self.cwd,
- shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
elif PLATFORM == "win32":
self.proc = subprocess.Popen([WHICH_PYTHON, "-u", self.path], cwd=self.cwd, shell=False,
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
else:
self.proc = subprocess.Popen([WHICH_PYTHON, "-u", self.path], cwd=self.cwd,
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
header = '=== Output log of process "%s", launched: %s ===\n' % (self.filename, time.strftime('"%d %b %Y %H:%M:%S"', time.localtime()))
data_event = DataEvent({"log": header, "pid": self.pid, "filename": self.filename, "active": True})
@@ -945,12 +967,18 @@ class RunningThread(threading.Thread):
log = ""
for line in self.proc.stdout.readline():
log = log + line
+ log = log.replace(">>> ", "").replace("... ", "")
data_event = DataEvent({"log": log, "pid": self.pid, "filename": self.filename, "active": True})
wx.PostEvent(self.event_receiver, data_event)
sys.stdout.flush()
time.sleep(.025)
stdout, stderr = self.proc.communicate()
- output = stdout + stderr
+ output = ""
+ if stdout is not None:
+ output = output + stdout
+ if stderr is not None:
+ output = output + stderr
+ output = output.replace(">>> ", "").replace("... ", "")
if "StartNotification name = default" in output:
output = output.replace("StartNotification name = default", "")
if "epyo_tempfile.py" in output:
@@ -977,12 +1005,102 @@ class RunningThread(threading.Thread):
pass
if self.terminated:
output = output + "\n=== Process killed. ==="
- data_event = DataEvent({"log": output, "pid": self.pid, "filename": self.filename, "active": False})
+ data_event = DataEvent({"log": output, "pid": self.pid,
+ "filename": self.filename, "active": False})
+ wx.PostEvent(self.event_receiver, data_event)
+
+class BackgroundServerThread(threading.Thread):
+ def __init__(self, cwd, event_receiver):
+ threading.Thread.__init__(self)
+ self.cwd = cwd
+ self.event_receiver = event_receiver
+ self.terminated = False
+ self.pid = None
+
+ def setPID(self, pid):
+ self.pid = pid
+
+ def kill(self):
+ self.terminated = True
+ self.proc.stdin.write("_quit_()\n")
+ if self.proc.poll() == None:
+ self.proc.kill()
+
+ def sendText(self, text):
+ for line in text.splitlines():
+ self.proc.stdin.write(line + "\n")
+ self.proc.stdin.write("\n")
+
+ def run(self):
+ if PLATFORM == "win32":
+ self.proc = subprocess.Popen(
+ [WHICH_PYTHON, '-i', os.path.join(TEMP_PATH, "background_server.py")],
+ shell=True, cwd=self.cwd, stdout=subprocess.PIPE,
+ stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
+ else:
+ self.proc = subprocess.Popen(
+ ["%s -i -u %s" % (WHICH_PYTHON, os.path.join(TEMP_PATH, "background_server.py"))],
+ cwd=self.cwd, shell=True, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT, stdin=subprocess.PIPE)
+
+ header = '=== Output log of background server, launched: %s ===\n' % time.strftime('"%d %b %Y %H:%M:%S"', time.localtime())
+ data_event = DataEvent({"log": header, "pid": self.pid,
+ "filename": 'background_server.py',
+ "active": True})
+ wx.PostEvent(self.event_receiver, data_event)
+ while self.proc.poll() == None and not self.terminated:
+ log = ""
+ for line in self.proc.stdout.readline():
+ log = log + line
+ log = log.replace(">>> ", "").replace("... ", "")
+ data_event = DataEvent({"log": log, "pid": self.pid,
+ "filename": 'background_server.py',
+ "active": True})
+ wx.PostEvent(self.event_receiver, data_event)
+ sys.stdout.flush()
+ time.sleep(.025)
+ stdout, stderr = self.proc.communicate()
+ output = ""
+ if stdout is not None:
+ output = output + stdout
+ if stderr is not None:
+ output = output + stderr
+ output = output.replace(">>> ", "").replace("... ", "")
+ if "StartNotification name = default" in output:
+ output = output.replace("StartNotification name = default", "")
+ if "background_server.py" in output:
+ try:
+ findpos = output.find("background_server.py")
+ pos = findpos
+ while (output[pos] != '"'):
+ pos -= 1
+ startpos = pos + 1
+ pos = findpos
+ while (output[pos] != '"'):
+ pos += 1
+ endpos = pos
+ output = output[:startpos] + self.filename + output[endpos:]
+ pos = startpos + len(self.filename)
+ slinepos = pos + 8
+ pos = slinepos
+ while (output[pos] != ',' and output[pos] != '\n'):
+ pos += 1
+ elinepos = pos
+ linenum = int(output[slinepos:elinepos].strip())
+ output = output[:slinepos] + str(linenum-3) + output[elinepos:]
+ except:
+ pass
+ if self.terminated:
+ output = output + "\n=== Process killed. ==="
+ data_event = DataEvent({"log": output, "pid": self.pid,
+ "filename": 'background_server.py',
+ "active": False})
wx.PostEvent(self.event_receiver, data_event)
class KeyCommandsFrame(wx.Frame):
def __init__(self, parent):
- wx.Frame.__init__(self, parent, wx.ID_ANY, title="Editor Key Commands List", size=(650,550))
+ wx.Frame.__init__(self, parent, wx.ID_ANY,
+ title="Editor Key Commands List", size=(650,550))
self.menuBar = wx.MenuBar()
menu1 = wx.Menu()
menu1.Append(351, "Close\tCtrl+W")
@@ -1012,7 +1130,8 @@ class KeyCommandsFrame(wx.Frame):
self.Hide()
class EditorPreview(stc.StyledTextCtrl):
- def __init__(self, parent, ID, pos=wx.DefaultPosition, size=wx.DefaultSize, style= wx.SUNKEN_BORDER | wx.WANTS_CHARS):
+ def __init__(self, parent, ID, pos=wx.DefaultPosition, size=wx.DefaultSize,
+ style= wx.SUNKEN_BORDER | wx.WANTS_CHARS):
stc.StyledTextCtrl.__init__(self, parent, ID, pos, size, style)
self.SetSTCCursor(2)
@@ -1428,6 +1547,7 @@ class SearchProjectPanel(scrolled.ScrolledPanel):
class SearchProjectFrame(wx.Frame):
def __init__(self, parent, root, dict, size=(500,500)):
wx.Frame.__init__(self, parent, wx.ID_ANY, size=size)
+ self.SetTitle('Search Results in Project "%s"' % os.path.split(root)[1])
self.menuBar = wx.MenuBar()
menu1 = wx.Menu()
menu1.Append(351, "Close\tCtrl+W")
@@ -2051,6 +2171,13 @@ class MainFrame(wx.Frame):
menu2.Append(121, "Insert File Path...\tShift+Ctrl+P")
self.Bind(wx.EVT_MENU, self.insertPath, id=121)
menu2.AppendSeparator()
+ submenublk = wx.Menu()
+ submenublk.Append(400, "Insert Code Block Head\tCtrl+B")
+ submenublk.Append(401, "Insert Code Block Tail\tShift+Ctrl+B")
+ submenublk.Append(402, "Select Code Block\tCtrl+,")
+ self.Bind(wx.EVT_MENU, self.onCodeBlock, id=400, id2=402)
+ menu2.AppendMenu(-1, "Code Blocks", submenublk)
+ menu2.AppendSeparator()
menu2.Append(114, "Auto Complete container syntax", kind=wx.ITEM_CHECK)
self.Bind(wx.EVT_MENU, self.autoCompContainer, id=114)
menu2.Check(114, PREFERENCES.get("auto_comp_container", 0))
@@ -2093,7 +2220,7 @@ class MainFrame(wx.Frame):
self.menu3.AppendSeparator()
self.backServerItem = self.menu3.Append(304, "Start Pyo Background Server")
self.Bind(wx.EVT_MENU, self.startStopBackgroundServer, id=304)
- self.sendToServerItem = self.menu3.Append(305, "Send Line/Selection to Pyo Background Server\tCtrl+T")
+ self.sendToServerItem = self.menu3.Append(305, "Send Line/Selection to Pyo Background Server\tCtrl+.")
self.sendToServerItem.Enable(False)
self.Bind(wx.EVT_MENU, self.sendSelectionToBackgroundServer, id=305)
self.menuBar.Append(self.menu3, 'Process')
@@ -2166,7 +2293,7 @@ class MainFrame(wx.Frame):
self.menu6 = wx.Menu()
ID_EXAMPLE = 1000
for folder in EXAMPLE_FOLDERS:
- exmenu = wx.Menu(title=folder.lower())
+ exmenu = wx.Menu(folder.lower())
for ex in sorted([exp for exp in os.listdir(os.path.join(EXAMPLE_PATH, folder.lower())) if exp[0] != "." and not exp.endswith("pyc")]):
exmenu.Append(ID_EXAMPLE, ex)
ID_EXAMPLE += 1
@@ -2274,6 +2401,14 @@ class MainFrame(wx.Frame):
if rect.x > self.field1X+160:
self.cc.SetPosition((rect.x, rect.y+yoff2))
+ def onCodeBlock(self, evt):
+ if evt.GetId() == 400:
+ self.panel.editor.insertBlockHead()
+ elif evt.GetId() == 401:
+ self.panel.editor.insertBlockTail()
+ elif evt.GetId() == 402:
+ self.panel.editor.selectCodeBlock()
+
def setMasterDocument(self, evt):
if self.master_document == None:
self.master_document = self.panel.editor.path
@@ -2981,7 +3116,9 @@ class MainFrame(wx.Frame):
def run(self, path):
cwd = self.getCurrentWorkingDirectory()
th = RunningThread(path, cwd, self)
- if "Untitled-" in self.panel.editor.path:
+ if self.master_document != None:
+ filename = os.path.split(self.master_document)[1]
+ elif "Untitled-" in self.panel.editor.path:
filename = self.panel.editor.path
else:
filename = os.path.split(self.panel.editor.path)[1]
@@ -3043,59 +3180,72 @@ class MainFrame(wx.Frame):
exec text
self.panel.editor.addText(s.getvalue())
+ def prepareBackgroundServer(self):
+ outDriverIndex = -1
+ preferedDriver = PREFERENCES.get("background_server_out_device", "")
+ if preferedDriver != "":
+ driverList, driverIndexes = pa_get_output_devices()
+ driverList = [ensureNFD(driver) for driver in driverList]
+ if preferedDriver and preferedDriver in driverList:
+ outDriverIndex = driverIndexes[driverList.index(preferedDriver)]
+
+ inDriverIndex = -1
+ preferedDriver = PREFERENCES.get("background_server_in_device", "")
+ if preferedDriver != "":
+ driverList, driverIndexes = pa_get_input_devices()
+ driverList = [ensureNFD(driver) for driver in driverList]
+ if preferedDriver and preferedDriver in driverList:
+ inDriverIndex = driverIndexes[driverList.index(preferedDriver)]
+
+ midiOutDriverIndex = -1
+ preferedDriver = PREFERENCES.get("background_server_midiout_device", "")
+ if preferedDriver != "":
+ driverList, driverIndexes = pm_get_output_devices()
+ driverList = [ensureNFD(driver) for driver in driverList]
+ if preferedDriver and preferedDriver in driverList:
+ midiOutDriverIndex = driverIndexes[driverList.index(preferedDriver)]
+
+ midiInDriverIndex = -1
+ preferedDriver = PREFERENCES.get("background_server_midiin_device", "")
+ if preferedDriver != "":
+ driverList, driverIndexes = pm_get_input_devices()
+ driverList = [ensureNFD(driver) for driver in driverList]
+ if preferedDriver and preferedDriver in driverList:
+ midiInDriverIndex = driverIndexes[driverList.index(preferedDriver)]
+
+ with open(os.path.join(TEMP_PATH, "background_server.py"), "w") as f:
+ f.write("print 'Starting background server...'\nimport time\nfrom pyo import *\n")
+ f.write("s = Server(%s)\n" % BACKGROUND_SERVER_ARGS)
+ if outDriverIndex != -1:
+ f.write("s.setOutputDevice(%d)\n" % outDriverIndex)
+ if inDriverIndex != -1:
+ f.write("s.setInputDevice(%d)\n" % inDriverIndex)
+ if midiOutDriverIndex != -1:
+ f.write("s.setMidiOutputDevice(%d)\n" % midiOutDriverIndex)
+ if midiInDriverIndex != -1:
+ f.write("s.setMidiInputDevice(%d)\n" % midiInDriverIndex)
+ f.write("s.boot()\ns.start()\n\n")
+ f.write("def _quit_():\n s.stop()\n time.sleep(0.25)\n exit()\n")
+
+ def resetBackgroundServerMenu(self):
+ self.back_server_started = False
+ self.backServerItem.SetItemLabel("Start Pyo Background Server")
+ self.sendToServerItem.Enable(False)
+
def startStopBackgroundServer(self, evt):
- # TODO: need to add midi output driver
if not self.back_server_started:
- outDriverIndex = -1
- preferedDriver = PREFERENCES.get("background_server_out_device", "")
- if preferedDriver != "":
- driverList, driverIndexes = pa_get_output_devices()
- driverList = [ensureNFD(driver) for driver in driverList]
- if preferedDriver and preferedDriver in driverList:
- outDriverIndex = driverIndexes[driverList.index(preferedDriver)]
-
- inDriverIndex = -1
- preferedDriver = PREFERENCES.get("background_server_in_device", "")
- if preferedDriver != "":
- driverList, driverIndexes = pa_get_input_devices()
- driverList = [ensureNFD(driver) for driver in driverList]
- if preferedDriver and preferedDriver in driverList:
- inDriverIndex = driverIndexes[driverList.index(preferedDriver)]
-
- midiInDriverIndex = -1
- preferedDriver = PREFERENCES.get("background_server_midiin_device", "")
- if preferedDriver != "":
- driverList, driverIndexes = pm_get_input_devices()
- driverList = [ensureNFD(driver) for driver in driverList]
- if preferedDriver and preferedDriver in driverList:
- midiInDriverIndex = driverIndexes[driverList.index(preferedDriver)]
-
- with open(os.path.join(TEMP_PATH, "background_server.py"), "w") as f:
- f.write("print 'Starting background server...'\nimport time\nfrom pyo import *\n")
- f.write("s = Server(%s)\n" % BACKGROUND_SERVER_ARGS)
- if outDriverIndex != -1:
- f.write("s.setOutputDevice(%d)\n" % outDriverIndex)
- if inDriverIndex != -1:
- f.write("s.setInputDevice(%d)\n" % inDriverIndex)
- if midiInDriverIndex != -1:
- f.write("s.setMidiInputDevice(%d)\n" % midiInDriverIndex)
- f.write("s.boot()\ns.start()\n")
- if PLATFORM == "win32":
- self.server_pipe = subprocess.Popen([WHICH_PYTHON, '-i', 'background_server.py'],
- shell=True, cwd=TEMP_PATH, stdin=subprocess.PIPE).stdin
- else:
- self.server_pipe = subprocess.Popen(["%s -i %s" % (WHICH_PYTHON, os.path.join(TEMP_PATH, "background_server.py"))],
- shell=True, stdin=subprocess.PIPE).stdin
+ self.prepareBackgroundServer()
+ cwd = self.getCurrentWorkingDirectory()
+ th = BackgroundServerThread(cwd, self)
+ th.setPID(1000)
+ self.processes[1000] = [th, 'background_server.py']
+ self.panel.outputlog.addProcess(1000, 'background_server.py')
+ th.start()
self.back_server_started = True
self.backServerItem.SetItemLabel("Stop Pyo Background Server")
self.sendToServerItem.Enable(True)
else:
- try:
- self.server_pipe.write("print 'Closing background server...'\ns.stop()\ntime.sleep(0.25)\n")
- self.server_pipe.close()
- except IOError:
- pass
- self.server_pipe = None
+ self.processes[1000][0].kill()
self.back_server_started = False
self.backServerItem.SetItemLabel("Start Pyo Background Server")
self.sendToServerItem.Enable(False)
@@ -3109,10 +3259,8 @@ class MainFrame(wx.Frame):
text = self.panel.editor.GetLineUTF8(line)
else:
end = self.panel.editor.GetSelectionEnd()
- if self.server_pipe != None:
- for line in text.splitlines():
- self.server_pipe.write(line + "\n")
- self.server_pipe.write("\n")
+ if self.back_server_started:
+ self.processes[1000][0].sendText(text)
if end != None:
self.panel.editor.SetCurrentPos(end)
self.panel.editor.LineDown()
@@ -3373,8 +3521,8 @@ class EditorPanel(wx.Panel):
self.SetSizerAndFit(box)
class Editor(stc.StyledTextCtrl):
- def __init__(self, parent, ID, pos=wx.DefaultPosition, size=wx.DefaultSize, style= wx.NO_BORDER | wx.WANTS_CHARS,
- setTitle=None, getTitle=None):
+ def __init__(self, parent, ID, pos=wx.DefaultPosition, size=wx.DefaultSize,
+ style= wx.NO_BORDER | wx.WANTS_CHARS, setTitle=None, getTitle=None):
stc.StyledTextCtrl.__init__(self, parent, ID, pos, size, style)
dt = MyFileDropTarget(self)
@@ -3449,6 +3597,7 @@ class Editor(stc.StyledTextCtrl):
self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI)
self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick)
self.Bind(wx.EVT_CLOSE, self.OnClose)
+ self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick)
self.EmptyUndoBuffer()
self.SetFocus()
@@ -3632,6 +3781,57 @@ class Editor(stc.StyledTextCtrl):
self.StyleSetSpec(stc.STC_C_OPERATOR, buildStyle('operator'))
self.StyleSetSpec(stc.STC_C_IDENTIFIER, buildStyle('default'))
self.StyleSetSpec(stc.STC_C_PREPROCESSOR, buildStyle('commentblock'))
+ elif ext == "md":
+ self.SetLexer(stc.STC_LEX_MARKDOWN)
+ self.SetStyleBits(self.GetStyleBitsNeeded())
+ self.StyleSetSpec(stc.STC_MARKDOWN_DEFAULT, buildStyle('default'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_LINE_BEGIN, buildStyle('default'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_STRONG1, buildStyle('default') + ",italic,bold")
+ self.StyleSetSpec(stc.STC_MARKDOWN_STRONG2, buildStyle('default') + ",italic,bold")
+ self.StyleSetSpec(stc.STC_MARKDOWN_EM1, buildStyle('default') + ",italic")
+ self.StyleSetSpec(stc.STC_MARKDOWN_EM2, buildStyle('default') + ",italic")
+ self.StyleSetSpec(stc.STC_MARKDOWN_HEADER1, buildStyle('comment') + ", bold")
+ self.StyleSetSpec(stc.STC_MARKDOWN_HEADER2, buildStyle('comment'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_HEADER3, buildStyle('commentblock') + ", bold")
+ self.StyleSetSpec(stc.STC_MARKDOWN_HEADER4, buildStyle('commentblock') + ", bold")
+ self.StyleSetSpec(stc.STC_MARKDOWN_HEADER5, buildStyle('commentblock'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_HEADER6, buildStyle('commentblock'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_PRECHAR, buildStyle('default'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_ULIST_ITEM, buildStyle('string'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_OLIST_ITEM, buildStyle('triple'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_BLOCKQUOTE, buildStyle('string'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_STRIKEOUT, buildStyle('string'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_HRULE, buildStyle('triple'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_LINK, buildStyle('function'))
+ self.StyleSetSpec(stc.STC_MARKDOWN_CODE, buildStyle('default') + ",italic,bold")
+ self.StyleSetSpec(stc.STC_MARKDOWN_CODE2, buildStyle('default') + ",italic,bold")
+ self.StyleSetSpec(stc.STC_MARKDOWN_CODEBK, buildStyle('default') + ",italic,bold")
+ elif ext == "lua":
+ self.SetLexer(stc.STC_LEX_LUA)
+ self.SetStyleBits(self.GetStyleBitsNeeded())
+ self.SetKeyWords(0, "and break do else elseif for if in nil not or \
+ repeat then until while function local end return true false ")
+ self.StyleSetSpec(stc.STC_LUA_DEFAULT, buildStyle('default'))
+ self.StyleSetSpec(stc.STC_LUA_COMMENT, buildStyle('comment'))
+ self.StyleSetSpec(stc.STC_LUA_COMMENTLINE, buildStyle('comment'))
+ self.StyleSetSpec(stc.STC_LUA_COMMENTDOC, buildStyle('commentblock'))
+ self.StyleSetSpec(stc.STC_LUA_NUMBER, buildStyle('number'))
+ self.StyleSetSpec(stc.STC_LUA_WORD, buildStyle('keyword'))
+ self.StyleSetSpec(stc.STC_LUA_STRING, buildStyle('string'))
+ self.StyleSetSpec(stc.STC_LUA_CHARACTER, buildStyle('string'))
+ self.StyleSetSpec(stc.STC_LUA_LITERALSTRING, buildStyle('triple'))
+ self.StyleSetSpec(stc.STC_LUA_PREPROCESSOR, buildStyle('default') + ",italic")
+ self.StyleSetSpec(stc.STC_LUA_OPERATOR, buildStyle('operator'))
+ self.StyleSetSpec(stc.STC_LUA_IDENTIFIER, buildStyle('default'))
+ self.StyleSetSpec(stc.STC_LUA_STRINGEOL, buildStyle('default') + ",bold")
+ self.StyleSetSpec(stc.STC_LUA_WORD2, buildStyle('pyokeyword'))
+ self.StyleSetSpec(stc.STC_LUA_WORD3, buildStyle('pyokeyword'))
+ self.StyleSetSpec(stc.STC_LUA_WORD4, buildStyle('pyokeyword'))
+ self.StyleSetSpec(stc.STC_LUA_WORD5, buildStyle('pyokeyword'))
+ self.StyleSetSpec(stc.STC_LUA_WORD6, buildStyle('pyokeyword'))
+ self.StyleSetSpec(stc.STC_LUA_WORD7, buildStyle('pyokeyword'))
+ self.StyleSetSpec(stc.STC_LUA_WORD8, buildStyle('pyokeyword'))
+ self.StyleSetSpec(stc.STC_LUA_LABEL, buildStyle('default') + ",italic,bold")
self.SetEdgeColour(STYLES["lineedge"]['colour'])
self.SetCaretForeground(STYLES['caret']['colour'])
@@ -3644,6 +3844,57 @@ class Editor(stc.StyledTextCtrl):
# WxPython 3 needs the lexer to be set before folding property
self.SetProperty("fold", "1")
+ def insertBlockHead(self):
+ pos = self.PositionFromLine(self.GetCurrentLine())
+ if self.GetLine(self.GetCurrentLine()).strip() == "":
+ self.InsertText(pos, "#-->")
+ else:
+ self.InsertText(pos, "#-->\n")
+
+ def insertBlockTail(self):
+ pos = self.GetLineEndPosition(self.GetCurrentLine())
+ if self.GetLine(self.GetCurrentLine()).strip() == "":
+ self.InsertText(pos, "#<--")
+ else:
+ self.InsertText(pos, "\n#<--")
+
+ def selectCodeBlock(self):
+ self.OnDoubleClick(None)
+
+ def OnDoubleClick(self, evt):
+ """
+ Double-click used to select chunk of code between #--> and #<--
+ """
+ if "#-->" in self.GetLine(self.GetCurrentLine()):
+ first = self.GetCurrentLine()
+ last = self.GetLineCount()
+ self.LineDown()
+ while (self.GetCurrentLine() < self.GetLineCount()):
+ if "#<--" in self.GetLine(self.GetCurrentLine()):
+ last = self.GetCurrentLine() - 1
+ break
+ self.LineDown()
+ self.SetSelection(self.GetLineEndPosition(first)+1,
+ self.GetLineEndPosition(last)+1)
+ if evt is not None:
+ evt.StopPropagation()
+ elif "#<--" in self.GetLine(self.GetCurrentLine()):
+ first = 0
+ last = self.GetCurrentLine() - 1
+ self.LineUp()
+ while (self.GetCurrentLine() > 0):
+ if "#-->" in self.GetLine(self.GetCurrentLine()):
+ first = self.GetCurrentLine()
+ break
+ self.LineUp()
+ self.SetSelection(self.GetLineEndPosition(first)+1,
+ self.GetLineEndPosition(last)+1)
+ if evt is not None:
+ evt.StopPropagation()
+ else:
+ if evt is not None:
+ evt.Skip()
+
def OnQuickSearch(self, str, next=True):
if self.GetSelection() != (0,0):
self.SetSelection(self.GetSelectionEnd()-1, self.GetSelectionEnd())
@@ -4239,10 +4490,6 @@ class Editor(stc.StyledTextCtrl):
elif evt.GetKeyCode() == ord('L') and ControlDown():
self.GetParent().GetParent().GetParent().GetParent().GetParent().gotoLine(None)
propagate = False
- # Send line/selection to pyo background server
- elif evt.GetKeyCode() == ord('T') and ControlDown():
- self.GetParent().GetParent().GetParent().GetParent().GetParent().sendSelectionToBackgroundServer(None)
- propagate = False
# Process Return key --- automatic indentation
elif evt.GetKeyCode() == wx.WXK_RETURN:
@@ -4323,7 +4570,7 @@ class Editor(stc.StyledTextCtrl):
# for i in range(self.GetLineCount()):
# pos = self.GetLineEndPosition(i)
# if self.GetCharAt(pos-1) != 172:
- # self.InsertTextUTF8(pos, "¬")
+ # self.InsertTextUTF8(pos, "¬")
self.moveMarkers()
self.checkScrollbar()
self.OnModified()
@@ -4691,7 +4938,7 @@ class OutputLogPanel(wx.Panel):
self.processPopup.Append("%d :: %s" % (procID, filename))
self.processPopup.SetStringSelection("%d :: %s" % (procID, filename))
self.running += 1
- self.runningLabel.SetLabel("Running: %d" % self.running)
+ self.runningLabel.SetLabel(" Running: %d" % self.running)
self.editor.setLog("")
def removeProcess(self, procID, filename):
@@ -4699,7 +4946,7 @@ class OutputLogPanel(wx.Panel):
del self.mainPanel.mainFrame.processes[procID]
self.processPopup.Delete(self.processPopup.GetItems().index(str))
self.running -= 1
- self.runningLabel.SetLabel("Running: %d" % self.running)
+ self.runningLabel.SetLabel(" Running: %d" % self.running)
def killProcess(self, evt):
str = self.processPopup.GetStringSelection()
@@ -4707,6 +4954,8 @@ class OutputLogPanel(wx.Panel):
procID = int(str.split("::")[0].strip())
thread = self.mainPanel.mainFrame.processes[procID][0]
thread.kill()
+ if procID == 1000:
+ self.mainPanel.mainFrame.resetBackgroundServerMenu()
def appendToLog(self, text):
self.editor.appendToLog(text)
@@ -4778,12 +5027,13 @@ TOOL_REFRESH_TREE_ID = 12
class ProjectTree(wx.Panel):
"""Project panel"""
def __init__(self, parent, mainPanel, size):
- wx.Panel.__init__(self, parent, -1, size=size, style=wx.WANTS_CHARS | wx.SUNKEN_BORDER | wx.EXPAND)
+ wx.Panel.__init__(self, parent, -1, size=size,
+ style=wx.WANTS_CHARS|wx.SUNKEN_BORDER|wx.EXPAND)
self.SetMinSize((150, -1))
self.mainPanel = mainPanel
self.projectDict = {}
- self.selected = None
+ self.selectedItem = None
self.edititem = self.editfolder = self.itempath = self.scope = None
tsize = (24, 24)
@@ -4797,16 +5047,20 @@ class ProjectTree(wx.Panel):
toolbarbox = wx.BoxSizer(wx.HORIZONTAL)
self.toolbar = wx.ToolBar(self, -1, size=(-1,36))
self.toolbar.SetToolBitmapSize(tsize)
- self.toolbar.AddLabelTool(TOOL_ADD_FILE_ID, "Add File", file_add_bmp, shortHelp="Add File")
+ self.toolbar.AddLabelTool(TOOL_ADD_FILE_ID, "Add File",
+ file_add_bmp, shortHelp="Add File")
+ self.toolbar.AddLabelTool(TOOL_ADD_FOLDER_ID, "Add Folder",
+ folder_add_bmp, shortHelp="Add Folder")
+ self.toolbar.AddLabelTool(TOOL_REFRESH_TREE_ID, "Refresh Tree",
+ refresh_tree_bmp, shortHelp="Refresh Tree")
self.toolbar.EnableTool(TOOL_ADD_FILE_ID, False)
- self.toolbar.AddLabelTool(TOOL_ADD_FOLDER_ID, "Add Folder", folder_add_bmp, shortHelp="Add Folder")
- self.toolbar.AddLabelTool(TOOL_REFRESH_TREE_ID, "Refresh Tree", refresh_tree_bmp, shortHelp="Refresh Tree")
self.toolbar.Realize()
toolbarbox.Add(self.toolbar, 1, wx.ALIGN_LEFT | wx.EXPAND, 0)
tb2 = wx.ToolBar(self, -1, size=(-1,36))
tb2.SetToolBitmapSize(tsize)
- tb2.AddLabelTool(15, "Close Panel", close_panel_bmp, shortHelp="Close Panel")
+ tb2.AddLabelTool(15, "Close Panel", close_panel_bmp,
+ shortHelp="Close Panel")
tb2.Realize()
toolbarbox.Add(tb2, 0, wx.ALIGN_RIGHT, 0)
@@ -4817,30 +5071,35 @@ class ProjectTree(wx.Panel):
self.sizer.Add(toolbarbox, 0, wx.EXPAND)
- self.tree = wx.TreeCtrl(self, -1, (0, 26), size, wx.TR_DEFAULT_STYLE|wx.TR_HIDE_ROOT|wx.SUNKEN_BORDER|wx.EXPAND)
+ stls = wx.TR_DEFAULT_STYLE|wx.TR_HIDE_ROOT|wx.SUNKEN_BORDER|wx.EXPAND
+ self.tree = wx.TreeCtrl(self, -1, (0, 26), size, stls)
self.tree.SetBackgroundColour(STYLES['background']['colour'])
if PLATFORM == 'darwin':
- self.tree.SetFont(wx.Font(11, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=STYLES['face']))
- elif PLATFORM == 'win32':
- self.tree.SetFont(wx.Font(8, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=STYLES['face']))
+ pt = 11
else:
- self.tree.SetFont(wx.Font(8, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=STYLES['face']))
+ pt = 8
+ fnt = wx.Font(pt, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=STYLES['face'])
+ self.tree.SetFont(fnt)
self.sizer.Add(self.tree, 1, wx.EXPAND)
self.SetSizer(self.sizer)
isz = (12,12)
self.il = wx.ImageList(isz[0], isz[1])
- self.fldridx = self.il.Add(wx.ArtProvider_GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, isz))
- self.fldropenidx = self.il.Add(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN, wx.ART_OTHER, isz))
- self.fileidx = self.il.Add(wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, isz))
+ bmp = wx.ArtProvider_GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, isz)
+ self.fldridx = self.il.Add(bmp)
+ bmp = wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN, wx.ART_OTHER, isz)
+ self.fldropenidx = self.il.Add(bmp)
+ bmp = wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, isz)
+ self.fileidx = self.il.Add(bmp)
self.tree.SetImageList(self.il)
self.tree.SetSpacing(12)
self.tree.SetIndent(6)
- self.root = self.tree.AddRoot("EPyo_Project_tree", self.fldridx, self.fldropenidx, None)
+ self.root = self.tree.AddRoot("EPyo_Project_tree", self.fldridx,
+ self.fldropenidx, None)
self.tree.SetItemTextColour(self.root, STYLES['default']['colour'])
self.tree.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnEndEdit)
@@ -4873,7 +5132,8 @@ class ProjectTree(wx.Panel):
expanded = []
self._tree_analyze(self.root, expanded)
self.tree.DeleteAllItems()
- self.root = self.tree.AddRoot("EPyo_Project_tree", self.fldridx, self.fldropenidx, None)
+ self.root = self.tree.AddRoot("EPyo_Project_tree", self.fldridx,
+ self.fldropenidx, None)
for folder, path in self.projectDict.items():
self.loadFolder(path)
self._tree_restore(self.root, expanded)
@@ -4881,62 +5141,48 @@ class ProjectTree(wx.Panel):
def loadFolder(self, dirPath):
folderName = os.path.split(dirPath)[1]
self.projectDict[folderName] = dirPath
- projectDir = {}
self.mainPanel.mainFrame.showProjectTree(True)
- for root, dirs, files in os.walk(dirPath):
- if os.path.split(root)[1][0] != '.' and os.path.split(root)[1] != "build":
- if root == dirPath:
- child = self.tree.AppendItem(self.root, folderName, self.fldridx, self.fldropenidx, None)
- self.tree.SetItemTextColour(child, STYLES['default']['colour'])
- if dirs:
- ddirs = [dir for dir in dirs if dir[0] != '.' and dir != "build"]
- for dir in sorted(ddirs):
- subfol = self.tree.AppendItem(child, "%s" % dir, self.fldridx, self.fldropenidx, None)
- projectDir[dir] = subfol
- self.tree.SetItemTextColour(subfol, STYLES['default']['colour'])
- if files:
- ffiles = [file for file in files if file[0] != '.' and not file.endswith("~") and os.path.splitext(file)[1].strip(".") in ALLOWED_EXT]
- for file in sorted(ffiles):
- item = self.tree.AppendItem(child, "%s" % file, self.fileidx, self.fileidx, None)
- self.tree.SetItemTextColour(item, STYLES['default']['colour'])
- else:
- if os.path.split(root)[1] in projectDir.keys():
- parent = projectDir[os.path.split(root)[1]]
- if dirs:
- ddirs = [dir for dir in dirs if dir[0] != '.' and "build/" not in root]
- for dir in sorted(ddirs):
- subfol = self.tree.AppendItem(parent, "%s" % dir, self.fldridx, self.fldropenidx, None)
- projectDir[dir] = subfol
- self.tree.SetItemTextColour(subfol, STYLES['default']['colour'])
- if files:
- ffiles = [file for file in files if file[0] != '.' and not file.endswith("~") and os.path.splitext(file)[1].strip(".") in ALLOWED_EXT]
- for file in sorted(ffiles):
- item = self.tree.AppendItem(parent, "%s" % file, self.fileidx, self.fileidx, None)
- self.tree.SetItemTextColour(item, STYLES['default']['colour'])
- self.tree.SortChildren(self.root)
- self.tree.SortChildren(child)
+ item = self.tree.AppendItem(self.root, folderName, self.fldridx,
+ self.fldropenidx, None)
+ self.tree.SetPyData(item, dirPath)
+ self.tree.SetItemTextColour(item, STYLES['default']['colour'])
+ self.buildRecursiveTree(dirPath, item)
+
+ def buildRecursiveTree(self, dir, item):
+ elems = [f for f in os.listdir(dir) if f[0] != "."]
+ for elem in sorted(elems):
+ child = None
+ path = os.path.join(dir, elem)
+ if os.path.isfile(path):
+ if not path.endswith("~") and \
+ os.path.splitext(path)[1].strip(".") in ALLOWED_EXT:
+ child = self.tree.AppendItem(item, elem, self.fileidx,
+ self.fileidx)
+ self.tree.SetPyData(child, os.path.join(dir, path))
+ elif os.path.isdir(path):
+ if elem != "build":
+ child = self.tree.AppendItem(item, elem, self.fldridx,
+ self.fldropenidx)
+ self.tree.SetPyData(child, os.path.join(dir, path))
+ self.buildRecursiveTree(path, child)
+ if child is not None:
+ self.tree.SetItemTextColour(child, STYLES['default']['colour'])
def onAdd(self, evt):
id = evt.GetId()
treeItemId = self.tree.GetSelection()
- if self.selected != None:
- for dirPath in self.projectDict.keys():
- for root, dirs, files in os.walk(self.projectDict[dirPath]):
- if self.selected == os.path.split(root)[1]:
- self.scope = root
- break
- elif self.selected in dirs:
- self.scope = os.path.join(root, self.selected)
- break
- elif self.selected in files:
- self.scope = root
- treeItemId = self.tree.GetItemParent(treeItemId)
- break
- if self.scope != None:
- break
- elif self.selected == None and id == TOOL_ADD_FOLDER_ID:
- dlg = wx.DirDialog(self, "Choose a directory where to save your folder:",
- defaultPath=os.path.expanduser("~"), style=wx.DD_DEFAULT_STYLE)
+ if self.selectedItem != None:
+ selPath = self.tree.GetPyData(self.selectedItem)
+ if os.path.isdir(selPath):
+ self.scope = selPath
+ elif os.path.isfile(selPath):
+ treeItemId = self.tree.GetItemParent(treeItemId)
+ self.scope = self.tree.GetPyData(treeItemId)
+ elif self.selectedItem == None and id == TOOL_ADD_FOLDER_ID:
+ dlg = wx.DirDialog(self,
+ "Choose directory where to save your folder:",
+ defaultPath=os.path.expanduser("~"),
+ style=wx.DD_DEFAULT_STYLE)
if dlg.ShowModal() == wx.ID_OK:
self.scope = dlg.GetPath()
dlg.Destroy()
@@ -4945,11 +5191,14 @@ class ProjectTree(wx.Panel):
return
treeItemId = self.tree.GetRootItem()
if id == TOOL_ADD_FILE_ID:
- item = self.tree.AppendItem(treeItemId, "Untitled", self.fileidx, self.fileidx, None)
+ item = self.tree.AppendItem(treeItemId, "Untitled", self.fileidx,
+ self.fileidx, None)
self.edititem = item
else:
- item = self.tree.AppendItem(treeItemId, "Untitled", self.fldridx, self.fldropenidx, None)
+ item = self.tree.AppendItem(treeItemId, "Untitled", self.fldridx,
+ self.fldropenidx, None)
self.editfolder = item
+ self.tree.SetPyData(item, os.path.join(self.scope, "Untitled"))
self.tree.SetItemTextColour(item, STYLES['default']['colour'])
self.tree.EnsureVisible(item)
if PLATFORM == "darwin":
@@ -4978,14 +5227,8 @@ class ProjectTree(wx.Panel):
def OnRightDown(self, event):
pt = event.GetPosition();
self.edititem, flags = self.tree.HitTest(pt)
- item = self.edititem
- if item:
- itemlist = []
- while self.tree.GetItemText(item) not in self.projectDict.keys():
- itemlist.insert(0, self.tree.GetItemText(item))
- item = self.tree.GetItemParent(item)
- itemlist.insert(0, self.projectDict[self.tree.GetItemText(item)])
- self.itempath = os.path.join(*itemlist)
+ if self.edititem:
+ self.itempath = self.tree.GetPyData(self.edititem)
self.select(self.edititem)
self.tree.EditLabel(self.edititem)
else:
@@ -4995,14 +5238,18 @@ class ProjectTree(wx.Panel):
if self.edititem and self.itempath:
self.select(self.edititem)
head, tail = os.path.split(self.itempath)
- newpath = os.path.join(head, event.GetLabel())
- os.rename(self.itempath, newpath)
+ newlabel = event.GetLabel()
+ if newlabel != "":
+ newpath = os.path.join(head, event.GetLabel())
+ os.rename(self.itempath, newpath)
+ self.tree.SetPyData(self.edititem, newpath)
elif self.edititem and self.scope:
newitem = event.GetLabel()
if not newitem:
newitem = "Untitled"
wx.CallAfter(self.tree.SetItemText, self.edititem, newitem)
newpath = os.path.join(self.scope, newitem)
+ self.tree.SetPyData(self.edititem, newpath)
f = open(newpath, "w")
f.close()
self.mainPanel.addPage(newpath)
@@ -5012,8 +5259,9 @@ class ProjectTree(wx.Panel):
newitem = "Untitled"
wx.CallAfter(self.tree.SetItemText, self.editfolder, newitem)
newpath = os.path.join(self.scope, newitem)
+ self.tree.SetPyData(self.editfolder, newpath)
os.mkdir(newpath)
- if self.selected == None:
+ if self.selectedItem == None:
self.projectDict[newitem] = self.scope
self.edititem = self.editfolder = self.itempath = self.scope = None
@@ -5039,25 +5287,17 @@ class ProjectTree(wx.Panel):
def openPage(self, item):
hasChild = self.tree.ItemHasChildren(item)
if not hasChild:
- parent = None
- ritem = item
- filename = self.tree.GetItemText(ritem)
- while self.tree.GetItemParent(ritem) != self.tree.GetRootItem():
- ritem = self.tree.GetItemParent(ritem)
- parent = self.tree.GetItemText(ritem)
- filename = os.path.join(parent, filename)
- dirPath = os.path.split(self.projectDict[parent])[0]
- path = os.path.join(dirPath, filename)
+ path = self.tree.GetPyData(item)
self.mainPanel.addPage(path)
def select(self, item):
self.tree.SelectItem(item)
- self.selected = self.tree.GetItemText(item)
+ self.selectedItem = item
self.toolbar.EnableTool(TOOL_ADD_FILE_ID, True)
def unselect(self):
self.tree.UnselectAll()
- self.selected = None
+ self.selectedItem = None
self.toolbar.EnableTool(TOOL_ADD_FILE_ID, False)
def onCloseProjectPanel(self, evt):
@@ -5065,7 +5305,8 @@ class ProjectTree(wx.Panel):
class MarkersListScroll(scrolled.ScrolledPanel):
def __init__(self, parent, id=-1, pos=(25,25), size=(500,400)):
- scrolled.ScrolledPanel.__init__(self, parent, wx.ID_ANY, pos=(0,0), size=size, style=wx.SUNKEN_BORDER)
+ scrolled.ScrolledPanel.__init__(self, parent, wx.ID_ANY, pos=(0,0),
+ size=size, style=wx.SUNKEN_BORDER)
self.parent = parent
self.SetBackgroundColour(STYLES['background']['colour'])
self.arrow_bit = catalog['left_arrow.png'].GetBitmap()
@@ -5254,7 +5495,7 @@ class PreferencesDialog(wx.Dialog):
mainSizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.BOTTOM|wx.LEFT|wx.RIGHT, 5)
- lbl = wx.StaticText(self, label="Background Pyo Server")
+ lbl = wx.StaticText(self, label="=== Background Pyo Server ===")
lbl.SetFont(font)
mainSizer.Add(lbl, 0, wx.BOTTOM|wx.LEFT|wx.RIGHT, 10)
@@ -5265,59 +5506,76 @@ class PreferencesDialog(wx.Dialog):
self.server_args = wx.TextCtrl(self, size=(500,-1), value=BACKGROUND_SERVER_ARGS)
self.server_args.SetFont(entryfont)
ctrlSizer.Add(self.server_args, 0, wx.ALL|wx.EXPAND, 5)
- but = wx.Button(self, id=wx.ID_ANY, label="Restore default args")
+ but = wx.Button(self, id=wx.ID_ANY, label=" Restore default args ")
but.Bind(wx.EVT_BUTTON, self.setServerDefaultArgs)
ctrlSizer.Add(but, 0, wx.ALL, 5)
mainSizer.Add(ctrlSizer, 0, wx.BOTTOM|wx.LEFT|wx.RIGHT, 5)
- popupSizer = wx.FlexGridSizer(2, 3, 5, 10)
- for label in ["Output Driver", "Input Driver", "Midi Interface"]:
+ popupSizer = wx.FlexGridSizer(2, 4, 5, 10)
+ for label in ["Input Driver", "Output Driver", "Midi Input", "Midi Output"]:
lbl = wx.StaticText(self, label=label)
lbl.SetFont(font)
popupSizer.Add(lbl)
- preferedDriver = PREFERENCES.get("background_server_out_device", "")
- driverList, driverIndexes = pa_get_output_devices()
- driverList = [ensureNFD(driver) for driver in driverList]
- defaultDriver = pa_get_default_output()
- self.popupOutDriver = wx.Choice(self, choices=driverList)
- popupSizer.Add(self.popupOutDriver)
- if preferedDriver and preferedDriver in driverList:
- driverIndex = driverIndexes[driverList.index(preferedDriver)]
- self.popupOutDriver.SetStringSelection(preferedDriver)
- elif defaultDriver:
- self.popupOutDriver.SetSelection(driverIndexes.index(defaultDriver))
-
+ cX = 160
preferedDriver = PREFERENCES.get("background_server_in_device", "")
driverList, driverIndexes = pa_get_input_devices()
driverList = [ensureNFD(driver) for driver in driverList]
defaultDriver = pa_get_default_input()
- self.popupInDriver = wx.Choice(self, choices=driverList)
- popupSizer.Add(self.popupInDriver)
+ self.popupInDriver = wx.Choice(self, choices=driverList, size=(cX,-1))
+ popupSizer.Add(self.popupInDriver, 1, wx.EXPAND, 5)
if preferedDriver and preferedDriver in driverList:
driverIndex = driverIndexes[driverList.index(preferedDriver)]
self.popupInDriver.SetStringSelection(preferedDriver)
elif defaultDriver:
self.popupInDriver.SetSelection(driverIndexes.index(defaultDriver))
+ preferedDriver = PREFERENCES.get("background_server_out_device", "")
+ driverList, driverIndexes = pa_get_output_devices()
+ driverList = [ensureNFD(driver) for driver in driverList]
+ defaultDriver = pa_get_default_output()
+ self.popupOutDriver = wx.Choice(self, choices=driverList, size=(cX,-1))
+ popupSizer.Add(self.popupOutDriver, 1, wx.EXPAND, 5)
+ if preferedDriver and preferedDriver in driverList:
+ driverIndex = driverIndexes[driverList.index(preferedDriver)]
+ self.popupOutDriver.SetStringSelection(preferedDriver)
+ elif defaultDriver:
+ self.popupOutDriver.SetSelection(driverIndexes.index(defaultDriver))
+
+ # TODO: Added "all" interfaces option in input and output
preferedDriver = PREFERENCES.get("background_server_midiin_device", "")
driverList, driverIndexes = pm_get_input_devices()
driverList = [ensureNFD(driver) for driver in driverList]
if driverList != []:
defaultDriver = pm_get_default_input()
- self.popupMidiInDriver = wx.Choice(self, choices=driverList)
- popupSizer.Add(self.popupMidiInDriver)
+ self.popupMidiInDriver = wx.Choice(self, choices=driverList, size=(cX,-1))
if preferedDriver and preferedDriver in driverList:
driverIndex = driverIndexes[driverList.index(preferedDriver)]
self.popupMidiInDriver.SetStringSelection(preferedDriver)
- elif defaultDriver:
+ elif defaultDriver >= 0:
self.popupMidiInDriver.SetSelection(driverIndexes.index(defaultDriver))
else:
self.popupMidiInDriver = wx.Choice(self, choices=["No Interface"])
- popupSizer.Add(self.popupMidiInDriver)
self.popupMidiInDriver.SetSelection(0)
+ popupSizer.Add(self.popupMidiInDriver, 1, wx.EXPAND, 5)
+
+ preferedDriver = PREFERENCES.get("background_server_midiout_device", "")
+ driverList, driverIndexes = pm_get_output_devices()
+ driverList = [ensureNFD(driver) for driver in driverList]
+ if driverList != []:
+ defaultDriver = pm_get_default_output()
+ self.popupMidiOutDriver = wx.Choice(self, choices=driverList, size=(cX,-1))
+ if preferedDriver and preferedDriver in driverList:
+ driverIndex = driverIndexes[driverList.index(preferedDriver)]
+ self.popupMidiOutDriver.SetStringSelection(preferedDriver)
+ elif defaultDriver >= 0:
+ self.popupMidiOutDriver.SetSelection(driverIndexes.index(defaultDriver))
+ else:
+ self.popupMidiOutDriver = wx.Choice(self, choices=["No Interface"])
+ self.popupMidiOutDriver.SetSelection(0)
+ popupSizer.Add(self.popupMidiOutDriver, 1, wx.EXPAND, 5)
- mainSizer.Add(popupSizer, 0, wx.BOTTOM|wx.LEFT|wx.RIGHT, 10)
+ mainSizer.Add(popupSizer, 0, wx.EXPAND|wx.BOTTOM|wx.LEFT|wx.RIGHT, 10)
mainSizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.BOTTOM|wx.LEFT|wx.RIGHT, 5)
@@ -5327,8 +5585,8 @@ class PreferencesDialog(wx.Dialog):
ctrlSizer = wx.BoxSizer(wx.HORIZONTAL)
self.entry_ext = wx.TextCtrl(self, size=(500,-1), value=", ".join(ALLOWED_EXT))
self.entry_ext.SetFont(entryfont)
- ctrlSizer.Add(self.entry_ext, 0, wx.ALL|wx.EXPAND, 5)
- mainSizer.Add(ctrlSizer, 0, wx.BOTTOM|wx.LEFT|wx.RIGHT, 5)
+ ctrlSizer.Add(self.entry_ext, 1, wx.ALL|wx.EXPAND, 5)
+ mainSizer.Add(ctrlSizer, 0, wx.EXPAND|wx.BOTTOM|wx.LEFT|wx.RIGHT, 5)
btnSizer = self.CreateButtonSizer(wx.CANCEL|wx.OK)
@@ -5409,6 +5667,9 @@ class PreferencesDialog(wx.Dialog):
midiDevice = self.popupMidiInDriver.GetStringSelection()
if midiDevice != "No Interface":
PREFERENCES["background_server_midiin_device"] = midiDevice
+ midiDevice = self.popupMidiOutDriver.GetStringSelection()
+ if midiDevice != "No Interface":
+ PREFERENCES["background_server_midiout_device"] = midiDevice
class STCPrintout(wx.Printout):
"""Specific printing support of the wx.StyledTextCtrl for the wxPython
@@ -5822,7 +6083,8 @@ class STCPrintout(wx.Printout):
if self.border_around_text:
dc.SetPen(wx.BLACK_PEN)
dc.SetBrush(wx.TRANSPARENT_BRUSH)
- dc.DrawRectangle(self.x1, self.y1, self.x2 - self.x1 + 1, self.y2 - self.y1 + 1)
+ dc.DrawRectangle(self.x1, self.y1, self.x2 - self.x1 + 1,
+ self.y2 - self.y1 + 1)
class MyFileDropTarget(wx.FileDropTarget):
def __init__(self, window):
@@ -5844,12 +6106,14 @@ class EPyoApp(wx.App):
wx.App.__init__(self, *args, **kwargs)
def OnInit(self):
- X,Y = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_X), wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y)
+ X = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_X)
+ Y = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y)
if X < 850: X -= 50
else: X = 850
if Y < 750: Y -= 50
else: Y = 750
- self.frame = MainFrame(None, -1, title='E-Pyo Editor', pos=(10,25), size=(X, Y))
+ self.frame = MainFrame(None, -1, title='E-Pyo Editor',
+ pos=(10,25), size=(X, Y))
self.frame.Show()
return True
diff --git a/utils/info.plist b/utils/info.plist
index 8b9e960..70c56f7 100644
--- a/utils/info.plist
+++ b/utils/info.plist
@@ -32,17 +32,17 @@
<key>CFBundleIdentifier</key>
<string>org.pythonmac.unspecified.E-Pyo</string>
<key>CFBundleInfoDictionaryVersion</key>
- <string>0.7.5</string>
+ <string>0.7.6</string>
<key>CFBundleName</key>
<string>E-Pyo</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>0.7.5</string>
+ <string>0.7.6</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>0.7.5</string>
+ <string>0.7.6</string>
<key>LSHasLocalizedDisplayName</key>
<false/>
<key>NSAppleScriptEnabled</key>
--
python-pyo packaging
More information about the pkg-multimedia-commits
mailing list