[SCM] python-pyo/master: New upstream release - resolving conflicts.
tiago at users.alioth.debian.org
tiago at users.alioth.debian.org
Tue Jul 28 21:25:06 UTC 2015
Imported Upstream version 0.7.6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Git-Refname: refs/heads/master
X-Git-Reftype: branch
X-Git-Oldrev: 104af6a56241010d0cb138c3fa088ae372f78ee2
X-Git-Newrev: d32d0500b54a537cd13b6e385668d1ee818652e9
The following commit has been merged in the master branch:
commit 0149ec8ddf93e9c1c0d676130a7d99d9480ce511
Merge: 104af6a56241010d0cb138c3fa088ae372f78ee2 963680012d6b505e428b8f1d52cca608ac329a49
Author: Tiago Bortoletto Vaz <tiago at debian.org>
Date: Tue Jul 28 17:02:15 2015 -0400
New upstream release - resolving conflicts.
diff --combined ChangeLog
index 0a20360,73619a4..8e6cf4c
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,6 -1,65 +1,69 @@@
-------------------------------------------------------------------------------------
+2015-03-05 belangeo <belangeo at gmail.com>
++<<<<<<< HEAD
++=======
+ 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>
+
++>>>>>>> upstream/0.7.6
* Fixed crash when portaudio stream is stopped on OSX (created when fixed
for Windows). Rev 1310 is the sources for 0.7.5 release.
- rev 1310
diff --combined doc-sphinx/source/index.rst
index 548d84b,c2c953b..016575b
--- a/doc-sphinx/source/index.rst
+++ b/doc-sphinx/source/index.rst
@@@ -3,7 -3,7 +3,11 @@@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
++<<<<<<< HEAD
+Welcome to the Pyo 0.7.5 documentation
++=======
+ Welcome to the Pyo 0.7.6 documentation
++>>>>>>> upstream/0.7.6
===================================================
.. toctree::
diff --combined include/pyomodule.h
index e6f8ee1,32a3f3c..04a0e85
--- a/include/pyomodule.h
+++ b/include/pyomodule.h
@@@ -21,7 -21,7 +21,11 @@@
#include "Python.h"
#include <math.h>
++<<<<<<< HEAD
+#define PYO_VERSION "0.7.5"
++=======
+ #define PYO_VERSION "0.7.6"
++>>>>>>> upstream/0.7.6
#ifndef __MYFLT_DEF
#define __MYFLT_DEF
@@@ -485,6 -485,7 +489,10 @@@ extern PyTypeObject PeakAmpType
extern PyTypeObject MainParticleType;
extern PyTypeObject ParticleType;
extern PyTypeObject AtanTableType;
++<<<<<<< HEAD
++=======
+ extern PyTypeObject RawMidiType;
++>>>>>>> upstream/0.7.6
/* Constants */
#define E M_E
@@@ -561,51 -562,57 +569,57 @@@
/* 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 --combined installers/osx/release_x86_64.sh
index 2779969,2275a10..a09bb17
--- a/installers/osx/release_x86_64.sh
+++ b/installers/osx/release_x86_64.sh
@@@ -7,9 -7,9 +7,15 @@@
# 3. cd utils and build E-Pyo
# 4. cd installer/osx and build the realease, only x86_64 version
++<<<<<<< HEAD
+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"
++>>>>>>> upstream/0.7.6
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 --combined installers/win/README-win32-py26.txt
index e482de4,b974713..e60f08e
--- a/installers/win/README-win32-py26.txt
+++ b/installers/win/README-win32-py26.txt
@@@ -1,21 -1,21 +1,45 @@@
++<<<<<<< HEAD
+Pyo is a Python module written in C to help digital signal processing script creation.
+
+* Python 2.6 must be installed on your system before running this installer. *
+
+http://www.python.org/download/releases/2.6.6/
+
+To use the WxPython toolkit for widgets, you need to install wxPython 3.0 for python 2.6:
+
+http://www.wxpython.org/download.php#stable
+
+This installer will leave a folder called pyo_examples on the Desktop,
+it's a good starting point to explore the library!
+
+In a Command Prompt:
+
+cd Desktop\pyo_examples\algorithmic
+python 01_music_box.py
+
+Please, send comments and bugs to:
+
+belangeo at gmail.com
++=======
+ Pyo is a Python module written in C to help digital signal processing script creation.
+
+ * Python 2.6 must be installed on your system before running this installer. *
+
+ http://www.python.org/download/releases/2.6.6/
+
+ To use the WxPython toolkit for widgets, you need to install wxPython 3.0 for python 2.6:
+
+ http://www.wxpython.org/download.php#stable
+
+ This installer will leave a folder called pyo_examples on the Desktop,
+ it's a good starting point to explore the library!
+
+ In a Command Prompt:
+
+ cd Desktop\pyo_examples\algorithmic
+ python 01_music_box.py
+
+ Please, send comments and bugs to:
+
+ belangeo at gmail.com
++>>>>>>> upstream/0.7.6
diff --combined installers/win/README-win32-py27.txt
index eddb84d,e3f8d78..3ae160e
--- a/installers/win/README-win32-py27.txt
+++ b/installers/win/README-win32-py27.txt
@@@ -1,21 -1,21 +1,45 @@@
++<<<<<<< HEAD
+Pyo is a Python module written in C to help digital signal processing script creation.
+
+* Python 2.7 must be installed on your system before running this installer. *
+
+http://www.python.org/download/
+
+To use the WxPython toolkit for widgets, you need to install wxPython 3.0 for python 2.7:
+
+http://www.wxpython.org/download.php#stable
+
+This installer will leave a folder called pyo_examples on the Desktop,
+it's a good starting point to explore the library!
+
+In a Command Prompt:
+
+cd Desktop\pyo_examples\algorithmic
+python 01_music_box.py
+
+Please, send comments and bugs to:
+
+belangeo at gmail.com
++=======
+ Pyo is a Python module written in C to help digital signal processing script creation.
+
+ * Python 2.7 must be installed on your system before running this installer. *
+
+ http://www.python.org/download/
+
+ To use the WxPython toolkit for widgets, you need to install wxPython 3.0 for python 2.7:
+
+ http://www.wxpython.org/download.php#stable
+
+ This installer will leave a folder called pyo_examples on the Desktop,
+ it's a good starting point to explore the library!
+
+ In a Command Prompt:
+
+ cd Desktop\pyo_examples\algorithmic
+ python 01_music_box.py
+
+ Please, send comments and bugs to:
+
+ belangeo at gmail.com
++>>>>>>> upstream/0.7.6
diff --combined installers/win/win_installer_py26.iss
index 8f0acd5,969ccb3..c569ddd
--- a/installers/win/win_installer_py26.iss
+++ b/installers/win/win_installer_py26.iss
@@@ -1,15 -1,15 +1,30 @@@
++<<<<<<< HEAD
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+#define appName "pyo"
+#define pyVer "2.6"
+#define appVer "0.7.5"
+
+[Setup]
+; NOTE: The value of AppId uniquely identifies this application.
+; Do not use the same AppId value in installers for other applications.
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+AppId={{AC79C5C4-BE36-419E-B94A-98C6D0DCF4B9}
++=======
+ ; Script generated by the Inno Setup Script Wizard.
+ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+ #define appName "pyo"
+ #define pyVer "2.6"
+ #define appVer "0.7.6"
+
+ [Setup]
+ ; NOTE: The value of AppId uniquely identifies this application.
+ ; Do not use the same AppId value in installers for other applications.
+ ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+ AppId={{AC79C5C4-BE36-419E-B94A-98C6D0DCF4B9}
++>>>>>>> upstream/0.7.6
AppName={#appName}
AppVersion={#appVer}
AppPublisher=iACT.umontreal.ca
@@@ -21,82 -21,82 +36,161 @@@ DisableDirPage=n
AlwaysShowDirOnReadyPage=yes
DefaultGroupName={#appName}
AllowNoIcons=yes
++<<<<<<< HEAD
+InfoBeforeFile=C:\Users\olipet\svn\pyo\installers\win\\README-win32-py26.txt
+LicenseFile=C:\Users\olipet\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
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+
+; should use PYTHONPATH variable
+[Files]
+Source: "C:\Python26\Lib\site-packages\pyo.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\pyo64.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\pyolib\*"; DestDir: "{app}\Lib\site-packages\pyolib"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Python26\Lib\site-packages\_pyo.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\_pyo64.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\libsndfile-1.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\lo.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\portaudio.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\portmidi.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\porttime.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\pthreadVC2.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python26\Lib\site-packages\msvcr90.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+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
+; 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
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
+
+[Icons]
+Name: "{group}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; WorkingDir: "{pf}\E-Pyo"
+Name: "{commondesktop}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; Tasks: desktopicon
+
+[Run]
+Filename: "{pf}\E-Pyo\E-Pyo.exe"; Description: "{cm:LaunchProgram,E-Pyo}"; Flags: nowait postinstall skipifsilent
+
+[InstallDelete]
+Type: filesandordirs; Name: "{userdesktop}\pyo_examples";
+Type: filesandordirs; Name: "{userdocs}\.epyo";
+;;;;;;;;;;;;;
+
+[Registry]
+Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "C:\Python26;{olddata}"; Check: NeedsAddPath('{app}')
+
+[Code]
+procedure ExitProcess(exitCode:integer);
+ external 'ExitProcess at kernel32.dll stdcall';
+
+function NeedsAddPath(Param: string): boolean;
+var
+ OrigPath: string;
+begin
+ if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
+ 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
+ 'Path', OrigPath)
+ then begin
+ Result := True;
+ exit;
+ end;
+ // look for the path with leading and trailing semicolon
+ // Pos() returns 0 if not found
+ Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
+end;
+
++=======
+ 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\olivier\svn\pyo\utils\E-PyoIcon.ico
+
+ [Languages]
+ Name: "english"; MessagesFile: "compiler:Default.isl"
+
+ ; should use PYTHONPATH variable
+ [Files]
+ Source: "C:\Python26\Lib\site-packages\pyo.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\pyo64.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\pyolib\*"; DestDir: "{app}\Lib\site-packages\pyolib"; Flags: ignoreversion recursesubdirs createallsubdirs
+ Source: "C:\Python26\Lib\site-packages\_pyo.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\_pyo64.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\libsndfile-1.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\lo.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\portaudio.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\portmidi.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\porttime.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\pthreadVC2.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python26\Lib\site-packages\msvcr90.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ 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\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\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}"
+
+ [Icons]
+ Name: "{group}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; WorkingDir: "{pf}\E-Pyo"
+ Name: "{commondesktop}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; Tasks: desktopicon
+
+ [Run]
+ Filename: "{pf}\E-Pyo\E-Pyo.exe"; Description: "{cm:LaunchProgram,E-Pyo}"; Flags: nowait postinstall skipifsilent
+
+ [InstallDelete]
+ Type: filesandordirs; Name: "{userdesktop}\pyo_examples";
+ Type: filesandordirs; Name: "{userdocs}\.epyo";
+ ;;;;;;;;;;;;;
+
+ [Registry]
+ Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "C:\Python26;{olddata}"; Check: NeedsAddPath('{app}')
+
+ [Code]
+ procedure ExitProcess(exitCode:integer);
+ external 'ExitProcess at kernel32.dll stdcall';
+
+ function NeedsAddPath(Param: string): boolean;
+ var
+ OrigPath: string;
+ begin
+ if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
+ 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
+ 'Path', OrigPath)
+ then begin
+ Result := True;
+ exit;
+ end;
+ // look for the path with leading and trailing semicolon
+ // Pos() returns 0 if not found
+ Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
+ end;
+
++>>>>>>> upstream/0.7.6
function GetDirName(Value: string): string;
var
InstallPath: string;
@@@ -128,6 -128,6 +222,12 @@@ begi
BEGIN
Result := 'C:\Python26';
END
++<<<<<<< HEAD
+end;
+
+
++=======
+ end;
+
+
++>>>>>>> upstream/0.7.6
diff --combined installers/win/win_installer_py27.iss
index af16bc9,797e6f4..10c214c
--- a/installers/win/win_installer_py27.iss
+++ b/installers/win/win_installer_py27.iss
@@@ -1,99 -1,99 +1,198 @@@
++<<<<<<< HEAD
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+#define appName "pyo"
+#define pyVer "2.7"
+#define appVer "0.7.5"
+
+[Setup]
+; NOTE: The value of AppId uniquely identifies this application.
+; Do not use the same AppId value in installers for other applications.
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+AppId={{59447873-F994-4BC7-8B1D-0DDCA5B6AFFD}
+AppName={#appName}
+AppVersion={#appVer}
+AppPublisher=iACT.umontreal.ca
+AppPublisherURL=http://code.google.com/p/pyo
+AppSupportURL=http://code.google.com/p/pyo
+AppUpdatesURL=http://code.google.com/p/pyo
+DefaultDirName={code:GetDirName}
+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
+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
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+
+[Files]
+Source: "C:\Python27\Lib\site-packages\pyo.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\pyo64.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\pyolib\*"; DestDir: "{app}\Lib\site-packages\pyolib"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Python27\Lib\site-packages\_pyo.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\_pyo64.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\libsndfile-1.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\lo.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\portaudio.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\portmidi.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\porttime.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\pthreadVC2.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+Source: "C:\Python27\Lib\site-packages\msvcr90.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+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
+; 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
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
+
+[Icons]
+Name: "{group}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; WorkingDir: "{pf}\E-Pyo"
+Name: "{commondesktop}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; Tasks: desktopicon
+
+[Run]
+Filename: "{pf}\E-Pyo\E-Pyo.exe"; Description: "{cm:LaunchProgram,E-Pyo}"; Flags: nowait postinstall skipifsilent
+
+[InstallDelete]
+Type: filesandordirs; Name: "{userdesktop}\pyo_examples";
+Type: filesandordirs; Name: "{userdocs}\.epyo";
+;;;;;;;;;;;;;
+
+[Registry]
+Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{app};{olddata}"; Check: NeedsAddPath('{app}')
+
+[Code]
+procedure ExitProcess(exitCode:integer);
+ external 'ExitProcess at kernel32.dll stdcall';
+
+function NeedsAddPath(Param: string): boolean;
+var
+ OrigPath: string;
+begin
+ if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
+ 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
+ 'Path', OrigPath)
+ then begin
+ Result := True;
+ exit;
+ end;
+ // look for the path with leading and trailing semicolon
+ // Pos() returns 0 if not found
+ Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
+end;
++=======
+ ; Script generated by the Inno Setup Script Wizard.
+ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+ #define appName "pyo"
+ #define pyVer "2.7"
+ #define appVer "0.7.6"
+
+ [Setup]
+ ; NOTE: The value of AppId uniquely identifies this application.
+ ; Do not use the same AppId value in installers for other applications.
+ ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+ AppId={{59447873-F994-4BC7-8B1D-0DDCA5B6AFFD}
+ AppName={#appName}
+ AppVersion={#appVer}
+ AppPublisher=iACT.umontreal.ca
+ AppPublisherURL=http://code.google.com/p/pyo
+ AppSupportURL=http://code.google.com/p/pyo
+ AppUpdatesURL=http://code.google.com/p/pyo
+ DefaultDirName={code:GetDirName}
+ DisableDirPage=no
+ AlwaysShowDirOnReadyPage=yes
+ DefaultGroupName={#appName}
+ AllowNoIcons=yes
+ 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\olivier\svn\pyo\utils\E-PyoIcon.ico
+
+ [Languages]
+ Name: "english"; MessagesFile: "compiler:Default.isl"
+
+ [Files]
+ Source: "C:\Python27\Lib\site-packages\pyo.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\pyo64.py"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\pyolib\*"; DestDir: "{app}\Lib\site-packages\pyolib"; Flags: ignoreversion recursesubdirs createallsubdirs
+ Source: "C:\Python27\Lib\site-packages\_pyo.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\_pyo64.pyd"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\libsndfile-1.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\lo.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\portaudio.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\portmidi.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\porttime.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\pthreadVC2.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ Source: "C:\Python27\Lib\site-packages\msvcr90.dll"; DestDir: "{app}\Lib\site-packages"; Flags: ignoreversion
+ 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\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\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}"
+
+ [Icons]
+ Name: "{group}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; WorkingDir: "{pf}\E-Pyo"
+ Name: "{commondesktop}\E-Pyo"; Filename: "{pf}\E-Pyo\E-Pyo.exe"; Tasks: desktopicon
+
+ [Run]
+ Filename: "{pf}\E-Pyo\E-Pyo.exe"; Description: "{cm:LaunchProgram,E-Pyo}"; Flags: nowait postinstall skipifsilent
+
+ [InstallDelete]
+ Type: filesandordirs; Name: "{userdesktop}\pyo_examples";
+ Type: filesandordirs; Name: "{userdocs}\.epyo";
+ ;;;;;;;;;;;;;
+
+ [Registry]
+ Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{app};{olddata}"; Check: NeedsAddPath('{app}')
+
+ [Code]
+ procedure ExitProcess(exitCode:integer);
+ external 'ExitProcess at kernel32.dll stdcall';
+
+ function NeedsAddPath(Param: string): boolean;
+ var
+ OrigPath: string;
+ begin
+ if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
+ 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
+ 'Path', OrigPath)
+ then begin
+ Result := True;
+ exit;
+ end;
+ // look for the path with leading and trailing semicolon
+ // Pos() returns 0 if not found
+ Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
+ end;
++>>>>>>> upstream/0.7.6
function GetDirName(Value: string): string;
var
diff --combined pyo.py
index 02ae816,8c2eb72..48131ba
--- a/pyo.py
+++ b/pyo.py
@@@ -97,7 -97,7 +97,11 @@@ OBJECTS_TREE = {'functions': sorted(['p
'BrownNoise', 'Rossler', 'Lorenz', 'LFO', 'SumOsc', 'SuperSaw', 'RCOsc']),
'internals': sorted(['Dummy', 'InputFader', 'Mix', 'VarPort']),
'midi': sorted(['Midictl', 'CtlScan', 'CtlScan2', 'Notein', 'MidiAdsr', 'MidiDelAdsr', 'Bendin',
++<<<<<<< HEAD
+ 'Touchin', 'Programin']),
++=======
+ 'Touchin', 'Programin', 'RawMidi']),
++>>>>>>> upstream/0.7.6
'opensndctrl': sorted(['OscReceive', 'OscSend', 'OscDataSend', 'OscDataReceive', 'OscListReceive']),
'pan': sorted(['Pan', 'SPan', 'Switch', 'Selector', 'Mixer', 'VoiceManager']),
'pattern': sorted(['Pattern', 'Score', 'CallAfter']),
diff --combined pyolib/_core.py
index 64f875d,5549858..cb42326
--- a/pyolib/_core.py
+++ b/pyolib/_core.py
@@@ -18,7 -18,7 +18,11 @@@ GNU Lesser General Public License for m
You should have received a copy of the GNU Lesser General Public
License along with pyo. If not, see <http://www.gnu.org/licenses/>.
"""
++<<<<<<< HEAD
+from types import ListType, TupleType, SliceType, FloatType, StringType, UnicodeType, NoneType
++=======
+ from types import BooleanType, ListType, TupleType, SliceType, LongType, IntType, FloatType, StringType, UnicodeType, NoneType
++>>>>>>> upstream/0.7.6
import random, os, sys, inspect, tempfile
from subprocess import call
from weakref import proxy
@@@ -64,6 -64,147 +68,147 @@@ FUNCTIONS_INIT_LINES = {"pa_count_host_
"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.
@@@ -245,19 -386,13 +390,26 @@@ class WeakMethod(object)
else:
self.method = callobj
self.isMethod = False
++<<<<<<< HEAD
+
+ def __call__(self, *args, **kwargs):
+ """Call the method with args and kwargs as needed."""
+ if self.isMethod:
+ return self.method(self.target, *args, **kwargs)
+ else:
+ return self.method(*args, **kwargs)
+
+class PyoError(Exception):
+ """Base class for all pyo exceptions."""
++=======
++>>>>>>> upstream/0.7.6
- class PyoServerStateException(PyoError):
- """Error raised when an operation requires the server to be booted."""
+ def __call__(self, *args, **kwargs):
+ """Call the method with args and kwargs as needed."""
+ if self.isMethod:
+ return self.method(self.target, *args, **kwargs)
+ else:
+ return self.method(*args, **kwargs)
######################################################################
### PyoObjectBase -> abstract class for pyo objects
@@@ -317,17 -452,17 +469,32 @@@ class PyoObjectBase(object)
return self._base_objs
def getServer(self):
++<<<<<<< HEAD
+ """
+ Return a reference to the current Server object.
+
+ """
+ return self._base_objs[0].getServer()
+
+ def getSamplingRate(self):
+ """
+ Return the current sampling rate (samples per second), as a float.
++=======
+ """
+ Return a reference to the current Server object.
+
+ """
+ return self._base_objs[0].getServer()
++>>>>>>> upstream/0.7.6
+
+ def getSamplingRate(self):
+ """
++<<<<<<< HEAD
++=======
+ Return the current sampling rate (samples per second), as a float.
"""
++>>>>>>> upstream/0.7.6
return self._base_objs[0].getServer().getSamplingRate()
def getBufferSize(self):
@@@ -606,6 -741,7 +773,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 +793,7 @@@
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 +820,7 @@@
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 +843,15 @@@
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 +888,15 @@@
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 +917,10 @@@
"""
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 +963,7 @@@
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 +985,7 @@@
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 +1000,7 @@@
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 +1015,7 @@@
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 +1030,7 @@@
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 +1053,7 @@@
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 +1178,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 +1204,7 @@@
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 +1240,7 @@@
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 +1260,7 @@@
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 +1277,7 @@@
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 +1302,7 @@@
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 +1320,7 @@@
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 +1339,7 @@@
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 +1409,7 @@@
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 +1426,7 @@@
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 +1441,7 @@@
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 +1456,7 @@@
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 +1471,7 @@@
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 +1489,10 @@@
value(s) to add.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "T", x)
++>>>>>>> upstream/0.7.6
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 +1517,10 @@@
value(s) to substract.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "T", x)
++>>>>>>> upstream/0.7.6
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 +1545,10 @@@
value(s) to multiply.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "T", x)
++>>>>>>> upstream/0.7.6
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 +1597,10 @@@
the server GUI before showing the controller window.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "SB", title, wxnoserver)
++>>>>>>> upstream/0.7.6
samples = self._base_objs[0].getViewTable((500,200))
createViewTableWindow(samples, title, wxnoserver, self.__class__.__name__, self)
@@@ -1444,6 -1620,7 +1664,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 +1690,7 @@@
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 +1733,7 @@@
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 +1754,7 @@@
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 +1773,7 @@@
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 +1794,10 @@@
the server GUI before showing the controller window.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "SB", title, wxnoserver)
++>>>>>>> upstream/0.7.6
samples = self._base_objs[0].getViewData()
createViewMatrixWindow(samples, self.getSize(), title, wxnoserver, self)
@@@ -1619,6 -1801,7 +1848,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 +1871,7 @@@
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 +1913,7 @@@
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 +2003,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 +2107,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 +2125,7 @@@
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 +2161,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 +2177,7 @@@
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 +2233,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 +2251,7 @@@
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 +2266,7 @@@
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 +2281,10 @@@
new `function` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "c", x)
++>>>>>>> upstream/0.7.6
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 +2332,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 +2349,7 @@@
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 +2364,7 @@@
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 +2419,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 +2440,7 @@@
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 +2454,7 @@@
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 +2469,7 @@@
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 +2531,14 @@@ 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
- self._comp = comp
+ 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._mode = mode
self._in_fader = InputFader(input)
self.comp_dict = {"<": 0, "<=": 1, ">": 2, ">=": 3, "==": 4, "!=": 5}
@@@ -2308,6 -2506,7 +2560,7 @@@
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 +2574,13 @@@
New comparison signal.
"""
++<<<<<<< HEAD
+ 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)
++>>>>>>> upstream/0.7.6
self._comp = x
x, lmax = convertArgsToLists(x)
[obj.setComp(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -2340,6 -2537,7 +2597,7 @@@
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 --combined pyolib/_wxwidgets.py
index aeec4fe,137eb23..491b0ee
--- a/pyolib/_wxwidgets.py
+++ b/pyolib/_wxwidgets.py
@@@ -1576,7 -1576,7 +1576,11 @@@ 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)
++<<<<<<< HEAD
+ 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)
++>>>>>>> upstream/0.7.6
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 +1588,15 @@@
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)
++<<<<<<< HEAD
+ self.dispBox.Add(self.box, 1, wx.EXPAND, 0)
+ 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.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|wx.BOTTOM, 5)
++>>>>>>> upstream/0.7.6
self.dispBox.AddSpacer(5)
self.mainBox.Add(self.dispBox, 1, wx.EXPAND)
self.panel.SetSizer(self.mainBox)
@@@ -1641,7 -1641,6 +1651,10 @@@ class ScopePanel(wx.Panel)
def setGain(self, gain):
self.gain = gain
++<<<<<<< HEAD
+ print self.gain
++=======
++>>>>>>> upstream/0.7.6
def setLength(self, length):
self.length = length
diff --combined pyolib/analysis.py
index a71fc86,81f1db6..bb2b93b
--- a/pyolib/analysis.py
+++ b/pyolib/analysis.py
@@@ -60,6 -60,7 +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 +80,7 @@@
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 +94,7 @@@
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 +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 +171,7 @@@
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 +185,7 @@@
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 +200,7 @@@
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 +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 +283,7 @@@
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 +297,7 @@@
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 +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 +396,7 @@@
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 +410,7 @@@
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 +425,7 @@@
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 +440,7 @@@
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 +455,7 @@@
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 +542,10 @@@ class Centroid(PyoObject)
"""
def __init__(self, input, size=1024, mul=1, add=0):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oiOO", input, size, mul, add)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self, mul, add)
self._input = input
self._size = size
@@@ -545,6 -562,7 +565,10 @@@
Crossfade time between old and new input. Default to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -566,7 -584,7 +590,11 @@@ class AttackDetector(PyoObject)
"""
Audio signal onset detection.
++<<<<<<< HEAD
+ AttackDetector anaylises an audio signal in input an output a trigger each
++=======
+ AttackDetector analyses an audio signal in input and output a trigger each
++>>>>>>> upstream/0.7.6
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 +633,10 @@@
"""
def __init__(self, input, deltime=0.005, cutoff=10, maxthresh=3, minthresh=-30, reltime=0.1, mul=1, add=0):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "onnnnnOO", input, deltime, cutoff, maxthresh, minthresh, reltime, mul, add)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self, mul, add)
self._input = input
self._deltime = deltime
@@@ -628,6 -647,7 +660,10 @@@
Crossfade time between old and new input. Default to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -641,6 -661,7 +677,10 @@@
New delay between rms analysis.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._deltime = x
x, lmax = convertArgsToLists(x)
[obj.setDeltime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -655,6 -676,7 +695,10 @@@
New cutoff for the follower lowpass filter.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._cutoff = x
x, lmax = convertArgsToLists(x)
[obj.setCutoff(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -669,6 -691,7 +713,10 @@@
New attack threshold in dB.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._maxthresh = x
x, lmax = convertArgsToLists(x)
[obj.setMaxthresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -683,6 -706,7 +731,10 @@@
New minimum threshold in dB.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._minthresh = x
x, lmax = convertArgsToLists(x)
[obj.setMinthresh(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -697,6 -721,7 +749,10 @@@
Time, in seconds, to wait before reporting a new attack.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._reltime = x
x, lmax = convertArgsToLists(x)
[obj.setReltime(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -803,6 -828,7 +859,10 @@@ class Spectrum(PyoObject)
"""
def __init__(self, input, size=1024, wintype=2, function=None):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oiiC", input, size, wintype, function)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self)
self.points = None
self.viewFrame = None
@@@ -836,6 -862,7 +896,10 @@@
Crossfade time between old and new input. Default to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -849,6 -876,7 +913,10 @@@
new `size` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._size = x
x, lmax = convertArgsToLists(x)
[obj.setSize(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -863,6 -891,7 +931,10 @@@
new `wintype` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._wintype = x
x, lmax = convertArgsToLists(x)
[obj.setWinType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -879,6 -908,7 +951,10 @@@
and will receive the data as a list of lists (one list per channel).
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "C", function)
++>>>>>>> upstream/0.7.6
self._function = getWeakMethodRef(function)
def poll(self, active):
@@@ -892,6 -922,7 +968,10 @@@
defaults to True.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "B", active)
++>>>>>>> upstream/0.7.6
if active:
self._timer.play()
else:
@@@ -908,6 -939,7 +988,10 @@@
retrieve the current analysis frame. defaults to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "N", time)
++>>>>>>> upstream/0.7.6
self._timer.time = time
def setLowbound(self, x):
@@@ -922,6 -954,7 +1006,10 @@@
new `lowbound` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
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 +1027,10 @@@
new `highbound` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
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 +1063,10 @@@
new `width` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._width = x
x, lmax = convertArgsToLists(x)
[obj.setWidth(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -987,6 -1022,7 +1083,10 @@@
new `height` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._height = x
x, lmax = convertArgsToLists(x)
[obj.setHeight(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1002,6 -1038,7 +1102,10 @@@
it back to linear. Defaults to False.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "b", x)
++>>>>>>> upstream/0.7.6
self._fscaling = x
x, lmax = convertArgsToLists(x)
[obj.setFscaling(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1019,6 -1056,7 +1123,10 @@@
False turns it back to linear. Defaults to True.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "b", x)
++>>>>>>> upstream/0.7.6
self._mscaling = x
x, lmax = convertArgsToLists(x)
[obj.setMscaling(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1053,6 -1091,7 +1161,10 @@@
new `gain` attribute, as linear values.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._gain = x
x, lmax = convertArgsToLists(x)
[obj.setGain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1073,6 -1112,7 +1185,10 @@@
the server GUI before showing the controller window.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "SB", title, wxnoserver)
++>>>>>>> upstream/0.7.6
createSpectrumWindow(self, title, wxnoserver)
def _setViewFrame(self, frame):
@@@ -1196,6 -1236,7 +1312,10 @@@ class Scope(PyoObject)
"""
def __init__(self, input, length=0.05, gain=0.67):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oNN", input, length, gain)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self)
self.points = None
self.viewFrame = None
@@@ -1222,6 -1263,7 +1342,10 @@@
Crossfade time between old and new input. Default to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -1235,6 -1277,7 +1359,10 @@@
new `length` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "N", x)
++>>>>>>> upstream/0.7.6
self._length = x
self._timer.time = x
[obj.setLength(x) for obj in self._base_objs]
@@@ -1249,6 -1292,7 +1377,10 @@@
new `gain` attribute, as linear values.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._gain = x
x, lmax = convertArgsToLists(x)
[obj.setGain(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1264,6 -1308,7 +1396,10 @@@
defaults to True.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "B", active)
++>>>>>>> upstream/0.7.6
if active:
self._timer.play()
else:
@@@ -1283,6 -1328,7 +1419,10 @@@
width is 500.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "I", x)
++>>>>>>> upstream/0.7.6
self._width = x
[obj.setWidth(x) for obj in self._base_objs]
@@@ -1300,6 -1346,7 +1440,10 @@@
height is 400.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "I", x)
++>>>>>>> upstream/0.7.6
self._height = x
[obj.setHeight(x) for obj in self._base_objs]
@@@ -1319,6 -1366,7 +1463,10 @@@
the server GUI before showing the controller window.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "SB", title, wxnoserver)
++>>>>>>> upstream/0.7.6
createScopeWindow(self, title, wxnoserver)
def _setViewFrame(self, frame):
@@@ -1393,6 -1441,7 +1541,10 @@@ class PeakAmp(PyoObject)
"""
def __init__(self, input, function=None, mul=1, add=0):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oCOO", input, function, mul, add)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self, mul, add)
self._input = input
if callable(function):
@@@ -1404,7 -1453,7 +1556,11 @@@
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()
++<<<<<<< HEAD
+ self._timer = Pattern(self._buildList, bs/sr).play()
++=======
+ self._timer = Pattern(self._buildList, 0.06).play()
++>>>>>>> upstream/0.7.6
def setInput(self, x, fadetime=0.05):
"""
@@@ -1418,6 -1467,7 +1574,10 @@@
Crossfade time between old and new input. Default to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -1431,9 -1481,23 +1591,29 @@@
New function to call with amplitude values in arguments.
"""
++<<<<<<< HEAD
+ if callable(x):
+ self._function = getWeakMethodRef(x)
+
++=======
+ 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
+
++>>>>>>> upstream/0.7.6
def out(self, chnl=0, inc=1, dur=0, delay=0):
return self.play(dur, delay)
diff --combined pyolib/arithmetic.py
index 3c12942,f1a476b..3895dda
--- a/pyolib/arithmetic.py
+++ b/pyolib/arithmetic.py
@@@ -47,6 -47,7 +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 +66,7 @@@
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 +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 +117,7 @@@
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 +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 +175,7 @@@
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 +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 +228,7 @@@
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 +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 +286,7 @@@
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 +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 +340,7 @@@
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 +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 +394,7 @@@
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 +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 +448,7 @@@
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 +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 +503,7 @@@
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 +518,7 @@@
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 +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 +580,7 @@@
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 +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 +634,7 @@@
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 +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 +688,7 @@@
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 +721,10 @@@ class Tanh(PyoObject)
"""
def __init__(self, input, mul=1, add=0):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oOO", input, mul, add)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self, mul, add)
self._input = input
self._in_fader = InputFader(input)
@@@ -714,6 -740,7 +743,10 @@@
Crossfade time between old and new input. Default to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
diff --combined pyolib/dynamics.py
index dbe2ca2,5867977..2fa10a6
--- a/pyolib/dynamics.py
+++ b/pyolib/dynamics.py
@@@ -49,6 -49,7 +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 +70,7 @@@
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 +84,7 @@@
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 +99,7 @@@
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 +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 +184,7 @@@
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 +198,7 @@@
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 +213,7 @@@
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 +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 +296,7 @@@
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 +310,7 @@@
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 +325,7 @@@
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 +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 +432,7 @@@
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 +446,7 @@@
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 +461,7 @@@
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 +476,7 @@@
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 +491,7 @@@
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 +506,7 @@@
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 +521,7 @@@
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 +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 +650,7 @@@
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 +664,7 @@@
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 +679,7 @@@
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 +694,7 @@@
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 +709,7 @@@
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 +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 +806,7 @@@
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 +824,7 @@@
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 +840,7 @@@
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 +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 +913,7 @@@
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 +927,7 @@@
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 +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 +993,7 @@@
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 +1007,7 @@@
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 +1028,4 @@@
"""float or PyoObject. Comparison value."""
return self._comp
@comp.setter
- def comp(self, x): self.setComp(x)
+ def comp(self, x): self.setComp(x)
diff --combined pyolib/effects.py
index aa6ca12,0e4e915..1a6ba56
--- a/pyolib/effects.py
+++ b/pyolib/effects.py
@@@ -55,6 -55,7 +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 +76,7 @@@
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 +90,7 @@@
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 +105,7 @@@
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 +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 +196,7 @@@
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 +210,7 @@@
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 +225,7 @@@
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 +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 +314,7 @@@
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 +328,7 @@@
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 +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 +411,7 @@@
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 +425,7 @@@
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 +440,7 @@@
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 +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 +530,7 @@@
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 +544,7 @@@
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 +559,7 @@@
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 +574,7 @@@
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 +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 +669,7 @@@
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 +683,7 @@@
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 +698,7 @@@
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 +713,7 @@@
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 +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 +818,7 @@@
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 +832,7 @@@
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 +853,13 @@@
class WGVerb(PyoObject):
"""
- 8 delay line mono FDN reverb.
+ 8 delay lines mono FDN reverb.
++<<<<<<< HEAD
+ 8 delay line FDN reverb, with feedback matrix based upon physical
++=======
+ 8 delay lines FDN reverb, with feedback matrix based upon physical
++>>>>>>> upstream/0.7.6
modeling scattering junction of 8 lossless waveguides of equal
characteristic impedance.
@@@ -857,6 -885,7 +889,7 @@@
"""
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 +911,7 @@@
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 +925,7 @@@
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 +940,7 @@@
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 +955,7 @@@
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 +1024,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 +1046,7 @@@
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 +1060,7 @@@
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 +1075,7 @@@
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 +1090,7 @@@
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 +1156,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 +1178,7 @@@
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 +1192,7 @@@
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 +1207,7 @@@
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 +1222,7 @@@
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 +1285,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 +1304,7 @@@
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 +1361,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 +1387,7 @@@
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 +1401,7 @@@
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 +1416,7 @@@
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 +1431,7 @@@
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 +1446,7 @@@
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 +1461,7 @@@
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 +1476,7 @@@
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 +1584,10 @@@ class SmoothDelay(PyoObject)
"""
def __init__(self, input, delay=0.25, feedback=0, crossfade=0.05, maxdelay=1, mul=1, add=0):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oOOnnOO", input, delay, feedback, crossfade, maxdelay, mul, add)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self, mul, add)
self._input = input
self._delay = delay
@@@ -1549,6 -1603,7 +1610,10 @@@
Crossfade time between old and new input. Defaults to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -1562,6 -1617,7 +1627,10 @@@
New `delay` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._delay = x
x, lmax = convertArgsToLists(x)
[obj.setDelay(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1576,6 -1632,7 +1645,10 @@@
New `feedback` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._feedback = x
x, lmax = convertArgsToLists(x)
[obj.setFeedback(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1590,6 -1647,7 +1663,10 @@@
New `crossfade` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._crossfade = x
x, lmax = convertArgsToLists(x)
[obj.setCrossfade(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1665,6 -1723,7 +1742,10 @@@ class FreqShift(PyoObject)
"""
def __init__(self, input, shift=100, mul=1, add=0):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oOOO", input, shift, mul, add)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self, mul, add)
self._input = input
self._shift = shift
@@@ -1719,6 -1778,7 +1800,10 @@@
Crossfade time between old and new input. Defaults to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -1732,6 -1792,7 +1817,10 @@@
New `shift` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._shift = x
x, lmax = convertArgsToLists(x)
[obj.setFreq(wrap(x,i)) for i, obj in enumerate(self._sin_objs)]
diff --combined pyolib/generators.py
index bb15550,db2fa97..aa59fd3
--- a/pyolib/generators.py
+++ b/pyolib/generators.py
@@@ -55,6 -55,7 +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 +72,7 @@@
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 +87,7 @@@
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 +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 +163,7 @@@
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 +178,7 @@@
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 +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 +245,7 @@@
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 +260,7 @@@
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 +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 +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 +352,7 @@@
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 +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 +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 +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 +465,7 @@@
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 +480,7 @@@
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 +495,7 @@@
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 +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 +583,7 @@@
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 +598,7 @@@
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 +613,7 @@@
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 +628,7 @@@
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 +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 +710,7 @@@
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 +725,7 @@@
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 +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 +812,7 @@@
new `pitch` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@@ -802,6 -830,7 +830,7 @@@
new `chaos` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._chaos = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@@ -867,6 -896,7 +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 +919,7 @@@
new `pitch` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._pitch = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@@ -906,6 -937,7 +937,7 @@@
new `chaos` attribute. {0. -> 1.}
"""
+ pyoArgsAssert(self, "O", x)
self._chaos = x
x, lmax = convertArgsToLists(x)
if self._stereo:
@@@ -965,6 -997,7 +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 +1015,7 @@@
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 +1030,7 @@@
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 +1054,10 @@@
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._type = x
x, lmax = convertArgsToLists(x)
[obj.setType(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1102,6 -1138,7 +1141,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 +1159,7 @@@
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 +1174,7 @@@
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 +1189,7 @@@
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 +1258,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 +1276,7 @@@
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 +1291,7 @@@
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 +1306,7 @@@
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 +1367,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 +1384,7 @@@
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 +1399,7 @@@
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 --combined pyolib/midi.py
index dbed36d,588fc88..9b8c0da
--- a/pyolib/midi.py
+++ b/pyolib/midi.py
@@@ -71,6 -71,7 +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 +93,7 @@@
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 +104,11 @@@
: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 +119,11 @@@
: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 +138,7 @@@
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 +153,7 @@@
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 +167,7 @@@
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 +241,14 @@@ class CtlScan(PyoObject)
"""
def __init__(self, function, toprint=True):
+ pyoArgsAssert(self, "CB", function, toprint)
PyoObject.__init__(self)
++<<<<<<< HEAD
+ if not callable(function):
+ print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
+ exit()
++=======
++>>>>>>> upstream/0.7.6
self._function = WeakMethod(function)
self._toprint = toprint
self._base_objs = [CtlScan_base(self._function, self._toprint)]
@@@ -274,6 -279,7 +285,10 @@@
new `function` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "C", x)
++>>>>>>> upstream/0.7.6
self._function = WeakMethod(x)
[obj.setFunction(self._function) for i, obj in enumerate(self._base_objs)]
@@@ -287,6 -293,7 +302,7 @@@
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 +361,14 @@@ class CtlScan2(PyoObject)
"""
def __init__(self, function, toprint=True):
+ pyoArgsAssert(self, "CB", function, toprint)
PyoObject.__init__(self)
++<<<<<<< HEAD
+ if not callable(function):
+ print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
+ exit()
++=======
++>>>>>>> upstream/0.7.6
self._function = WeakMethod(function)
self._toprint = toprint
self._base_objs = [CtlScan2_base(self._function, self._toprint)]
@@@ -385,6 -390,7 +405,10 @@@
new `function` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "C", x)
++>>>>>>> upstream/0.7.6
self._function = WeakMethod(x)
[obj.setFunction(self._function) for i, obj in enumerate(self._base_objs)]
@@@ -398,6 -404,7 +422,7 @@@
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 +503,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 +548,7 @@@
new `channel` attribute.
"""
+ pyoArgsAssert(self, "I", x)
self._channel = x
self._base_handler.setChannel(x)
@@@ -538,6 -547,7 +565,7 @@@
new centralkey value.
"""
+ pyoArgsAssert(self, "I", x)
self._base_handler.setCentralKey(x)
def setStealing(self, x):
@@@ -554,6 -564,7 +582,7 @@@
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 +671,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 +688,11 @@@
: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 +707,7 @@@
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 +722,7 @@@
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 +784,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 +801,11 @@@
: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 +816,11 @@@
: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 +835,7 @@@
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 +893,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 +912,7 @@@
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 +967,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 +993,7 @@@
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 +1007,7 @@@
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 +1022,7 @@@
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 +1037,7 @@@
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 +1052,7 @@@
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 +1131,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 +1158,7 @@@
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 +1172,7 @@@
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 +1187,7 @@@
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 +1202,7 @@@
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 +1217,7 @@@
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 +1232,7 @@@
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 +1270,84 @@@
"""float. Duration of the release phase in seconds."""
return self._release
@release.setter
- def release(self, x): self.setRelease(x)
++<<<<<<< HEAD
++ def release(self, x): self.setRelease(x)
++=======
+ 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)
++>>>>>>> upstream/0.7.6
diff --combined pyolib/opensndctrl.py
index c92a9a5,163cd94..c856def
--- a/pyolib/opensndctrl.py
+++ b/pyolib/opensndctrl.py
@@@ -31,10 -31,9 +31,9 @@@ GNU Lesser General Public License for m
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 +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 +95,7 @@@
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 +119,7 @@@
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 +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 +207,7 @@@
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 +226,7 @@@
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 +244,7 @@@
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 +259,7 @@@
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 +313,25 @@@ class OscDataSend(PyoObject)
types : str
String specifying the types sequence of the message to be sent.
Possible values are:
++<<<<<<< HEAD
+ - 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)
++>>>>>>> upstream/0.7.6
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 +353,29 @@@
>>> 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"):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "siss", types, port, address, host)
++>>>>>>> upstream/0.7.6
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 +427,7 @@@
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 +444,7 @@@
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 +466,10 @@@
"""
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 +512,35 @@@
>>> 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
++<<<<<<< HEAD
+ if not callable(function):
+ print >> sys.stderr, 'TypeError: "function" argument of %s must be callable.\n' % self.__class__.__name__
+ exit()
++=======
++>>>>>>> upstream/0.7.6
self._function = WeakMethod(function)
self._address, lmax = convertArgsToLists(address)
# self._address is linked with list at C level
@@@ -527,6 -555,7 +572,7 @@@
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 +588,7 @@@
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 +639,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 +679,7 @@@
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 +698,7 @@@
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 +718,7 @@@
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 +733,7 @@@
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 --combined pyolib/pattern.py
index 26549d3,8147c41..a61d8bc
--- a/pyolib/pattern.py
+++ b/pyolib/pattern.py
@@@ -23,10 -23,8 +23,8 @@@ GNU Lesser General Public License for m
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 +60,19 @@@
"""
def __init__(self, function, time=1):
+ pyoArgsAssert(self, "cO", function, time)
PyoObject.__init__(self)
++<<<<<<< HEAD
+ 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()
++=======
++>>>>>>> upstream/0.7.6
self._function = getWeakMethodRef(function)
self._time = time
function, time, lmax = convertArgsToLists(function, time)
@@@ -86,6 -77,7 +88,10 @@@
new `function` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "c", x)
++>>>>>>> upstream/0.7.6
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 +106,7 @@@
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 +192,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 +221,7 @@@
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 +267,19 @@@ class CallAfter(PyoObject)
"""
def __init__(self, function, time=1, arg=None):
+ pyoArgsAssert(self, "cn", function, time)
PyoObject.__init__(self)
++<<<<<<< HEAD
+ 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()
++=======
++>>>>>>> upstream/0.7.6
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 --combined pyolib/tableprocess.py
index e36094b,88ba328..c60b2ed
--- a/pyolib/tableprocess.py
+++ b/pyolib/tableprocess.py
@@@ -62,6 -62,7 +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 +81,7 @@@
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 +96,7 @@@
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 +111,7 @@@
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 +126,7 @@@
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 +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 +224,7 @@@
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 +239,7 @@@
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 +254,7 @@@
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 +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 +344,7 @@@
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 +359,7 @@@
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 +374,7 @@@
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 +389,7 @@@
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 +404,7 @@@
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 +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 +560,7 @@@
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 +575,7 @@@
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 +590,7 @@@
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 +605,7 @@@
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 +620,7 @@@
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 +635,7 @@@
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 +650,7 @@@
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 +665,7 @@@
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 +680,7 @@@
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 +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 +827,7 @@@
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 +842,7 @@@
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 +857,7 @@@
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 +872,7 @@@
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 +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 +988,7 @@@
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 +1003,7 @@@
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 +1018,7 @@@
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 +1033,7 @@@
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 +1048,7 @@@
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 +1067,7 @@@
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 +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 +1161,7 @@@
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 +1176,7 @@@
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 +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 +1252,7 @@@
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 +1267,7 @@@
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 +1286,7 @@@
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 +1305,7 @@@
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 +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 +1384,7 @@@
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 +1399,7 @@@
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 +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 +1467,7 @@@
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 +1482,7 @@@
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 +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 +1603,10 @@@
Crossfade time between old and new input. Defaults to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -1564,6 -1617,7 +1620,10 @@@
new `table` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "t", x)
++>>>>>>> upstream/0.7.6
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1627,6 -1681,7 +1687,10 @@@ class TableWrite(PyoObject)
"""
def __init__(self, input, pos, table):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oot", input, pos, table)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self)
self._input = input
self._pos = pos
@@@ -1656,6 -1711,7 +1720,7 @@@
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 +1734,7 @@@
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 +1749,10 @@@
new `pos` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "o", x)
++>>>>>>> upstream/0.7.6
self._pos = x
x, lmax = convertArgsToLists(x)
[obj.setPos(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1746,6 -1804,7 +1816,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 +1847,7 @@@
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 +1861,7 @@@
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 +1876,7 @@@
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 +1944,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 +1968,7 @@@
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 +1983,7 @@@
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 +1998,7 @@@
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 +2013,7 @@@
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 +2028,7 @@@
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 +2043,7 @@@
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 +2058,7 @@@
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 +2170,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 +2210,7 @@@
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 +2226,7 @@@
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 +2240,7 @@@
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 +2331,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 +2358,7 @@@
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 +2373,7 @@@
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 +2388,7 @@@
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 +2403,7 @@@
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 +2418,7 @@@
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 +2433,7 @@@
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 +2448,7 @@@
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 +2463,7 @@@
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 +2478,7 @@@
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 +2493,7 @@@
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 +2636,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 +2666,7 @@@
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 +2680,7 @@@
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 +2741,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 +2764,7 @@@
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 +2779,7 @@@
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 +2794,7 @@@
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 +2809,7 @@@
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 +2824,7 @@@
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 +2839,7 @@@
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 +2855,10 @@@
while False means asynchronous.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "b", x)
++>>>>>>> upstream/0.7.6
self._sync = x
x, lmax = convertArgsToLists(x)
[obj.setSync(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -2832,6 -2928,7 +2943,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 +2960,7 @@@
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 +2975,7 @@@
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 +3059,10 @@@ 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):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "ttOOOOOOIOO", table, env, dens, pitch, pos, dur, dev, pan, chnls, mul, add)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self, mul, add)
self._table = table
self._env = env
@@@ -2972,6 -3072,7 +3090,10 @@@
new `table` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "t", x)
++>>>>>>> upstream/0.7.6
self._table = x
x, lmax = convertArgsToLists(x)
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -2986,6 -3087,7 +3108,10 @@@
new `env` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "t", x)
++>>>>>>> upstream/0.7.6
self._env = x
x, lmax = convertArgsToLists(x)
[obj.setEnv(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3000,6 -3102,7 +3126,10 @@@
new `dens` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._dens = x
x, lmax = convertArgsToLists(x)
[obj.setDens(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3014,6 -3117,7 +3144,10 @@@
new `pitch` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._pitch = x
x, lmax = convertArgsToLists(x)
[obj.setPitch(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3028,6 -3132,7 +3162,10 @@@
new `pos` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._pos = x
x, lmax = convertArgsToLists(x)
[obj.setPos(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3042,6 -3147,7 +3180,10 @@@
new `dur` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._dur = x
x, lmax = convertArgsToLists(x)
[obj.setDur(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3056,6 -3162,7 +3198,10 @@@
new `dev` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._dev = x
x, lmax = convertArgsToLists(x)
[obj.setDev(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3070,6 -3177,7 +3216,10 @@@
new `pan` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._pan = x
x, lmax = convertArgsToLists(x)
[obj.setPan(wrap(x,i)) for i, obj in enumerate(self._base_players)]
diff --combined pyolib/tables.py
index 6bdffb0,aeed3c1..f68a85b
--- a/pyolib/tables.py
+++ b/pyolib/tables.py
@@@ -52,6 -52,7 +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 +69,10 @@@
numbers 1,2,3, etc.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@@ -102,6 -104,7 +107,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 +123,10 @@@
New number of harmonics
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "I", x)
++>>>>>>> upstream/0.7.6
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 +162,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 +183,10 @@@
New number of harmonics
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "I", x)
++>>>>>>> upstream/0.7.6
self._order = x
list = []
for i in range(1,(self._order*2)):
@@@ -217,6 -223,7 +232,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 +250,10 @@@
numbers 1,2,3, ..., 12. Up to 12 partials can be specified.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@@ -277,6 -285,7 +297,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 +324,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 +340,7 @@@
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 +355,7 @@@
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 +404,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 +419,7 @@@
Windowing function.
"""
+ pyoArgsAssert(self, "I", type)
self._type = type
[obj.setType(type) for obj in self._base_objs]
self.refreshView()
@@@ -428,6 -442,7 +454,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 +488,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 +508,10 @@@
in the table. Location must be integer.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@@ -502,6 -519,7 +534,7 @@@
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 +624,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 +644,10 @@@
in the table. Location must be integer.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@@ -632,6 -652,7 +670,7 @@@
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 +760,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 +780,10 @@@
in the table. Location must be integer.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@@ -762,6 -785,7 +806,7 @@@
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 +895,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 +915,10 @@@
in the table. Location must be integer.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@@ -891,6 -917,7 +941,7 @@@
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 +1046,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 +1069,7 @@@
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 +1087,7 @@@
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 +1103,10 @@@
in the table. Location must be integer.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(list) for obj in self._base_objs]
self.refreshView()
@@@ -1071,6 -1102,7 +1129,7 @@@
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 +1237,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 +1258,7 @@@
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 +1273,7 @@@
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 +1289,7 @@@
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 +1312,7 @@@
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 +1800,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 +1827,10 @@@
the list will be loaded in all tablestreams.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", x)
++>>>>>>> upstream/0.7.6
if type(x[0]) != ListType:
x = [x]
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -1777,6 -1816,7 +1846,7 @@@
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 +1995,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 +2019,10 @@@
the list will be loaded in all tablestreams.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", x)
++>>>>>>> upstream/0.7.6
if type(x[0]) != ListType:
x = [x]
[obj.setTable(wrap(x,i)) for i, obj in enumerate(self._base_objs)]
@@@ -2033,6 -2075,7 +2108,10 @@@ class AtanTable(PyoTableObject)
"""
def __init__(self, slope=0.5, size=8192):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "NI", slope, size)
++>>>>>>> upstream/0.7.6
PyoTableObject.__init__(self, size)
self._slope = slope
self._base_objs = [AtanTable_base(slope, size)]
@@@ -2047,6 -2090,7 +2126,10 @@@
New slope between 0 and 1.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "N", x)
++>>>>>>> upstream/0.7.6
self._slope = x
[obj.setSlope(x) for obj in self._base_objs]
self.refreshView()
@@@ -2106,6 -2150,7 +2189,10 @@@ class PartialTable(PyoTableObject)
"""
def __init__(self, list=[(1,1), (1.33,0.5),(1.67,0.3)], size=65536):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "lI", list, size)
++>>>>>>> upstream/0.7.6
PyoTableObject.__init__(self, size)
self._list = list
self._par_table = HarmTable(self._create_list(), size)
@@@ -2139,6 -2184,7 +2226,10 @@@
and its strength.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "l", list)
++>>>>>>> upstream/0.7.6
self._list = list
[obj.replace(self._create_list()) for obj in self._base_objs]
self.normalize()
diff --combined pyolib/triggers.py
index 0125b62,2e74fa9..33bc577
--- a/pyolib/triggers.py
+++ b/pyolib/triggers.py
@@@ -27,7 -27,6 +27,6 @@@ GNU Lesser General Public License for m
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 +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 +130,7 @@@
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 +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 +224,7 @@@
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 +239,7 @@@
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 +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 +336,7 @@@
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 +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 +532,7 @@@
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 +545,7 @@@
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 +568,7 @@@
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 +584,7 @@@
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 +599,7 @@@
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 +614,7 @@@
New `w1` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self.setWeights(w1=x)
def setW2(self, x):
@@@ -617,6 -627,7 +627,7 @@@
New `w2` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self.setWeights(w2=x)
def setW3(self, x):
@@@ -629,6 -640,7 +640,7 @@@
New `w3` attribute.
"""
+ pyoArgsAssert(self, "n", x)
self.setWeights(w3=x)
def setWeights(self, w1=None, w2=None, w3=None):
@@@ -758,6 -770,7 +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 +790,7 @@@
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 +804,7 @@@
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 +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 +888,7 @@@
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 +902,7 @@@
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 +917,7 @@@
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 +932,7 @@@
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 +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 +1030,7 @@@
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 +1044,7 @@@
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 +1061,7 @@@
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 +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 +1161,7 @@@
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 +1175,10 @@@
new `function` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "c", x)
++>>>>>>> upstream/0.7.6
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 +1259,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 +1282,7 @@@
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 +1296,7 @@@
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 +1311,7 @@@
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 +1326,7 @@@
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 +1400,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 +1424,7 @@@
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 +1438,7 @@@
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 +1562,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 +1588,7 @@@
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 +1602,7 @@@
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 +1616,7 @@@
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 +1631,7 @@@
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 +1821,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 +1845,7 @@@
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 +1875,7 @@@
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 +1890,8 @@@
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 +2028,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 +2054,7 @@@
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 +2089,7 @@@
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 +2106,7 @@@
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 +2121,7 @@@
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 +2136,8 @@@
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 +2220,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 +2245,7 @@@
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 +2259,7 @@@
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 +2274,7 @@@
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 +2289,7 @@@
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 +2305,7 @@@
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 +2384,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 +2407,7 @@@
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 +2421,7 @@@
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 +2471,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 +2493,7 @@@
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 +2549,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 +2573,7 @@@
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 +2587,7 @@@
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 +2602,7 @@@
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 +2663,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 +2686,7 @@@
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 +2700,7 @@@
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 +2759,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 +2780,7 @@@
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 +2796,7 @@@
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 +2845,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 +2870,7 @@@
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 +2884,7 @@@
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 +2901,7 @@@
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 +2948,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 +2969,7 @@@
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 +2983,7 @@@
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 +2998,7 @@@
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 +3063,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 +3084,7 @@@
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 +3100,7 @@@
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 +3153,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 +3173,7 @@@
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 +3187,7 @@@
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 +3271,10 @@@ class Euclide(PyoObject)
"""
def __init__(self, time=.125, taps=16, onsets=10, poly=1):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "OiiI", time, taps, onsets, poly)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self)
self._tap_dummy = []
self._amp_dummy = []
@@@ -3305,6 -3365,7 +3371,10 @@@
New `time` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3319,6 -3380,7 +3389,10 @@@
New `taps` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._taps = x
x, onsets, lmax = convertArgsToLists(x, self._onsets)
for i in range(len(self._base_players)):
@@@ -3336,6 -3398,7 +3410,10 @@@
New `onsets` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._onsets = x
x, taps, lmax = convertArgsToLists(x, self._taps)
for i in range(len(self._base_players)):
@@@ -3466,6 -3529,7 +3544,10 @@@ class TrigBurst(PyoObject)
"""
def __init__(self, input, time=.25, count=10, expand=1.0, ampfade=1.0, poly=1):
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oOinnI", input, time, count, expand, ampfade, poly)
++>>>>>>> upstream/0.7.6
PyoObject.__init__(self)
self._tap_dummy = []
self._amp_dummy = []
@@@ -3545,6 -3609,7 +3627,10 @@@
Crossfade time between old and new input. Defaults to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -3558,6 -3623,7 +3644,10 @@@
New `time` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "O", x)
++>>>>>>> upstream/0.7.6
self._time = x
x, lmax = convertArgsToLists(x)
[obj.setTime(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3572,6 -3638,7 +3662,10 @@@
New `count` attribute.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "i", x)
++>>>>>>> upstream/0.7.6
self._count = x
x, lmax = convertArgsToLists(x)
[obj.setCount(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3582,10 -3649,11 +3676,18 @@@
:Args:
++<<<<<<< HEAD
+ x : int
+ New `expand` attribute.
+
+ """
++=======
+ x : float
+ New `expand` attribute.
+
+ """
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._expand = x
x, lmax = convertArgsToLists(x)
[obj.setExpand(wrap(x,i)) for i, obj in enumerate(self._base_players)]
@@@ -3596,10 -3664,11 +3698,18 @@@
:Args:
++<<<<<<< HEAD
+ x : int
+ New `ampfade` attribute.
+
+ """
++=======
+ x : float
+ New `ampfade` attribute.
+
+ """
+ pyoArgsAssert(self, "n", x)
++>>>>>>> upstream/0.7.6
self._ampfade = x
x, lmax = convertArgsToLists(x)
[obj.setAmpfade(wrap(x,i)) for i, obj in enumerate(self._base_players)]
diff --combined pyolib/utils.py
index 6683ce7,9cfc841..34108a2
--- a/pyolib/utils.py
+++ b/pyolib/utils.py
@@@ -98,6 -98,7 +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 +120,7 @@@
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 +134,7 @@@
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 +149,7 @@@
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 +164,7 @@@
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 +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 +267,7 @@@
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 +281,7 @@@
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 +300,7 @@@
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 +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 +374,7 @@@
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 +390,7 @@@
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 +404,7 @@@
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 +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 +484,7 @@@
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 +500,7 @@@
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 +514,7 @@@
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 +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 +645,10 @@@
Crossfade time between old and new input. Default to 0.05.
"""
++<<<<<<< HEAD
++=======
+ pyoArgsAssert(self, "oN", x, fadetime)
++>>>>>>> upstream/0.7.6
self._input = x
self._in_fader.setInput(x, fadetime)
@@@ -664,6 -680,7 +683,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 +702,7 @@@
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 +780,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 +861,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 +892,7 @@@
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 +907,7 @@@
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 +922,7 @@@
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 +1002,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 +1072,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 +1147,7 @@@
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 +1184,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 +1203,7 @@@
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 +1240,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 +1259,7 @@@
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 +1307,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 +1331,7 @@@
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 +1345,7 @@@
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 +1360,7 @@@
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 +1375,7 @@@
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 +1390,7 @@@
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 +1405,7 @@@
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 +1484,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 +1503,7 @@@
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 +1538,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 +1557,7 @@@
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 +1592,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 +1611,7 @@@
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 +1649,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,12 -1665,13 +1668,71 @@@
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)
@property
def input(self):
"""PyoObject. Input signal to process."""
++<<<<<<< HEAD
++ return self._input
++ @input.setter
++ def input(self, x): self.setInput(x)
++
++class FToM(PyoObject):
++ """
++ Returns the midi note equivalent to a frequency in Hz.
++
++ Returns the midi note equivalent to a frequency in Hz,
++ 440.0 (hz) = 69.
++
++ :Parent: :py:class:`PyoObject`
++
++ :Args:
++
++ input : PyoObject
++ Input signal as frequency in Hz.
++
++ >>> s = Server().boot()
++ >>> s.start()
++ >>> lfo = Sine([0.2,0.25], mul=300, add=600)
++ >>> src = SineLoop(freq=lfo, feedback=0.05)
++ >>> hz = Yin(src, minfreq=100, maxfreq=1000, cutoff=500)
++ >>> mid = FToM(hz)
++ >>> fr = Snap(mid, choice=[0,2,5,7,9], scale=1)
++ >>> freq = Port(fr, risetime=0.01, falltime=0.01)
++ >>> syn = SineLoop(freq, feedback=0.05, mul=0.3).out()
++
++ """
++
++ def __init__(self, input, mul=1, add=0):
++ PyoObject.__init__(self, mul, add)
++ self._input = input
++ self._in_fader = InputFader(input)
++ in_fader, mul, add, lmax = convertArgsToLists(self._in_fader, mul, add)
++ self._base_objs = [FToM_base(wrap(in_fader,i), wrap(mul,i), wrap(add,i)) for i in range(lmax)]
++
++ def setInput(self, x, fadetime=0.05):
++ """
++ Replace the `input` attribute.
++
++ :Args:
++
++ x : PyoObject
++ New signal to process.
++ fadetime : float, optional
++ Crossfade time between old and new input. Default to 0.05.
++
++ """
++ self._input = x
++ self._in_fader.setInput(x, fadetime)
++
++ @property
++ def input(self):
++ """PyoObject. Input signal to process."""
++=======
++>>>>>>> upstream/0.7.6
return self._input
@input.setter
def input(self, x): self.setInput(x)
@@@ -1661,6 -1706,7 +1767,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 +1787,7 @@@
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 +1801,7 @@@
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 +1846,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 +1867,7 @@@
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 +1881,7 @@@
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 +1896,7 @@@
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 +1956,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 +1978,7 @@@
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 +1994,7 @@@
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 +2008,7 @@@
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 --combined scripts/release_doc_src.sh
index 128bf69,0c9caa2..b8adf89
--- a/scripts/release_doc_src.sh
+++ b/scripts/release_doc_src.sh
@@@ -6,7 -6,7 +6,11 @@@
# 3. Execute from pyo folder : ./scripts/release_doc_src.sh
#
++<<<<<<< HEAD
+version=0.7.5
++=======
+ version=0.7.6
++>>>>>>> upstream/0.7.6
replace=XXX
doc_rep=pyo_XXX-doc
diff --combined scripts/win/windows-7-build-routine.txt
index f2b08c2,84e74ec..ee7fac6
--- a/scripts/win/windows-7-build-routine.txt
+++ b/scripts/win/windows-7-build-routine.txt
@@@ -1,16 -1,17 +1,31 @@@
=== STEP 1 ===
++<<<<<<< HEAD
+--- Install Python (2.6 and 2.7)
+
+=== STEP 2 ===
++=======
+ --- Install Python 2.6 and 2.7.10 and WxPython 3.0.2.0 for each version
+
+ === STEP 2 (should be git soon) ===
++>>>>>>> upstream/0.7.6
--- Install Slick SVN 1.8.10
http://www.sliksvn.com
=== STEP 3 ===
++<<<<<<< HEAD
+--- Install scons 2.3.2 in the Python site-packages:
+http://www.scons.org/download.php
+
+=== STEP 4 ===
+--- Install MinGW (minimalist) from sourceforge
++=======
+ --- Install scons 2.3.5 in the Python site-packages:
+ http://www.scons.org/download.php
+
+ === STEP 4 ===
+ --- Install MinGW (minimalist GNU for Windows) from sourceforge
+ --- Add ";C:\MinGW\bin;C:\MinGW\mingw32\bin" to the PATH variable
++>>>>>>> upstream/0.7.6
=== STEP 5 ===
--- Install pthreads (just copy files from ftp):
@@@ -25,6 -26,9 +40,12 @@@ 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,
++<<<<<<< HEAD
++=======
+
+ If there is a conflict about struct timespec, remove the definition in pthread.h.
+
++>>>>>>> upstream/0.7.6
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 +102,11 @@@ Try the trunk version first, if that do
--- Copy ASIOSDK to portaudio/src/hostapi/asio
--- Check the pa_win_hostapis.c file and make sure that it is configured to build
++<<<<<<< HEAD
+the DirectSound, WMME, and ASIO drivers:
++=======
+ the DirectSound, WMME, and ASIO drivers. (nothing to do here)
++>>>>>>> upstream/0.7.6
--- Need to removed "volatile" from function definitions in MinGW/include/winbase.h
@@@ -120,7 -124,7 +145,11 @@@ commonEnvironment.Append(CPPPATH = ["."
"C:/portaudio/src/hostapi/asio/ASIOSDK/host",
"C:/portaudio/src/hostapi/asio/ASIOSDK/host/pc",
"C:/portaudio/src/hostapi/asio/ASIOSDK/common",
++<<<<<<< HEAD
+"C:/Program Files/Microsoft DirectX SDK (April 2007)/Include"])
++=======
+ "C:/Program Files (x86)/Microsoft DirectX SDK (April 2007)/Include"])
++>>>>>>> upstream/0.7.6
commonEnvironment.Append(LIBS=Split('''
setupapi
@@@ -175,7 -179,7 +204,11 @@@ portAudio = commonEnvironment.SharedLib
##########################################################################
=== STEP 11 ===
++<<<<<<< HEAD
+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:
++>>>>>>> upstream/0.7.6
'''
MinGW SConstruct for PortMidi
@@@ -259,8 -263,6 +292,11 @@@ Depends(test, portmidi
[build]
compiler = mingw32
++<<<<<<< HEAD
+*** For Python 2.5, comment line 428 to 434 in Python25/include/pyconfig.py
+
++=======
++>>>>>>> upstream/0.7.6
=== STEP 13 ===
--- Download pyo sources from svn and build it with:
diff --combined setup.py
index 2e5c607,2f2c75f..f9fcdd9
--- a/setup.py
+++ b/setup.py
@@@ -23,7 -23,7 +23,11 @@@ from distutils.core import setup, Exten
import os, sys, getopt
import time
++<<<<<<< HEAD
+pyo_version = "0.7.5"
++=======
+ pyo_version = "0.7.6"
++>>>>>>> upstream/0.7.6
build_osx_with_jack_support = False
compile_externals = False
@@@ -88,10 -88,10 +92,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 --combined src/engine/pyomodule.c
index a7a2f89,88b37e4..3f6199c
--- a/src/engine/pyomodule.c
+++ b/src/engine/pyomodule.c
@@@ -2550,6 -2550,7 +2550,10 @@@ init_pyo64(void
module_add_object(m, "MainParticle_base", &MainParticleType);
module_add_object(m, "Particle_base", &ParticleType);
module_add_object(m, "AtanTable_base", &AtanTableType);
++<<<<<<< HEAD
++=======
+ module_add_object(m, "RawMidi_base", &RawMidiType);
++>>>>>>> upstream/0.7.6
PyModule_AddStringConstant(m, "PYO_VERSION", PYO_VERSION);
#ifdef COMPILE_EXTERNALS
diff --combined src/objects/analysismodule.c
index a9cfe9a,1ad618b..f495c95
--- a/src/objects/analysismodule.c
+++ b/src/objects/analysismodule.c
@@@ -1698,7 -1698,10 +1698,14 @@@ Centroid_process_i(Centroid *self)
sum1 += tmp * i;
sum2 += tmp;
}
++<<<<<<< HEAD
+ tmp = sum1 / sum2;
++=======
+ if (sum2 < 0.000000001)
+ tmp = 0.0;
+ else
+ tmp = sum1 / sum2;
++>>>>>>> upstream/0.7.6
self->centroid += tmp * self->sr / self->size;
self->centroid *= 0.5;
for (i=0; i<self->hsize; i++) {
diff --combined src/objects/midimodule.c
index 3f20b29,0bf5a3d..fa09ec7
--- a/src/objects/midimodule.c
+++ b/src/objects/midimodule.c
@@@ -2542,6 -2542,6 +2542,264 @@@ Notein_new, /* tp_new *
};
/* NoteinTrig trig streamer */
++<<<<<<< HEAD
++typedef struct {
++ pyo_audio_HEAD
++ MidiNote *handler;
++ int modebuffer[2];
++ int voice;
++ int mode; /* 0 = noteon, 1 = noteoff */
++} NoteinTrig;
++
++static void NoteinTrig_postprocessing_ii(NoteinTrig *self) { POST_PROCESSING_II };
++static void NoteinTrig_postprocessing_ai(NoteinTrig *self) { POST_PROCESSING_AI };
++static void NoteinTrig_postprocessing_ia(NoteinTrig *self) { POST_PROCESSING_IA };
++static void NoteinTrig_postprocessing_aa(NoteinTrig *self) { POST_PROCESSING_AA };
++static void NoteinTrig_postprocessing_ireva(NoteinTrig *self) { POST_PROCESSING_IREVA };
++static void NoteinTrig_postprocessing_areva(NoteinTrig *self) { POST_PROCESSING_AREVA };
++static void NoteinTrig_postprocessing_revai(NoteinTrig *self) { POST_PROCESSING_REVAI };
++static void NoteinTrig_postprocessing_revaa(NoteinTrig *self) { POST_PROCESSING_REVAA };
++static void NoteinTrig_postprocessing_revareva(NoteinTrig *self) { POST_PROCESSING_REVAREVA };
++
++static void
++NoteinTrig_setProcMode(NoteinTrig *self)
++{
++ int muladdmode;
++ muladdmode = self->modebuffer[0] + self->modebuffer[1] * 10;
++
++ switch (muladdmode) {
++ case 0:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_ii;
++ break;
++ case 1:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_ai;
++ break;
++ case 2:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_revai;
++ break;
++ case 10:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_ia;
++ break;
++ case 11:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_aa;
++ break;
++ case 12:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_revaa;
++ break;
++ case 20:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_ireva;
++ break;
++ case 21:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_areva;
++ break;
++ case 22:
++ self->muladd_func_ptr = NoteinTrig_postprocessing_revareva;
++ break;
++ }
++}
++
++static void
++NoteinTrig_compute_next_data_frame(NoteinTrig *self)
++{
++ int i;
++ MYFLT *tmp = MidiNote_get_trigger_buffer(self->handler);
++
++ for (i=0; i<self->bufsize; i++) {
++ self->data[i] = tmp[self->bufsize*(self->voice*2+self->mode)+i];
++ }
++ (*self->muladd_func_ptr)(self);
++}
++
++static int
++NoteinTrig_traverse(NoteinTrig *self, visitproc visit, void *arg)
++{
++ pyo_VISIT
++ Py_VISIT(self->handler);
++ return 0;
++}
++
++static int
++NoteinTrig_clear(NoteinTrig *self)
++{
++ pyo_CLEAR
++ Py_CLEAR(self->handler);
++ return 0;
++}
++
++static void
++NoteinTrig_dealloc(NoteinTrig* self)
++{
++ pyo_DEALLOC
++ NoteinTrig_clear(self);
++ self->ob_type->tp_free((PyObject*)self);
++}
++
++static PyObject *
++NoteinTrig_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
++{
++ int i;
++ PyObject *handlertmp=NULL, *multmp=NULL, *addtmp=NULL;
++ NoteinTrig *self;
++ self = (NoteinTrig *)type->tp_alloc(type, 0);
++
++ self->voice = 0;
++ self->mode = 0;
++ self->modebuffer[0] = 0;
++ self->modebuffer[1] = 0;
++
++ INIT_OBJECT_COMMON
++ Stream_setFunctionPtr(self->stream, NoteinTrig_compute_next_data_frame);
++ self->mode_func_ptr = NoteinTrig_setProcMode;
++
++ static char *kwlist[] = {"handler", "voice", "mode", "mul", "add", NULL};
++
++ if (! PyArg_ParseTupleAndKeywords(args, kwds, "O|iiOO", kwlist, &handlertmp, &self->voice, &self->mode, &multmp, &addtmp))
++ Py_RETURN_NONE;
++
++ Py_XDECREF(self->handler);
++ Py_INCREF(handlertmp);
++ self->handler = (MidiNote *)handlertmp;
++
++ if (multmp) {
++ PyObject_CallMethod((PyObject *)self, "setMul", "O", multmp);
++ }
++
++ if (addtmp) {
++ PyObject_CallMethod((PyObject *)self, "setAdd", "O", addtmp);
++ }
++
++ PyObject_CallMethod(self->server, "addStream", "O", self->stream);
++
++ (*self->mode_func_ptr)(self);
++
++ return (PyObject *)self;
++}
++
++static PyObject * NoteinTrig_getServer(NoteinTrig* self) { GET_SERVER };
++static PyObject * NoteinTrig_getStream(NoteinTrig* self) { GET_STREAM };
++static PyObject * NoteinTrig_setMul(NoteinTrig *self, PyObject *arg) { SET_MUL };
++static PyObject * NoteinTrig_setAdd(NoteinTrig *self, PyObject *arg) { SET_ADD };
++static PyObject * NoteinTrig_setSub(NoteinTrig *self, PyObject *arg) { SET_SUB };
++static PyObject * NoteinTrig_setDiv(NoteinTrig *self, PyObject *arg) { SET_DIV };
++
++static PyObject * NoteinTrig_play(NoteinTrig *self, PyObject *args, PyObject *kwds) { PLAY };
++static PyObject * NoteinTrig_stop(NoteinTrig *self) { STOP };
++
++static PyObject * NoteinTrig_multiply(NoteinTrig *self, PyObject *arg) { MULTIPLY };
++static PyObject * NoteinTrig_inplace_multiply(NoteinTrig *self, PyObject *arg) { INPLACE_MULTIPLY };
++static PyObject * NoteinTrig_add(NoteinTrig *self, PyObject *arg) { ADD };
++static PyObject * NoteinTrig_inplace_add(NoteinTrig *self, PyObject *arg) { INPLACE_ADD };
++static PyObject * NoteinTrig_sub(NoteinTrig *self, PyObject *arg) { SUB };
++static PyObject * NoteinTrig_inplace_sub(NoteinTrig *self, PyObject *arg) { INPLACE_SUB };
++static PyObject * NoteinTrig_div(NoteinTrig *self, PyObject *arg) { DIV };
++static PyObject * NoteinTrig_inplace_div(NoteinTrig *self, PyObject *arg) { INPLACE_DIV };
++
++static PyMemberDef NoteinTrig_members[] = {
++{"server", T_OBJECT_EX, offsetof(NoteinTrig, server), 0, "Pyo server."},
++{"stream", T_OBJECT_EX, offsetof(NoteinTrig, stream), 0, "Stream object."},
++{"mul", T_OBJECT_EX, offsetof(NoteinTrig, mul), 0, "Mul factor."},
++{"add", T_OBJECT_EX, offsetof(NoteinTrig, add), 0, "Add factor."},
++{NULL} /* Sentinel */
++};
++
++static PyMethodDef NoteinTrig_methods[] = {
++{"getServer", (PyCFunction)NoteinTrig_getServer, METH_NOARGS, "Returns server object."},
++{"_getStream", (PyCFunction)NoteinTrig_getStream, METH_NOARGS, "Returns stream object."},
++{"play", (PyCFunction)NoteinTrig_play, METH_VARARGS|METH_KEYWORDS, "Starts computing without sending sound to soundcard."},
++{"stop", (PyCFunction)NoteinTrig_stop, METH_NOARGS, "Stops computing."},
++{"setMul", (PyCFunction)NoteinTrig_setMul, METH_O, "Sets NoteinTrig mul factor."},
++{"setAdd", (PyCFunction)NoteinTrig_setAdd, METH_O, "Sets NoteinTrig add factor."},
++{"setSub", (PyCFunction)NoteinTrig_setSub, METH_O, "Sets inverse add factor."},
++{"setDiv", (PyCFunction)NoteinTrig_setDiv, METH_O, "Sets inverse mul factor."},
++{NULL} /* Sentinel */
++};
++
++static PyNumberMethods NoteinTrig_as_number = {
++(binaryfunc)NoteinTrig_add, /*nb_add*/
++(binaryfunc)NoteinTrig_sub, /*nb_subtract*/
++(binaryfunc)NoteinTrig_multiply, /*nb_multiply*/
++(binaryfunc)NoteinTrig_div, /*nb_divide*/
++0, /*nb_remainder*/
++0, /*nb_divmod*/
++0, /*nb_power*/
++0, /*nb_neg*/
++0, /*nb_pos*/
++0, /*(unaryfunc)array_abs,*/
++0, /*nb_nonzero*/
++0, /*nb_invert*/
++0, /*nb_lshift*/
++0, /*nb_rshift*/
++0, /*nb_and*/
++0, /*nb_xor*/
++0, /*nb_or*/
++0, /*nb_coerce*/
++0, /*nb_int*/
++0, /*nb_long*/
++0, /*nb_float*/
++0, /*nb_oct*/
++0, /*nb_hex*/
++(binaryfunc)NoteinTrig_inplace_add, /*inplace_add*/
++(binaryfunc)NoteinTrig_inplace_sub, /*inplace_subtract*/
++(binaryfunc)NoteinTrig_inplace_multiply, /*inplace_multiply*/
++(binaryfunc)NoteinTrig_inplace_div, /*inplace_divide*/
++0, /*inplace_remainder*/
++0, /*inplace_power*/
++0, /*inplace_lshift*/
++0, /*inplace_rshift*/
++0, /*inplace_and*/
++0, /*inplace_xor*/
++0, /*inplace_or*/
++0, /*nb_floor_divide*/
++0, /*nb_true_divide*/
++0, /*nb_inplace_floor_divide*/
++0, /*nb_inplace_true_divide*/
++0, /* nb_index */
++};
++
++PyTypeObject NoteinTrigType = {
++PyObject_HEAD_INIT(NULL)
++0, /*ob_size*/
++"_pyo.NoteinTrig_base", /*tp_name*/
++sizeof(NoteinTrig), /*tp_basicsize*/
++0, /*tp_itemsize*/
++(destructor)NoteinTrig_dealloc, /*tp_dealloc*/
++0, /*tp_print*/
++0, /*tp_getattr*/
++0, /*tp_setattr*/
++0, /*tp_compare*/
++0, /*tp_repr*/
++&NoteinTrig_as_number, /*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*/
++"NoteinTrig objects. Stream noteon or noteoff trigger from a Notein voice.", /* tp_doc */
++(traverseproc)NoteinTrig_traverse, /* tp_traverse */
++(inquiry)NoteinTrig_clear, /* tp_clear */
++0, /* tp_richcompare */
++0, /* tp_weaklistoffset */
++0, /* tp_iter */
++0, /* tp_iternext */
++NoteinTrig_methods, /* tp_methods */
++NoteinTrig_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 */
++NoteinTrig_new, /* tp_new */
++};
++
++=======
++>>>>>>> upstream/0.7.6
typedef struct {
pyo_audio_HEAD
MidiNote *handler;
@@@ -3586,3 -3586,168 +3844,171 @@@ PyTypeObject MidiDelAdsrType =
0, /* tp_alloc */
MidiDelAdsr_new, /* tp_new */
};
++<<<<<<< HEAD
++=======
+
+ 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 */
+ };
++>>>>>>> upstream/0.7.6
diff --combined src/objects/oscmodule.c
index 569029c,e40c8cc..84edfad
--- a/src/objects/oscmodule.c
+++ b/src/objects/oscmodule.c
@@@ -736,7 -736,13 +736,17 @@@ typedef struct
static void
OscDataSend_compute_next_data_frame(OscDataSend *self)
{
++<<<<<<< HEAD
+ 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;
+
++>>>>>>> upstream/0.7.6
lo_message *msg;
char *path = PyString_AsString(self->address_path);
@@@ -746,19 -752,48 +756,48 @@@
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 +808,15 @@@
}
self->something_to_send = 0;
lo_message_free(msg);
+ if (blob != NULL)
+ lo_blob_free(blob);
+ if (blobdata != NULL)
+ free(blobdata);
}
++<<<<<<< HEAD
+
++=======
++>>>>>>> upstream/0.7.6
}
static int
@@@ -861,7 -899,7 +907,7 @@@ OscDataSend_send(OscDataSend *self, PyO
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 +984,76 @@@ int OscDataReceive_handler(const char *
{
OscDataReceive *self = user_data;
PyObject *tup, *result=NULL;
++<<<<<<< HEAD
+ tup = PyTuple_New(argc+1);
+ int i, ok = 0;
++=======
+ lo_blob *blob = NULL;
+ char *blobdata = NULL;
+ uint32_t blobsize = 0;
+ PyObject *charlist = NULL;
+ tup = PyTuple_New(argc+1);
+ int i, ok = 0, j = 0;
++>>>>>>> upstream/0.7.6
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 +1065,10 @@@
}
Py_XDECREF(tup);
Py_XDECREF(result);
++<<<<<<< HEAD
++=======
+ Py_XDECREF(charlist);
++>>>>>>> upstream/0.7.6
return 0;
}
diff --combined utils/E-Pyo.py
index de136b3,87d556a..11ca37e
--- a/utils/E-Pyo.py
+++ b/utils/E-Pyo.py
@@@ -45,10 -45,13 +45,13 @@@ PLATFORM = sys.platfor
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 +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 +159,8 @@@ if PLATFORM == "darwin" and '/%s.app'
# 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 +168,16 @@@ CALLER_NEED_TO_INVOKE_32_BIT = Fals
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 +485,17 @@@ if not READY
s.gui(locals())
'''
++<<<<<<< HEAD
+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}
++>>>>>>> upstream/0.7.6
TEMPLATE_PATH = os.path.join(RESOURCES_PATH, "templates")
if not os.path.isdir(TEMPLATE_PATH):
@@@ -535,8 -545,10 +551,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 +791,13 @@@ KEY_COMMANDS =
}
############## Allowed Extensions ##############
++<<<<<<< HEAD
+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"])
++>>>>>>> upstream/0.7.6
############## Pyo keywords ##############
tree = OBJECTS_TREE
@@@ -813,15 -827,23 +837,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 +952,43 @@@ 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)],
++<<<<<<< HEAD
+ shell=True, cwd=self.cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ 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)
+ 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)
+ else:
+ self.proc = subprocess.Popen(['%s -u "%s"' % (WHICH_PYTHON, self.path)], cwd=self.cwd,
+ shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ elif PLATFORM == "win32":
+ self.proc = subprocess.Popen([WHICH_PYTHON, "-u", self.path], cwd=self.cwd, shell=False,
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ else:
+ self.proc = subprocess.Popen([WHICH_PYTHON, "-u", self.path], 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.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.STDOUT)
+ else:
+ self.proc = subprocess.Popen(['%s -u "%s"' % (WHICH_PYTHON, self.path)], cwd=self.cwd,
+ 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.STDOUT)
+ else:
+ self.proc = subprocess.Popen([WHICH_PYTHON, "-u", self.path], cwd=self.cwd,
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
++>>>>>>> upstream/0.7.6
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 +997,25 @@@
log = ""
for line in self.proc.stdout.readline():
log = log + line
++<<<<<<< HEAD
++=======
+ log = log.replace(">>> ", "").replace("... ", "")
++>>>>>>> upstream/0.7.6
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()
++<<<<<<< HEAD
+ output = stdout + stderr
++=======
+ output = ""
+ if stdout is not None:
+ output = output + stdout
+ if stderr is not None:
+ output = output + stderr
+ output = output.replace(">>> ", "").replace("... ", "")
++>>>>>>> upstream/0.7.6
if "StartNotification name = default" in output:
output = output.replace("StartNotification name = default", "")
if "epyo_tempfile.py" in output:
@@@ -977,12 -1005,102 +1042,106 @@@
pass
if self.terminated:
output = output + "\n=== Process killed. ==="
++<<<<<<< HEAD
+ 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})
++>>>>>>> upstream/0.7.6
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 +1171,8 @@@
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 +1588,7 @@@ class SearchProjectPanel(scrolled.Scrol
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 +2212,16 @@@ class MainFrame(wx.Frame)
menu2.Append(121, "Insert File Path...\tShift+Ctrl+P")
self.Bind(wx.EVT_MENU, self.insertPath, id=121)
menu2.AppendSeparator()
++<<<<<<< HEAD
++=======
+ 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()
++>>>>>>> upstream/0.7.6
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 +2264,11 @@@
self.menu3.AppendSeparator()
self.backServerItem = self.menu3.Append(304, "Start Pyo Background Server")
self.Bind(wx.EVT_MENU, self.startStopBackgroundServer, id=304)
++<<<<<<< HEAD
+ 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+.")
++>>>>>>> upstream/0.7.6
self.sendToServerItem.Enable(False)
self.Bind(wx.EVT_MENU, self.sendSelectionToBackgroundServer, id=305)
self.menuBar.Append(self.menu3, 'Process')
@@@ -2166,7 -2293,7 +2341,7 @@@
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 +2449,17 @@@
if rect.x > self.field1X+160:
self.cc.SetPosition((rect.x, rect.y+yoff2))
++<<<<<<< HEAD
++=======
+ 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()
+
++>>>>>>> upstream/0.7.6
def setMasterDocument(self, evt):
if self.master_document == None:
self.master_document = self.panel.editor.path
@@@ -2981,7 -3116,9 +3167,9 @@@
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 +3231,73 @@@
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 +3311,15 @@@
text = self.panel.editor.GetLineUTF8(line)
else:
end = self.panel.editor.GetSelectionEnd()
++<<<<<<< HEAD
+ 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)
++>>>>>>> upstream/0.7.6
if end != None:
self.panel.editor.SetCurrentPos(end)
self.panel.editor.LineDown()
@@@ -3373,8 -3521,8 +3580,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 +3656,10 @@@
self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI)
self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick)
self.Bind(wx.EVT_CLOSE, self.OnClose)
++<<<<<<< HEAD
++=======
+ self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick)
++>>>>>>> upstream/0.7.6
self.EmptyUndoBuffer()
self.SetFocus()
@@@ -3632,6 -3781,57 +3843,60 @@@
self.StyleSetSpec(stc.STC_C_OPERATOR, buildStyle('operator'))
self.StyleSetSpec(stc.STC_C_IDENTIFIER, buildStyle('default'))
self.StyleSetSpec(stc.STC_C_PREPROCESSOR, buildStyle('commentblock'))
++<<<<<<< HEAD
++=======
+ 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")
++>>>>>>> upstream/0.7.6
self.SetEdgeColour(STYLES["lineedge"]['colour'])
self.SetCaretForeground(STYLES['caret']['colour'])
@@@ -3643,6 -3843,57 +3908,60 @@@
# WxPython 3 needs the lexer to be set before folding property
self.SetProperty("fold", "1")
++<<<<<<< HEAD
++=======
+
+ 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()
++>>>>>>> upstream/0.7.6
def OnQuickSearch(self, str, next=True):
if self.GetSelection() != (0,0):
@@@ -4129,10 -4380,10 +4448,17 @@@
dlg.ShowModal()
except:
pass
++<<<<<<< HEAD
+
+ def OnChar(self, evt):
+ propagate = True
+
++=======
+
+ def OnChar(self, evt):
+ propagate = True
+
++>>>>>>> upstream/0.7.6
if chr(evt.GetKeyCode()) in ['[', '{', '(', '"', '`'] and self.auto_comp_container:
if chr(evt.GetKeyCode()) == '[':
self.AddText('[]')
@@@ -4239,10 -4490,6 +4565,13 @@@
elif evt.GetKeyCode() == ord('L') and ControlDown():
self.GetParent().GetParent().GetParent().GetParent().GetParent().gotoLine(None)
propagate = False
++<<<<<<< HEAD
+ # Send line/selection to pyo background server
+ elif evt.GetKeyCode() == ord('T') and ControlDown():
+ self.GetParent().GetParent().GetParent().GetParent().GetParent().sendSelectionToBackgroundServer(None)
+ propagate = False
++=======
++>>>>>>> upstream/0.7.6
# Process Return key --- automatic indentation
elif evt.GetKeyCode() == wx.WXK_RETURN:
@@@ -4323,7 -4570,7 +4652,11 @@@
# for i in range(self.GetLineCount()):
# pos = self.GetLineEndPosition(i)
# if self.GetCharAt(pos-1) != 172:
++<<<<<<< HEAD
+ # self.InsertTextUTF8(pos, "¬")
++=======
+ # self.InsertTextUTF8(pos, "¬")
++>>>>>>> upstream/0.7.6
self.moveMarkers()
self.checkScrollbar()
self.OnModified()
@@@ -4449,6 -4696,6 +4782,7 @@@
if lastChild > lineNum:
self.HideLines(lineNum+1, lastChild)
lineNum = lineNum + 1
++<<<<<<< HEAD
def ExpandAll(self):
lineCount = self.GetLineCount()
@@@ -4462,6 -4709,6 +4796,21 @@@
lineNum = lineNum - 1
lineNum = lineNum + 1
++=======
++
++ def ExpandAll(self):
++ lineCount = self.GetLineCount()
++ lineNum = 0
++ while lineNum < lineCount:
++ level = self.GetFoldLevel(lineNum)
++ if level & stc.STC_FOLDLEVELHEADERFLAG and \
++ (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE:
++ self.SetFoldExpanded(lineNum, True)
++ lineNum = self.Expand(lineNum, True)
++ lineNum = lineNum - 1
++ lineNum = lineNum + 1
++
++>>>>>>> upstream/0.7.6
def ToggleFoldAll(self):
lineCount = self.GetLineCount()
expanding = True
@@@ -4691,7 -4938,7 +5040,11 @@@ class OutputLogPanel(wx.Panel)
self.processPopup.Append("%d :: %s" % (procID, filename))
self.processPopup.SetStringSelection("%d :: %s" % (procID, filename))
self.running += 1
++<<<<<<< HEAD
+ self.runningLabel.SetLabel("Running: %d" % self.running)
++=======
+ self.runningLabel.SetLabel(" Running: %d" % self.running)
++>>>>>>> upstream/0.7.6
self.editor.setLog("")
def removeProcess(self, procID, filename):
@@@ -4699,7 -4946,7 +5052,7 @@@
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,10 -4954,12 +5060,15 @@@
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)
+ def appendToLog(self, text):
+ self.editor.appendToLog(text)
+
def setLog(self, text):
self.editor.setLog(text)
@@@ -4778,12 -5027,13 +5136,13 @@@ TOOL_REFRESH_TREE_ID = 1
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 +5156,25 @@@
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)
++<<<<<<< HEAD
+ 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")
++=======
++>>>>>>> upstream/0.7.6
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 +5185,35 @@@
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 +5246,12 @@@
expanded = []
self._tree_analyze(self.root, expanded)
self.tree.DeleteAllItems()
++<<<<<<< HEAD
+ 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)
++>>>>>>> upstream/0.7.6
for folder, path in self.projectDict.items():
self.loadFolder(path)
self._tree_restore(self.root, expanded)
@@@ -4881,62 -5141,48 +5259,48 @@@
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 +5309,14 @@@
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 +5345,8 @@@
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 +5356,18 @@@
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 +5377,9 @@@
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 +5405,29 @@@
def openPage(self, item):
hasChild = self.tree.ItemHasChildren(item)
if not hasChild:
++<<<<<<< HEAD
+ 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)
++>>>>>>> upstream/0.7.6
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 +5435,8 @@@
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 +5625,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 +5636,76 @@@
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 +5715,8 @@@
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 +5797,9 @@@
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 +6213,8 @@@
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 +6236,22 @@@ class EPyoApp(wx.App)
wx.App.__init__(self, *args, **kwargs)
def OnInit(self):
++<<<<<<< HEAD
+ 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)
++>>>>>>> upstream/0.7.6
if X < 850: X -= 50
else: X = 850
if Y < 750: Y -= 50
else: Y = 750
++<<<<<<< HEAD
+ 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))
++>>>>>>> upstream/0.7.6
self.frame.Show()
return True
diff --combined utils/info.plist
index 8b9e960,70c56f7..6b68d78
--- a/utils/info.plist
+++ b/utils/info.plist
@@@ -32,17 -32,17 +32,29 @@@
<key>CFBundleIdentifier</key>
<string>org.pythonmac.unspecified.E-Pyo</string>
<key>CFBundleInfoDictionaryVersion</key>
++<<<<<<< HEAD
+ <string>0.7.5</string>
++=======
+ <string>0.7.6</string>
++>>>>>>> upstream/0.7.6
<key>CFBundleName</key>
<string>E-Pyo</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
++<<<<<<< HEAD
+ <string>0.7.5</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>0.7.5</string>
++=======
+ <string>0.7.6</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>0.7.6</string>
++>>>>>>> upstream/0.7.6
<key>LSHasLocalizedDisplayName</key>
<false/>
<key>NSAppleScriptEnabled</key>
--
python-pyo packaging
More information about the pkg-multimedia-commits
mailing list