https://github.com/timdaub/wasm-synth
C++ in the browser? Webassembly? Sounds jarring? Indeed, it is! Synthesizer for the browser.
https://github.com/timdaub/wasm-synth
synthesizer wasm-synth
Last synced: about 2 months ago
JSON representation
C++ in the browser? Webassembly? Sounds jarring? Indeed, it is! Synthesizer for the browser.
- Host: GitHub
- URL: https://github.com/timdaub/wasm-synth
- Owner: TimDaub
- License: gpl-3.0
- Created: 2019-10-30T13:15:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-02T03:58:03.000Z (over 2 years ago)
- Last Synced: 2024-12-19T21:21:29.999Z (6 months ago)
- Topics: synthesizer, wasm-synth
- Language: JavaScript
- Homepage: https://timdaub.github.io/wasm-synth/
- Size: 1.98 MB
- Stars: 126
- Watchers: 8
- Forks: 4
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# wasm-synth
> A synthesizer built from scratch in C++ and made available on the web
> through WebAssembly.## Prerequisites
The following tools are required for spinning up a local instance of WASM
SYNTH. Click on the links to view the installation manuals:- [emscripten](https://emscripten.org/docs/getting_started/downloads.html) (`emcc version 1.39.0`)
- [rollupjs](https://rollupjs.org/guide/en/)## Docs & Blog post
My previous goal with this project was to learn audio programming. I wrote
about it in [this blog post](https://timdaub.github.io/2020/02/19/wasm-synth/).
Since until then, a [cambrian
explosion](https://en.wikipedia.org/w/index.php?title=Cambrian_explosion&oldid=952135228)
of webassembly-based browser languages have appeared, I'm currently trying to
make WASM SYNTH work properly again.## Compatibility
Since it seems that many browsers-vendors are arbitrarily changing APIs these
days, I'm gonna keep track of WASM SYNTHs compatability here.|Commit|Chrome|Firefox|Safari|Brave|
|---|---|---|---|---|
c4379418bc1cfe116dbf6bc51e25a42fdaa9c6f3|✓ 81.0|✓ 76.0|✗ 13.0.4|✓ 1.8.86|### How are we currently testing?
- `npm run dev` and open the displayed site in one of the above browsers
- Hit some notes on your keyboard or by pressing with the mouse
- Toggle some UI elements (e.g. toggle off an oscillator)### I know how to improve/automate testing!
That's great! Any feedback or help is welcome! Please get in touch!
## Install
To install:
```
$ npm i
```## Run
Before running the below specified commands, you'll have to set emsdk's
environment variable as is detailed on the above linked page.For development:
``` $ npm run dev ```
To build:
``` $ npm run build ```
## License
See [License](./LICENSE).
## Third Party resources Licenses
- Caret from [Freepik](https://www.flaticon.com/de/autoren/freepik) from [Flaticon](https://www.flaticon.com)