Skip to content

Releases: ideoforms/signalflow

v0.5.0

28 Oct 22:01
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release
  • Replaced the libsoundio audio abstraction layer with miniaudio, heralding first-class Windows and Linux support.
  • Retired historical AudioOut classes for different operating systems, and refactored querying of inputs/outputs/backends
  • AudioGraphConfig: Added auto_record flag, to automatically record all output in timestamped audio files
  • Added support for instantiating AudioGraph and AudioGraphConfig with the path of a config file
  • Modified AudioGraph to become a singleton, and throw a warning instead of an exception upon attempting to create a second AudioGraph
  • Added Python bindings and added unit tests for SampleRingBuffer and SampleRingQueue classes
  • Nodes:
    • Added Bus node, to act as a fixed-channel summer with variable inputs
    • Added Maraca node, a simple physically-inspired model of a shaker, after Cook (1997)
    • Added ChannelOffset node to offset a node's output by N channels, and node.play(output_channel=N) syntax
    • Added SelectInput node, to pass the output of an input whose index can be modulated at audio rate
    • Added HistoryBufferWriter node to capture a rolling signal history window, useful for oscilloscope UI display
    • Added Accumulator node, to accumulate energy with some leaky decay coefficient, and accompanying calculate_decay_coefficient function
    • Added abstract VariableInputNode class
    • Added stutter_probability and stutter_advance_time inputs to Stutter

v0.4.9

05 Aug 19:15
Compare
Choose a tag to compare
v0.4.9 Pre-release
Pre-release
  • Added FFTBuffer and FFTBufferPlayer node, and other new FFT processor nodes: FFTCrossFade, FFTLFO, FFTScaleMagnitudes
  • Added TriggerMult node to distribute a trigger to multiple outputs
  • Migrated build system to use pyproject.toml
  • Improved memory management and handling of SIGNALFLOW_NODE_INITIAL_OUTPUT_CHANNELS
  • SpatialPanner: Added beamforming support
  • Added support for >24-channel output devices on macOS (via custom libsoundio build)
  • Added troubleshooting docs

v0.4.7

23 Feb 18:13
Compare
Choose a tag to compare
v0.4.7 Pre-release
Pre-release
  • Optimized performance of SineOscillator, Sum and ChannelMixer on macOS with vDSP SIMD optimisations
  • Added support for int16 audio devices
  • Added num_channels param to AudioIn
  • Reduced Node memory usage by allocating buffers more economically
  • Fix bug when recreating AudioGraph after destroy()
  • Fixed signalflow command-line installer by switching to setuptools entry_points

v0.4.6

16 Feb 15:20
Compare
Choose a tag to compare
v0.4.6 Pre-release
Pre-release
  • Added NearestNeighbours, KDTree and signalflow_analysis package (including AudioFeatureBuffer) for audio feature analysis, latent space navigation and playback
  • Added signalflow_visualisation package for visualising patch structures with NetworkX
  • New nodes: FFTContrast, FFTTransform, FFTMagnitudePhaseArray, FFTRandomPhase, TimeShift
  • Many documentation additions and Node examples (thanks to @gregwht)

v0.4.3

12 Nov 23:41
Compare
Choose a tag to compare
v0.4.3 Pre-release
Pre-release
  • Add Windows build support for Python
  • Add DCFilter node

v0.4.2

10 Nov 21:49
Compare
Choose a tag to compare
v0.4.2 Pre-release
Pre-release
  • Add initial inline documentation for each Node class
  • Add auto-generated method stubs for IDE inline docs and type hints
  • Add initial example notebooks
  • Add signalflow_examples downloader

v0.4.1

08 Nov 20:31
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release
  • 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

08 Nov 20:32
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release
  • Implemented complete Python API
  • Migrated to CMake for build
  • Migrated to GitHub Actions for CI
  • Introduced initial Windows support
  • Naming overhaul and standardisation
  • Added AudioGraphConfig, and support for loading config from file and environmental variables
  • Added multiple Node subclasses for spatial panning
  • Added signalflow command-line utility
  • Added signalflow_midi helper package

v0.3.1

31 Dec 11:38
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

New features:

  • Node: Ability to stop playback and remove from graph #46

Closed issues:

  • Unify code indentation to use spaces throughout #76
  • Add support for initializing NodeRef/Multiplex with std::vector #75
  • Monitor: Add support for multichannel monitoring #74

v0.3.0

15 Jul 16:34
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

New features:

  • BufferRef #66
  • Example: audio-write-example #59
  • Buffer: Save to wav file #58
  • Support for named triggers #56
  • Trigger-based random number generation #49
  • Non-realtime processing #16

Fixed bugs:

  • Multiplex cannot be serialised #55

Closed issues:

  • Node: MouseX/MouseY #65
  • Integrate with Travis CI #54
  • Generate visualisation of synthesis graph structure #53
  • Naming review #44