diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index edd78ab7..5d1a3f53 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -21,7 +21,7 @@ jobs: - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse env: - CIBW_BUILD: cp38-manylinux* cp39-manylinux* cp310-manylinux* cp311-manylinux* + CIBW_BUILD: cp38-manylinux* cp39-manylinux* cp310-manylinux* cp311-manylinux* cp312-manylinux* CIBW_ARCHS_MACOS: arm64 x86_64 CIBW_ARCHS_LINUX: x86_64 CIBW_BEFORE_ALL_LINUX: > diff --git a/CHANGELOG.md b/CHANGELOG.md index acca7b11..edfff8f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # CHANGELOG +## v0.4.1 (2023-11-05) + +- New node: `ChannelCrossfade` +- `RectangularEnvelope`: Rename from `EnvelopeRect` for consistency with other `Envelope` classes +- `Node`: Add `is_playing` property +- `Node`: Refactor `play`/`stop` error handling to use `NodeAlreadyPlayingException`, `NodeNotPlayingException`, `CPUUsageAboveLimitException` +- `BufferPlayer`: Add `position` property +- `Buffer`: Add `filename` read-only property +- `SawLFO`, `SawOscillator`: Implement phase reset with `trigger` +- `Granulator`: Add support for negative playback rates, stereo input +- `signalflow_midi`: Add support for `MIDIManager` per-channel binding +- Add wheel for Python 3.12 + ## v0.4.0 (2023-05-28) - Implemented complete Python API diff --git a/auxiliary/cibuildwheel/make-macos-x86-arm64.sh b/auxiliary/cibuildwheel/make-macos-x86-arm64.sh index 39485086..1c1b4f55 100755 --- a/auxiliary/cibuildwheel/make-macos-x86-arm64.sh +++ b/auxiliary/cibuildwheel/make-macos-x86-arm64.sh @@ -8,7 +8,7 @@ ROOT=auxiliary/cibuildwheel -for VERSION in 38 39 310 311 +for VERSION in 38 39 310 311 312 do rm -r build export CIBW_BUILD="cp${VERSION}-*" diff --git a/setup.py b/setup.py index a5b14be6..55a60ca4 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,7 @@ def build_extension(self, ext): setup( name='signalflow', - version='0.4.0', + version='0.4.1', author='Daniel Jones', author_email='dan@erase.net', description='signalflow',