Skip to content

This repository contains many different packages which I created in order to use them in my audio software projects

Notifications You must be signed in to change notification settings

scriptify/sountility

Repository files navigation

sountility

a collection of useful utility libraries for the webaudio-api

This repository contains many different packages which I created in order to use them in my audio software projects. Initially, those packages were all split and had there own repository. But as you can probably immagine, it's a pain to maintain them in that way. As soon as I realized that, I tried to find a way how I could manage them more easily. And sountility is a good answer for me.

Packages

Here's a list of all packages with a short description.

I needed something with a LOT of audio effects integrated which can be manipulated in many different aspects. And I needed to use this in many different ways: Every native AudioNode should be able to connect to it as it would be a normal AudioNode, but also other Chnls should be able to connect to another Chnl. So I could simply and intuitively create audio graphs with a set of effects. No matter if I connect a song, mic input or even a synthesizer.

Sometimes you want to include some effects or other audioprocessors in an audio graph which can be enabled and disabled. E.g. a lowpass which can be toggled by the user. This is currently not directly possible with the Web Audio API. So The effect unit does this for you. Additionally, when you create an audio effect with the EffectUnit, you always define clear interfaces which manipulate the effect. Together with some metadata you provide, this can be very powerful, especially if you have a set of effects and a User Interface where the values of those effects should be editable.

An effects collection based on the webaudio-effect-unit.

This package extends the chnl module and adds the possibility to turn a webaudio BufferSourceNode into a chnl.

It's an extension of the chnl module: This module is made for playing, pausing, stopping and manipulating Audio-objects.

An audiolooper let's you loop your audiotracks in a very simple and intuitive way. The looping algorithm keeps the tracks automatically in sync.

This module abstracts away the logic needed to record audio in your browser. Since it's based on the chnl module, a lot of effects can be added to the input.

This library combines all of the modules of the sountility collection and creates a full-featured looping library.

The scope of this module is to manage the input of many audio-channels in one instance. It's just a simple extension of the chnl module, with the only difference that you can record all the input to it and output the recorded data directly to a file.

This is a fork of mattdiamonds recorderjs. Due the fact that he dropped support on this project, i forked my own copy to have the possibility to fix bugs and add customizations.

Build instructions

It's easy to build a sountility package. Just use the following command:

npm run start:prod -- <package-name>

Replace package-name with one of the packages mentioned above.

About

This repository contains many different packages which I created in order to use them in my audio software projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published