Skip to content

Releases: faroit/stempeg

stempeg 0.2.3

30 Jan 15:21
e7d423a
Compare
Choose a tag to compare

Version 0.2 is a rewrite of stempeg that focusses on speed and performance but also adding a number of additional features.
Furthermore, stempeg now can read and write stem files in three different ways to utilize best the different audio containers. For example, as pcm/wav doesn't support multiple audio streams, instead, stempeg can read and write into streams aggregated into multiple pairs of stereo channels.

Audio Loading

  • Underlying reading backend is now based on python-ffmpeg.
  • With this new backend, the creation of any temporary files is reduced, thus audio is directly piped into numpy via stdio. This leads to loading time improvement of 20%-30%.
  • A target sample rate can be specified to resample audio on-the-fly using ffmpeg.
  • An optional stems_from_multichannel was added to load stems that are aggregated into multichannel audio (concatenation of pairs of stereo channels), see more info on audio writing.
  • substream titles metadata can be read from the Info object.
  • Loading audio now uses the same API as in spleeters audio loading backend.

Audio Writing

This new version stabilizes writing support adding writer methods to be passed to stempeg.write_stems() to save multi-stream audio.
The choice of the writing method mainly depends on the audio container and codec. E.g. some containers supports multiple stems (mp4/m4a, opus, mka) where as others does do not (wav, mp3...).

  • stempeg.FilesWriter saves stems into multiple files. This writer can be boosted in performance using multiprocess=True. Which writes the stems in parallel.
  • stempeg.ChannelsWriter saves as multiple channels. Stems will be multiplexed into channels and saved as a single
    multichannel file. E.g. an audio tensor of shape=(stems, samples, 2)
    will be converted to a single-stem multichannel audio
    (samples, stems*2).
  • stempeg.StreamsWriter saves into a single a multi-stream file.
  • stempeg.NIStemsWriter saves into a single multistream audio. Finally one can create stems files that are fully compatible with Native Instruments stems. For this, MP4Box has to be installed. See more info here.

Furthermore the following features were added:

  • Names for each substream can now be embedded into metadata.
  • stempeg can be used to just write normal audio files (mono and multichannel) using write_audio which also is fully API compatible to spleeters audio backend.

For more information see the updated documentation
Thanks to @mmoussallam, @romi1502, @Rhymen, @nlswrnr, and @axeldelafosse

...Another bugfix release

09 Jul 15:22
Compare
Choose a tag to compare

The seeking issue (#21) was not fully fixed. This release should address the remaining issues when using the chunked loading using very small float numbers as start parameter

Bugfix release

08 Jul 11:24
Compare
Choose a tag to compare

Fixes a bug (#18) that occurs when start or duration is using very small float numbers (1e-6) that are literally converted into strings maintaining the scientific notation.

Also addresses #21 and add an additional check for ffmpeg and ffprobe before actually reading any files

Demo Track

13 Mar 23:00
Compare
Choose a tag to compare
  • a demo track is now part of stempeg for convenience
stem, rate = stempeg.read_stems(stempeg.example_stem_path())

Seek it!

13 Mar 16:31
Compare
Choose a tag to compare
  • added seeking
  • added the ability to provide file info to reduce the number of calls

Fixed out_type

10 Nov 12:16
Compare
Choose a tag to compare

There was a bug in the earlier versions of stempeg that didn't respect the set out_type in the stem reader. This was fixed and the output defaults to np.float64.

Thanks to

@hexafraction

Add warnings if ffmpeg version is older than 3.0

18 Feb 16:58
Compare
Choose a tag to compare

Add some code and warnings to detect the ffmpeg version and warn users when a version older than 3.0 is used since that is adding additional silence to the output files when encoding.

Also addressing #3

Check for available AAC codecs

20 Dec 11:28
Compare
Choose a tag to compare

this release fixes #1 by checking the available ffmpeg encoders and picking aac ist libfdk_aac is not available.

Also the ffmpeg error now are visible

initial release after some debugs

17 Dec 19:53
Compare
Choose a tag to compare
v0.1.1

update version