From 2926ff34b665c47ea9ba1f8602665efc511f42994161ef8a33d962755720bb97 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 29 May 2018 08:28:36 +0000 Subject: [PATCH] Accepting request 609892 from devel:languages:python Python digital signal processing module OBS-URL: https://build.opensuse.org/request/show/609892 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pyo?expand=0&rev=1 --- .gitattributes | 24 ++++ .gitignore | 4 + pyo_0.9.0-src.tar.bz2 | 3 + python-pyo.changes | 264 ++++++++++++++++++++++++++++++++++++++++++ python-pyo.spec | 61 ++++++++++ 5 files changed, 356 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 pyo_0.9.0-src.tar.bz2 create mode 100644 python-pyo.changes create mode 100644 python-pyo.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..37a8eaa --- /dev/null +++ b/.gitattributes @@ -0,0 +1,24 @@ +*.changes merge=merge-changes +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b731c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.obscpio +*.osc +_build.* +.pbuild diff --git a/pyo_0.9.0-src.tar.bz2 b/pyo_0.9.0-src.tar.bz2 new file mode 100644 index 0000000..9d7bf0a --- /dev/null +++ b/pyo_0.9.0-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e851d4e0f1d273b3ebcaa466c7b411ab4b2e20b29c77a128840f072fb89b5ea3 +size 6276777 diff --git a/python-pyo.changes b/python-pyo.changes new file mode 100644 index 0000000..1b15840 --- /dev/null +++ b/python-pyo.changes @@ -0,0 +1,264 @@ +------------------------------------------------------------------- +Wed May 16 15:41:48 UTC 2018 - toddrme2178@gmail.com + +- Update to version 0.9.0 + - Bug Fixes: + * Fixed HRTF impulse responses interpolation. Interpolation is perform in the + spectral domain to avoid phase cancellation that occur in the time domain. + - New features: + * Added a new object: Expand, which expand the dynamic range of an audio signal. + * Added a new object: RMS, which return the rms value of an audio signal. + * Added a new object: MidiLinseg, a midi-triggered breakpoints envelope. + * Added a Server.makenote(pitch, velocity, duration, channel=0) method, which + build both noteon and noteof messages. +- Update to version 0.8.9 + - Bug Fixes: + * Fixed erroneous condition in listscramble function. + * Fixed pa_get_devices_infos() function on Windows. + * Fixed segfault at exit when a Server object is created but never + booted (fixed issue #117). + * Fixed window shape in the Harmonizer object (use an halfsine instead + of an hanning). + * Fixed crash when trying to draw a ControlSlider with width or height of 0. + - Enhancements: + * Changed the stereo panning law for cosine/sine within Pan object. + * Speed-up computation for various objects. + * Allow the "mode" argument of Resample object to be changed dynamically. + * Added new object: HRTF, Head-Related Transfert Function 3D spatialization. +- Update to version 0.8.8 + - Bug Fixes: + * Added missing binding to stop method in MidiListener. + * Removed internal import of the random module. Scripts importing + both pyo and random modules segfault on garbage collection at exit. + * Added missing static declaration to functions in pyomodule. + * E-Pyo: Fixed startup crash when preferences contains unicode characters. + * Granulator now compensates for the difference between the loaded sound's + sampling rate and pyo's sampling rate, if any. + * Fixed PyoArgumentTypeError when ctrl() is called for an object with + dataOnly parameter and tk is used instead of wxpython. + * Don't try to deactivate jack if it is stopped externally (ex. from qjackctl). + * Fixed audio and midi backends memory allocation. + * Properly incref and decref server references inside pyo objects. + * Fixed path encoding on windows for python 3.6. + - Enhancements: + * Added Jack midi support to the Server. + * Added a new init argument (wintitle) to Scope and Spectrum objects to + allow the user to set the title name of their windows. Also added a + method to show/hide the channel labels in the GUI. + * Added a callback attribute to PVAnal. The function receives magnitudes + and true frequencies for every analysis frame. +- Update to version 0.8.7 + - Bug Fixes: + * Disable Microsoft Midi devices by default. Added + Server.allowMicrosoftMidiDevices() method to enable them. + * Wrap jack api detection inside a try-except statement in case + jack2-dbus is used instead of jackd. + * Fixed bugs in Expr object's unicode handling. + * Fixed windows 10 dependencies. + * Fixed ending point of TableRec's time stream (now keep the last + value instead of switching back to 0). + * Fixed clean-up of VoiceManager object. + * Fixed encoding of file path on windows for various objects. + - Enhancements: + * The server now allow up to 16 channel rms outputs for GUI drawing. + * Added getInterpolated method to PyoMatrixObject class. Returns the + interpolated value for a floating-point position in the matrix. + * OscDataSend now can send more than one message per buffer size. + * Update MacOS and Windows build routine to compile for python 2.7, + 3.5 and 3.6. +- Update to version 0.8.6 + - Bug Fixes: + * Fixed TableRead which continues to play when freq is negative and loop is off. + * Fixed CallAfter segfault when deleted inside its own callback. + * Fixed segfault when updating ControlSlider value from the audio thread. + * Updated liblo from 0.26 to 0.28 on Windows. This fixes a bug with socket + not properly closed. + * Fixed segfault in Resample_dealloc function. + * Fixed libraries dynamic links in MacOS installer scripts. + * Fixed TableRec, TrigTableRec and Looper time stream not started on play. + - Enhancements: + * Added "speed" argument to Seq object. Useful to create continuous time + deceleration or acceleration. + * Added setRandomType(dist, x) method to SfMarkerShuffler object. + * Added a "Copy" menu item in PyoObject.ctrl() and DataTable.graph() windows. +- Update to version 0.8.5 + - What's new: + * Added pa_get_default_devices_from_host(host) function. This function can + greatly help finding the device indexes (especially on Windows) to give to + the server in order to use to desired audio host. + * Added a new winhost argument to the Server's initialization. On Windows, it + defaults to WASAPI. + * Check the jack api version before compiling to ensure existing functions are + used (jack_port_set_name/jack_port_rename). + * Added two examples in 07-effects, 01-flanger.py and 02-schroeder-reverb.py. +- Update to version 0.8.4 + - Bug fixes: + * Fixed GIL conflicts with portaudio, portmidi and jack library calls. + * Updated portaudio interface to make it much more secure. + * Fixed segfault in MidiListener callback function with python3. + * Fixed SfMarkerLooper and SfMarkerShuffler markers not accurate + when soundfile sampling rate is not the same as the server's + sampling rate. + - New features: + * Midi input refactoring. Events are now spreaded over the buffer size + according to the event's timestamp. + * MidiDispatcher can send sysex message with sendx() method. + * Added a "title" argument to Server.gui() method. + * Added a "setMode" method to Selector object to switch between + equal power mode and linear fade. + * Added a "setKeepLast" method to TableRead object (will hold last value). + * Added "setIsJackTransportSlave" method to Server object (it allows to + start/stop the Server from jack transport). + * Added "setJackInputPortNames" and "setJackOutputPortNames" methods to + Server object. This allow the user to rename jack input/output ports. + * Added "id" and "object" attributes to wxgui's object events. +- Update to version 0.8.2 + - What's new: + * Fixed latency issue when using portaudio as audio backend. + * TrigFunc and Pattern now accept a tuple as "arg" argument (fixed issue #90). + * E-Pyo: Fixed a bug in the documentation window. + * Fixed midi input events handling. + * Set interpolation to off by default for midi continuous controllers. +- Update to version 0.8.1 + - New objects: + * LogiMap, random generator based on the logistic map. + - New functionalities: + * Added a method (sysexout()) to send sysex messages to the Server object. + * Added PyoTableObject.getBuffer() method. The PyoTableObject now support + the buffer protocol (see PEP 3118), which allow a table to share its data + memory with any object that support the buffer protocol (ex. numpy array). + * Added Server.setCallback() method to allow the user to define a custom + process function. This function will be called once per buffer size, just + before the computation of the audio objects tree. + * Added Server.getCurrentTime() and Server.getCurrentAmp() methods. + * Improve Looper object: Added a time stream, which gives the current + normalized position. Added loopnow() method, which allows to start a new + loop immediately with crossfade. Added appendFadeTime() and fadeInSeconds() + methods to give a more flexible control of the behavior of the object. + * Added an 'inverse' argument to PVGate object. When set to True, the + damping factor is applied to bins with an amplitude above the threshold. + * Added a `callback` argument to PyoObject.set() method. The given callback + will be executed at the end of the ramp. + * Added ctrl() method (and some missing setter) to midi objects. + * TableWrite object now takes into account the feedback argument of NewTable + object and interpolates to fill in gaps if its writing pointer moves faster + than the sampling rate. + * Added a reset() method to various delay line-based objects (AllpassWG, + Chorus, Freeverb, Harmonizer, STRev, WGVerb, Waveguide). + * All objects can be used as iterator (will iterate over its internal sterams). + * SigTo ramp time now can be controlled at audio rate. + * Iter object now sends a trigger when it reaches the last value. + * Iter object now accepts PyoObjects in its list of values. + - Bug fixes: + * Fixed jack ports auto-connection algorithm. + * Several minor bug fixes. + - Improvements: + * Added low-latency driver WDMKS in the portaudio build routine for Windows. + * Replaced all printf calls with PySys_WriteStdout. This allow to redirect + messages from pyo to a string or a file, instead of the stdout. + - Documentation: + * Added new examples, 05-envelopes/ and 06-filters/. + * Added a new file, called "How to improve performance of your pyo programs", + to the documentation. +- Implement single-spec version + +------------------------------------------------------------------- +Tue Nov 18 13:25:21 UTC 2014 - toddrme2178@gmail.com + +- Update to version 0.7.3 + * Added new objet: Scope, an audio waveform display. + * E-Pyo: Fix marker's line numbering. + * E-Pyo: Added Save As Template... menu item. + * Fixed bug in Fader decreasing ramp. + * Added midi output methods to the Server object. noteout, afterout, ctlout, + programout, pressout and bendout. + * Server.setMidiOutputDevice(idx) with `idx` greater than the higher portmidi + devices index opens all available output devices. + * Added new object: FToM, converts an audio stream containning frequencies in + hertz to a midi note audio stream. + * Added new function: hzToMidi, converts a frequency in hertz to a midi note + value. +- Update to version 0.7.2 + * Server.setMidiInputDevice(idx) with `idx` greater than the higher portmidi + input index opens all available devices. + * OSX installer: Also install pyo in anaconda site-packages directory if + exist. + * Added new object : TrigBurst, generates a time/amplitude expandable trigger + pattern. + * Added new object : Euclide, Euclidean rhythm generator. + * Windows installers now check for the current python installation directory + before installing files. + * E-Pyo: Fixed inconsistencies in Find/Replace behaviours. + * Added new object : SmoothDelay, a delay line that does not produce clicks + or pitch shifting when the delay time is changing. + * Added new object : AttackDetector, audio signal onset detection. + * Added new object : Centroid, Computes the spectral centroid of an input + signal. +- Update to version 0.7.2 + * E-Pyo: Added RadioPyo to the template choices. + * Fixed Compare when used with None or a string. Print a warning and set + 'comp' attribute to 0. + * Fixed live interpreter of the server window when using arrow keys + navigation. + * E-Pyo: Check if WxPython 3.0 is installed, otherwise uses 2.8. + * Added anti-aliasing to PyoTableObject's grapher widget. Fixed Ctrl+W on the + grapher. +- Update to version 0.7.0 + * pyo can now be used without any GUI toolkit (WxPython or TKinter). Widgets + are simply disabled. + * Added Server methods to auto-connect Jack ports to already opened ports. + * E-Pyo: output log now in realtime. + * Added new object: Tanh, hyperbolic tangent function on audio signal. +- Update to version 0.6.9 + * Added lot of methods to PyoTableObject (retify, bipolarGain, invert, + lowpass, fadein, fadeout, pow). + * Added new object: PartialTable, generates waveforms made of inharmonic + components. + * Added a Scope example in examples/utilities. + * Added new object: STRev, Stereo reverb. + * Added dataOnly argument to SLMap. User can now control parameters, in ctrl + window, that do not accept audio signal but discreet values. + * Added new object: ComplexRes, Complex one-pole resonator filter. + * Added new object: TrackHold, Performs a 'thru' and hold on its input + signal. +- Update to version 0.6.8 + * Added multi server facility and and embeded callback support for plugin + development (code by Guillaume Barrette). + * Add a channel offset to the server physical inputs and outputs. + * Added support for reading/writing various soundfile formats. FLAC and OGG + need libsndfile to be compiled with both of them enabled. + * Added new object: PVMix, Mix the most prominent components from two phase + vocoder streaming objects. + * Added new object: TableScale, Scales values from a table and writes them + into another table. + * Added new object: Granule, another granular synthesis generator. + * Added new object: PVBufTabLoops, phase vocoder buffer with bin independent + speed playback (controlled with a PyoTableObject). + * Added new object: PVBufLoops, phase vocoder buffer with bin independent + speed playback. + * Added new objects: PVShift, spectral frequency shifter. PVAmpMod and + PVFreqMod, frequency independent modulations. + * Added new objects: PVDelay, spectral delays and PVBuffer, phase vocoder + recorder and playback. + * Added setJackAuto method to the Server to disable (enabled by default) Jack + ports auto-connection. + * Added graph() method to DataTable object. Opens a multisliders window to + edit the table content. + * Added new object: PVFilter. Spectral filtering. + * Added new object: PVCross, PVMult, PVMorph. Spectral morphing. + * Added new object: PVAddSynth, Phase Vocoder additive synthesis object. + * Phase Vocoder, first draft. PVAnal, PVSynth, PVTranspose, PVVerb and + PVGate. + * E-Pyo: Added "Search in Project Files" option. + * E-Pyo: Added Filters Menu. User-defined text processing functions. + * Now using Sphinx to generate the API documentation. + * Added new objects: ButLP, ButHP, ButBP, ButBR, second-order Butterworth + filters. + * Added new objects: Reson and Resonx, second-order resonant bandpass + filters. + +------------------------------------------------------------------- +Fri May 10 11:39:07 UTC 2013 - toddrme2178@gmail.com + +- Initial version + diff --git a/python-pyo.spec b/python-pyo.spec new file mode 100644 index 0000000..1f58433 --- /dev/null +++ b/python-pyo.spec @@ -0,0 +1,61 @@ +# +# spec file for package python-pyo +# +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ + + +%{?!python_module:%define python_module() python-%{**} python3-%{**}} +%define skip_python2 1 +Name: python-pyo +Version: 0.9.0 +Release: 0 +License: GPL-3.0 +Summary: Python digital signal processing module +Url: http://ajaxsoundstudio.com/software/pyo/ +Group: Development/Languages/Python +Source: http://ajaxsoundstudio.com/downloads/pyo_%{version}-src.tar.bz2 +BuildRequires: %{python_module devel} +BuildRequires: %{python_module setuptools} +BuildRequires: pkgconfig(jack) +BuildRequires: pkgconfig(liblo) +BuildRequires: pkgconfig(portaudiocpp) +BuildRequires: pkgconfig(sndfile) +BuildRequires: portmidi-devel +BuildRequires: fdupes +BuildRequires: python-rpm-macros + +%python_subpackages + +%description +PYO is a Python module written in C to help digital signal processing +script creation. + +%prep +%setup -q -n pyo_%{version}-src + +%build +export CFLAGS="%{optflags}" +%python_build --use-jack --use-double + +%install +%python_install --use-jack --use-double +%python_expand %fdupes %{buildroot}%{$python_sitearch} + +%files %{python_files} +%defattr(-,root,root,-) +%doc ChangeLog README.md +%license COPYING.txt COPYING.LESSER.txt +%{python_sitearch}/* + +%changelog