Skip to main content

Babycat Logo

Babycat is an audio decoding and manipulation library

Rustdoc status crates.io status Rust dependency status

Features

Decoding, resampling, and encoding

Babycat's core feature set includes:

  • decoding MP3, FLAC, and WAV.
  • resampling audio to different frame rates.
  • encoding waveforms to WAV.

Bindings for Rust, Python, WebAssembly, and C

Babycat can be used from the following target languages:

  • Rust. The majority of Babycat is written in Rust, with the exception of a few C dependencies like libsamplerate.
  • Python. Babycat's Python bindings allow you to decode, resample, and encode audio without being slowed down by Python's Global Interpreter Lock (GIL). Babycat also integrates with Jupyter, allowing you to play and listen to audio streams decoded by Babycat inside of a Jupyter notebook.
  • WebAssembly. Babycat generates JavaScript/WebAssembly bindings that can run either in a web browser or in Node.js.
  • C. Babycat exposes a C API, which is useful for both creating audio analysis projects in C or creating Babycat bindings for languages not mentioned above.

Effective multithreading and parallelism

Babycat is designed to parallelize the decoding of many audio files across multiple CPU cores. Babycat's Python bindings allow for parallel audio decoding without being slowed down by Python's Global Interpreter Lock.

Open source under the MIT license

The audio ecosystem is full of expensive proprietary software packages, or (L)GPL-licensed code that restricts how you can use it. In contrast, Babycat is licensed under the MIT license, allowing you to use Babycat any way you want for free.

Babycat is battle-tested in industry

Babycat was built at and is actively maintained by Neocrym, a record label that uses artificial intelligence to find and promote the world's greatest musicians. Neocrym uses Babycat to decode millions of songs as part of audio feature engineering pipelines for machine learning models.

Learn more

Source code and issues

You can find Babycat's source code at github.com/babycat-io/babycat.

API documentation and releases

babycat.io is our main documentation website. You can find documentation and releases for each binding at:

Binding Documentation Releases
Rust docs.rs/babycat crates.io/crates/babycat
Python babycat.io/api/python pypi.org/project/babycat
WebAssembly babycat.io/api/wasm npmjs.com/package/babycat
C babycat.io/api/c No releases yet. You can compile from source.

Tutorials

You can learn more about how to use Babycat from our long-form tutorials:

Acknowledgements

The first version of Babycat was an internal project at Neocrym written by Ritik Mishra Since then, the code has been extended and open-sourced by James Mishra.

Babycat is built on top of many high-quality open source packages, including:

Babycat's goal is to provide a simple and consistent API on top of the existing audio ecosystem, without sacrificing performance, portability, or permissive licensing.

Metadata

Release files for babycat 0.0.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for babycat 0.0.15
File Interpreter ABI Platform
babycat-0.0.15-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
babycat-0.0.15-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details
babycat-0.0.15-cp38-abi3-macosx_10_7_x86_64.whl CPython 3.8 abi3 macOS 10.7+ x86-64 Details

Total release size: 8.5 MB

Release files / babycat-0.0.15-cp38-abi3-win_amd64.whl

Download URL babycat-0.0.15-cp38-abi3-win_amd64.whl
Size 2.4 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
0f3cd295ebc711bc874fd69f7ed09bffd89320fc7a438ae4ad8818f724a79af9
BLAKE2b-256 checksum
How to use checksums
7983cdd047bf115ef0f3c8c37c5bdaeff9da3c5876f9ae880ae04e6042512188
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release files / babycat-0.0.15-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL babycat-0.0.15-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.5 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
eb3041570d762c34917291982895a8b90c5a2a42a8a4f23e1347120445379063
BLAKE2b-256 checksum
How to use checksums
8b3d6dd9279ae86747445b3627bbc0d549629d0ce836f10ab12ee0c8a331028e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release files / babycat-0.0.15-cp38-abi3-macosx_10_7_x86_64.whl

Download URL babycat-0.0.15-cp38-abi3-macosx_10_7_x86_64.whl
Size 2.6 MB
Tags CPython 3.8 abi3 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
79d316ca2b2ebaf8b36e79c62a6356b37c68489164753f068eecb77ea55411ad
BLAKE2b-256 checksum
How to use checksums
2b322ca2ada566386522c343e4956bcbb307237c14e26a97f4f170e21c244d87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.14

Release history Release notifications | RSS feed

This release

0.0.15 This release

3 release files

0.0.13

3 release files

0.0.12

3 release files

0.0.11

3 release files

0.0.10

3 release files

0.0.9

3 release files

0.0.6

3 release files

0.0.5

3 release files

0.0.4

3 release files

0.0.3

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page