A little and very high level library to perform basic operations on audio files in the OCaml language
· Documentation · Report Bug · Request Feature ·
Warning
The project is still in development and is not yet ready for use.
This project uses Opam as a package manager
opam install soundml
The project is still work in progress.
- Read and Write audio
- Compute the FFT of an audio signal
- Compute the IFFT of an FFT
- Compute the spectrogram of an audio file
- Use a generic spectral function (similar to
matplotlib.mlab
) to compute the spectrogram - Allow different types of specgram computation (mel, mag, etc...)
- Use a generic spectral function (similar to
- Audio slicing (in a similar way to Owl's slicing)
- Basic onset detection algorithms
- RMS
- LUFS and DBSF are left for further version (LUFS algorithm might require in-depth review of the standards)
- Natively written in OCaml for a perfect OCaml developer experience
- Easily read and write audio files in various formats (WAV, MP3, etc...)
- Various audio signal processing functions included
- FFT, IFFT
- Spectrogram computation
- Audio slicing
- RMS computation
You should be using the OCaml compiler with a version at least equal to 5.1.0. You can install it by following the instructions on the OCaml website. This project uses the Dune build system.
This library heavily relies on the Owl and ocaml-ffmpeg libraries.
Name | Version | Description |
---|---|---|
Owl - OCaml Scientific Computing | >= 1.1 |
Library for scientific computing in OCaml. Used to make the heavy computations (FFT, IFFT, etc...) |
ocaml-ffmpeg - OCaml bindings to the FFmpeg library. | >= 1.1.11 |
OCaml bindings for FFmpeg. Used to read and write audio data. |
This project is heavily inspired by other amazing open-source libraries such as:
Name | Inspiration | Reference |
---|---|---|
librosa | General functionalities for audio signal processing | McFee, Brian, Colin Raffel, Dawen Liang, Daniel PW Ellis, Matt McVicar, Eric Battenberg, and Oriol Nieto. "librosa: Audio and music signal analysis in python." In Proceedings of the 14th python in science conference, pp. 18-25. 2015. |
pydub | Ease of use, audio slicing using milliseconds and manipulation | - |
Don't hesitate to check the amazing work done by the authors and contributors of these libraries!
Distributed under the Apache License Version 2.0. See LICENSE for more information.
- Logo generated with DALL-E by OpenAI