Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scriptify/sountility
This repository contains many different packages which I created in order to use them in my audio software projects
https://github.com/scriptify/sountility
Last synced: 25 days ago
JSON representation
This repository contains many different packages which I created in order to use them in my audio software projects
- Host: GitHub
- URL: https://github.com/scriptify/sountility
- Owner: scriptify
- Created: 2017-03-26T12:34:54.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-05T06:13:31.000Z (over 5 years ago)
- Last Synced: 2024-08-03T16:09:44.402Z (4 months ago)
- Language: JavaScript
- Size: 827 KB
- Stars: 50
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-javascript-audio - scriptify/sountility - includes many small packages for adding, mixing, toggling effects on AudioNodes (Libraries: Web Audio API / Web MIDI API)
README
# sountility
### a collection of useful utility libraries for the webaudio-apiThis 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.
#### [webaudio-chnl](./packages/webaudio-chnl/README.md)
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.
#### [webaudio-effect-unit](./packages/webaudio-effect-unit/README.md)
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.
#### [webaudio-effect-units-collection](./packages/webaudio-effect-units-collection/README.md)
An effects collection based on the webaudio-effect-unit.
#### [audiobufferchnl](./packages/audiobufferchnl/README.md)
This package extends the chnl module and adds the possibility to turn a webaudio BufferSourceNode into a chnl.
#### [audiochnl](./packages/audiochnl/README.md)
It's an extension of the chnl module: This module is made for playing, pausing, stopping and manipulating Audio-objects.
#### [audiolooper](./packages/audiolooper/README.md)
An audiolooper let's you loop your audiotracks in a very simple and intuitive way.
The looping algorithm keeps the tracks automatically in sync.
#### [recordy](./packages/recordy/README.md)
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.
#### [soundcyclejs](./packages/soundcyclejs/README.md)
This library combines all of the modules of the __sountility__ collection and creates a full-featured looping library.
#### [wmstr](./packages/wmstr/README.md)
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.
#### [wrecorder](./packages/wrecorder/README.md)
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:
```bash
npm run start:prod --
```
Replace _package-name_ with one of the packages mentioned above.