All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed: preserve order of segments in index
after augmentation with
auglib.Augment.augment()
- Fixed: ensure transforms work with signals
stored in a read-only
numpy.array
- Fixed: return correct float types with
numpy>=2.0
- Fixed: broken links on the landing page of the documentation
- Fixed:
auglib.transform.PinkNoise
when applied to signals with odd sample length
- Fixed: missing audio examples in documentation
- Fixed: add missing entries to the changelog of 1.0.0
- Added: public release
- Added: support for MacOS
- Added: support for Windows
- Added: audio examples and figures to the docstrings of all transforms
- Added: depend on
scipy
- Added:
sampling_rate
as argument to__call__()
of transforms that require a sampling rate - Added: support for Python 3.9, 3.10 and 3.11
- Added:
auglib.utils.rms_db()
- Changed:
auglib.Augment.augment()
now stores augmented segments as single files in cache - Changed:
auglib.Augment.augment()
now usesallow_nat=True
when calculating the hash of an index, which is used to store/find augmented files in cache - Changed: depend on
audeer>=2.0.0
- Changed: convert code base to pure Python
- Changed: switch to MIT License
- Fixed: support overlapping segments
- Fixed: ensure the
duration
argument ofauglib.transform.AppendValue
andauglib.transform.PrependValue
is first observed when calling the transform - Removed:
sounddevice
dependency - Removed:
auglib.AudioBuffer
- Removed:
auglib.set_exception_handling()
- Fixed: changes to the correction
of
start
andend
inauglib.Augment.augment()
as introduced inauglib
v0.12.1
- Changed: require
audmath >=1.3.0
- Changed: require
audinterface >=1.0.4
- Changed: use
audmath.samples()
to convert from duration to samples - Fixed: add missing "Returns" section
to documentation of
auglib.AudioBuffer.from_array()
- Added:
auglib.transform.Fade
- Changed: use version 2.0.3 of the
auglib
C++ library - Changed: split API documentation into sub-pages for each function/class
- Changed: if
loop_aux
isTrue
inauglib.transform.Mix
theaux
buffer is now first looped beforeread_pos_aux
andread_dur_aux
are applied - Fixed:
gain_base_db
inauglib.transform.Mix
was not applied to all samples of thebase
buffer starting at the length of theaux
buffer and ending atread_dur_aux
- Changed: require
audobject >=0.7.6
- Fixed: missing
unit
attribute inauglib.transform.BabbleNoise
- Fixed:
preserve_level
argument was missing forauglib.transform.BabbleNoise
andauglib.transform.PrependValue
- Added:
auglib.transform.BabbleNoise
- Added:
auglib.transform.Prepend
- Added:
auglib.transform.PrependValue
- Added:
auglib.transform.Resample
- Added:
auglib.transform.Shift
- Added:
snr_db
argument toauglib.transform.Mix
auglib.transform.PinkNoise
,auglib.transform.Tone
,auglib.transform.WhiteNoiseGaussian
,auglib.transform.WhiteNoiseUniform
to specify the signal-to-noise ratio between the incoming and added signal - Added:
end_pos
andfill_pos
toauglib.transform.Trim
to allow any kind of cropping, zero padding, and signal repetition - Added:
preserve_level
argument to all transforms. IfTrue
it ensures that the transformed signal has the same root-mean-square value as the incoming signal - Added:
auglib.AudioBuffer.rms()
andauglib.AudioBuffer.rms_db()
- Added:
sampling_rate
argument toauglib.AudioBuffer.write()
- Added: Noise with fixed SNR example in the documentation
- Added: Band-Pass Filtered Noise example in the documentation
- Changed: allow a transform object as input
for the
aux
argument in transforms that have this argument - Changed:
auglib.transform.Trim
no longer supports providing astart_pos
that is larger than the buffer length - Changed:
auglib.transform.Trim
with argumentfill="loop"
no longer loops the whole input signal, but only the trimmed version specified bystart_pos
and/orend_pos
. For cycling through a signal useauglib.transform.Shift
instead - Changed: raise
ValueError
ifsampling_rate
argument is not greater than zero or not an integer - Changed: serializing a transform
that contains a buffer as
aux
argument will raise aValueError
- Changed: when applied to an input signal
auglib.transform.Function
raises aRuntimeError
if it would result in an empty augmented signal - Changed: depend on
audformat>=0.15.2
- Fixed:
read_dur_aux
inauglib.transform.Append
does now allow to beNone
- Added: pitch shift example
- Added: constant pitch examples
- Fixed: correct examples for
pedalboard>=0.4.0
- Changed: depend on
audformat>=0.13.0
- Fixed: do not sort augmented index
- Fixed: Ci job for Python package publication
- Changed: use
audinterface>=0.8.0
- Changed: use Python 3.8 as default Python version
- Changed:
Augment.augment()
caches augmented index - Fixed:
Augment.augment()
supports transforms that change the segment length - Fixed:
Augment.augment()
supports index with relative file names
- Added:
auglib.transform.Function
- Added: Examples section to Getting Started part of the documentation
- Added: External Solutions section to Getting Started part of the documentation
- Added:
auglib.observe.Base
- Added:
auglib.observe.Bool
- Added:
auglib.observe.FloatNorm
- Added:
auglib.observe.FloatUni
- Added:
auglib.observe.IntUni
- Added:
auglib.observe.List
- Added:
auglib.observe.observe
- Added:
num_repeat
argument toauglib.transform.Mix
- Added:
auglib.seed()
- Added:
auglib.transform.Base
- Added:
auglib.Time
- Added:
fill
argument toauglib.transform.Trim
- Added:
auglib.transform.Mask
- Added:
seed
argument toauglib.Augment
- Added: documentation on how to implement a transform
under
auglib.transform
- Added: documentation on how to implement an observable
under
auglib.observe
- Added:
auglib.AudioBuffer.duration
- Added: multi-channel support for
auglib.Augment
- Changed:
auglib.AudioBuffer.to_array()
returns 2d array - Changed: hide
AudioBuffer.data
andAudioBuffer.obj
- Changed: make
sampling_rate
a keyword argument inauglib.utils.to_samples()
- Changed: increase code coverage to 100%
- Changed: use short ID for flavor folders in cache
- Deprecated:
auglib.Int
- Deprecated:
auglib.IntList
- Deprecated:
auglib.Float
- Deprecated:
auglib.FloatList
- Deprecated:
auglib.Number
- Deprecated:
auglib.Str
- Deprecated:
auglib.StrList
- Deprecated:
auglib.NumpyTransform
- Deprecated:
auglib.utils.random_seed()
- Deprecated:
auglib.Transform
- Deprecated:
auglib.Source
- Deprecated:
auglib.source.FromArray
- Deprecated:
auglib.source.Read
- Deprecated:
auglib.Sink
- Deprecated:
auglib.sink.Play
- Deprecated:
auglib.sink.Write
- Deprecated:
auglib.AudioBuffer.play()
- Removed:
scipy
dependency - Removed:
humanfriendly
dependency - Removed:
auglib.transform.FilterDesign
- Removed:
auglib.transform.ToneShape
- Removed:
auglib.ExceptionHandling
- Removed:
auglib.LibraryException
- Removed:
auglib.LibraryExceptionWarning
- Changed. Updated underlying binary with latest auglib updates. Main change: ClipByRatio transform does not raise exceptions anymore when the computed threshold is too low.
- Added: set cache root with
$AUGLIB_CACHE_ROOT
- Changed: switched from
audata
toaudformat
- Added:
channels
andmixdown
argument to :class:`auglib.Augment` - Changed: :class:`auglib.Augment` derives from :class:`audobject.Object`
- Fixed: :meth:`auglib.default_cache_root` uses :meth:`auglib.Augment.id`
- Fixed: restore progress bar in all
auglib.Augment.process_*
methods
- Changed: avoid nested progress bar in :meth:`auglib.Augment.augment`
- Added: :class:`auglib.config`, :meth:`auglib.default_cache_root`, :meth:`auglib.clear_default_cache_root`
- Changed:
cache_root
argument of :meth:`auglib.Augment.augment` defaults to :meth:`auglib.default_cache_root`
- Changed: remove outdated example from README
- Fixed: remove unused
as_db
argument form :class:`auglib.FloatUni`
- Removed: previously deprecated :class:`auglib.AudioModifier` is now removed.
- Changed: Now using the
audobject
package to serialize :class:`auglib.Transform` objects to YAML. - Fixed: Safer guards against the usage of negative time values whenever
auglib.core.utils.to_samples
is called. - Fixed: Potential bug when using :class:`auglib.Transform.Trim` with a
duration
member greater than the actual input buffer size.
- Fixed: missing documentation for :class:`auglib.Transform.Trim`
- Added: :class:`auglib.Transform.Trim`.
- Changed: :meth:`auglib.Transform.call` made private (changed into :meth:`auglib.Transform._call`).
- Added: :class:`auglib.Augment`
- Changed: use
audeer
helper functions - Changed: implement usage example with
jupyter-sphinx
- Changed: mark :class:`auglib.AudioModifier` as deprecated
- Removed: tests for :class:`auglib.AudioModifier`
- Added: documentation on supported bit rates to :class:`auglib.transform.AMRNB`
- Added: link to documentation to Python package
- Changed: Avoid automatically enabling the
force_overwrite
option inAudioModifier.apply_on_index
. The user is now required to set this manually.
- Added:
compressDynamicRange
: option to restore original peak.
- Fixed: Replace
utils.mk_dirs
withaudeer.mkdir
(improve thread-safety)
- Added:
IntList
andFloatList
as companions toStrList
. - Fixed:
FloatNorm
now provided with class members.
- Added: transform
BandStop
- Fixed:
FloatNorm
properly draws from truncated distribution
- Added: transform
CompressDynamicRange
- Changed: remove support for Python 3.5
- Changed: publish package in ci-job
- Changed: allow random filter order
- Changed: allow random filter order
- Added:
Bool
andBoolRand
class - Changed: copyright years
- Fixed: update release instructions to avoid obsolete files in wheel package
- Changed: api documentation with toc-tree
- Added:
AudioModifier
interface - Added:
relative
position argument - Changed: re-structured package
- Added: unit
relative
to randomize position relative to buffer length - Fixed:
read_pos_dur
bug in mix function
- Added: handling of exceptions thrown by c library
- Fixed:
read_pos_aux
bug in mix function
- Fixed: dependency to
libSoundTouch.so.1
is properly resolved if called outside the root directory
- Changed: implemented transforms as classes
- Added:
libSoundTouch
shared library - Fixed: high pass filter
- Changed: rely on typehints in docstring
- Added:
clip_by_ratio()
- Changed:
Tone
constructor - Changed:
[low,high,band]_pass()
arguments - Changed:
clip()
arguments
- Added: add icon
- Added: advanced usage example
- Added:
AudioBuffer.from_file()
to read from an audio file - Added:
AudioBuffer.to_file()
to save buffer to a an audio file - Changed:
AudioBuffer.FromArray()
toAudioBuffer.from_array()
- Added: initial release