Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jstrait/jssynth
Make music in your browser with this synthesizer and sequencer
https://github.com/jstrait/jssynth
audio instrument music sequencer synth synthesizer webaudio
Last synced: about 2 months ago
JSON representation
Make music in your browser with this synthesizer and sequencer
- Host: GitHub
- URL: https://github.com/jstrait/jssynth
- Owner: jstrait
- License: mit
- Created: 2014-07-08T03:32:19.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-07-14T22:33:29.000Z (5 months ago)
- Last Synced: 2024-10-13T15:27:06.998Z (about 2 months ago)
- Topics: audio, instrument, music, sequencer, synth, synthesizer, webaudio
- Language: JavaScript
- Homepage: https://www.joelstrait.com/jssynth
- Size: 4.02 MB
- Stars: 36
- Watchers: 9
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-javascript-audio - jssynth - powerful synth and sequencer (MIDI instruments / Synths)
README
# JS-130
A synthesizer and sequencer that runs in your browser, using the WebAudio API.
Try it out here: [https://www.joelstrait.com/jssynth/](https://www.joelstrait.com/jssynth/)
## Example Song
The song below is an example of what you can create with the JS-130, along with [Beats Drum Machine](https://beatsdrummachine.com) and GarageBand.
[JS-130 Example Song](https://www.joelstrait.com/jssynth/js-130-demo.m4a)
## Features
* Oscillator Instruments
* Base oscillator with sine/square/saw/triangle wave
* Secondary oscillator with same wave types, and optional detune from primary oscillator
* White or pink noise
* Adjustable volume for each noise source (oscillator 1, oscillator 2, noise)
* LFO to control oscillator pitch (i.e. "pitch wobble")
* Filter, with LFO and ADSR envelope to control filter cutoff frequency
* ADSR Envelope to control loudness
* Feedback delay and reverb effects
* Sampler Instruments
* Use a sound file (*.wav, *.mp3, etc.) as an instrument
* Filter, with LFO and ADSR envelope to control filter cutoff frequency
* ADSR Envelope to control loudness
* Feedback delay and reverb effects
* Sequencer
* Multiple tracks, each with its own instrument and set of patterns
* Enter notes in patterns via on-screen piano keyboard, MIDI keyboard, or computer's keyboard
* Full songs 1-99 patterns long
* Volume control + mute for each track
* Tempo control
* Master volume control
* On-screen keyboard to enter notes and try out sounds
* MIDI keyboard support (only in browsers that support Web MIDI, such as Chrome)
* Download sequencer output to a *.wav file## Running Locally
* If running the app locally for the first time, run `yarn install`
* Run `yarn serve`, which will build the app and start a local development server
* Open the `localhost` URL listed in the command-line output in your browser
* If a source file is changed while the server is running the app will automatically be rebuilt. However, you'll need to manually refresh the page in your browser to see the changes.## Building For Production
* If building the app for the first time, run `yarn install`
* Run `yarn build`
* The `dist/` folder will contain the files that should be deployed to production## Screenshots
Sequencer:
![JS-130 Sequencer](js-130-sequencer.png)---
Instrument editor:
![JS-130 Instrument Editor](js-130-instrument-editor.png)---
Pattern editor:
![JS-130 Pattern Editor](js-130-pattern-editor.png)