Releases: ideoforms/signalflow
Releases · ideoforms/signalflow
v0.5.0
- Replaced the
libsoundio
audio abstraction layer withminiaudio
, heralding first-class Windows and Linux support. - Retired historical
AudioOut
classes for different operating systems, and refactored querying of inputs/outputs/backends AudioGraphConfig
: Addedauto_record
flag, to automatically record all output in timestamped audio files- Added support for instantiating
AudioGraph
andAudioGraphConfig
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 secondAudioGraph
- Added Python bindings and added unit tests for
SampleRingBuffer
andSampleRingQueue
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 byN
channels, andnode.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 accompanyingcalculate_decay_coefficient
function - Added abstract
VariableInputNode
class - Added
stutter_probability
andstutter_advance_time
inputs toStutter
- Added
v0.4.9
- Added
FFTBuffer
andFFTBufferPlayer
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
- Optimized performance of
SineOscillator
,Sum
andChannelMixer
on macOS with vDSP SIMD optimisations - Added support for
int16
audio devices - Added
num_channels
param toAudioIn
- Reduced
Node
memory usage by allocating buffers more economically - Fix bug when recreating AudioGraph after destroy()
- Fixed
signalflow
command-line installer by switching to setuptoolsentry_points
v0.4.6
- Added
NearestNeighbours
,KDTree
andsignalflow_analysis
package (includingAudioFeatureBuffer
) 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
v0.4.2
v0.4.1
- New node:
ChannelCrossfade
RectangularEnvelope
: Rename fromEnvelopeRect
for consistency with otherEnvelope
classesNode
: Addis_playing
propertyNode
: Refactorplay
/stop
error handling to useNodeAlreadyPlayingException
,NodeNotPlayingException
,CPUUsageAboveLimitException
BufferPlayer
: Addposition
propertyBuffer
: Addfilename
read-only propertySawLFO
,SawOscillator
: Implement phase reset withtrigger
Granulator
: Add support for negative playback rates, stereo inputsignalflow_midi
: Add support forMIDIManager
per-channel binding- Add wheel for Python 3.12
v0.4.0
- 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