Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ISNIT0/webaudio-generator

A UI for generating WebAudio code
https://github.com/ISNIT0/webaudio-generator

Last synced: 25 days ago
JSON representation

A UI for generating WebAudio code

Awesome Lists containing this project

README

        

# WebAudio Generator
A UI for generating linear WebAudio code (https://webaudio.simmsreeve.com/)

[![CodeFactor](https://www.codefactor.io/repository/github/isnit0/webaudio-generator/badge)](https://www.codefactor.io/repository/github/isnit0/webaudio-generator)

![A screenshot of WebAudio Generator](./screenshot.png "WebAudio Generator in Action")

## Justification
This tool was written to be used as an educational aid in a talk at [London Audio Developers Meetup](https://skillsmatter.com/groups/10788-audio-developers-meet-up).

Video available [here](https://skillsmatter.com/skillscasts/12492-audio-developers-meet-up):
![An image of the WebAudio Talk](./talk-screenshot.png)

## Usage
- To add a node, click on an arrow
- To "inspect" a node, click the node

## Supports
- Inputs
- Microphone
- File
- Oscillator
- "Modifier" Nodes
- WebAssembly CustomWorklet
- Gain
- Delay
- BiquadFilter
- Analyser
- Outputs
- Speaker

## Apologies
The code was never supposed to be nice, but things got a bit out of hand...

Most of the code pretends to be immutable, but there are various places this pattern is un-expectedly broken. I foresee various painful bugs being introduced if development were to continue.

Also, I cringe at the method used to generate code. It's disgusting and you should definitely not try it at home.

## Future (See GH Issues)
- Support non-linear WebAudio graphs (probably using [Cytoscape](http://cytoscape.org/)) - Would require a re-write
- Improve UI & UX
- Output to file

## Developing
1. Don't
2. You'll need the following:

```bash
> brew install fswatch
> npm i -g browserify less

> npm i
> ./build.sh
> ./watch.sh
```

## See Also
- [PaymentRequest Generator](https://paymentrequest.simmsreeve.com)

## Useful Links
### AudioWorklet + WebAssembly
- https://developers.google.com/web/updates/2017/12/audio-worklet
- https://github.com/GoogleChromeLabs/web-audio-samples/tree/gh-pages/audio-worklet/design-pattern/wasm

## License
[MIT](./LICENSE)