Git Product home page Git Product logo

dx7-synth-js's Introduction

DX7 Synth JS

DX7 FM synthesis using the Web Audio and Web MIDI API. Works in Chrome and Firefox. Use a MIDI or QWERTY keyboard to play the synth.

Live demo of DX7 Synth JS

This is a high-level emulation of DX7 using FM synthesis principles. It's not super accurate, but good enough to produce most DX7 presets. Stereo panning has been added to the operators.

Controls:

  1. QWERTY keys to play notes
  2. Space bar panic (all notes off)
  3. Control hold down to increase QWERTY velocity
  4. Mouse wheel over knobs and sliders to increase/decrease value
  5. Click or touch and drag up/down on knobs and sliders to increase/decrease value
  6. Arrow up/down on knobs and sliders to increase/decrease value
  7. Tab moves between controls

Many thanks to:

  • John Chowning and Yamaha
  • Sean Bolton, author of Hexter, a DSSI DX7 modeler
  • Phil Cowans, author of Javascript-DX7 music hackday prototype https://github.com/philcowans/Javascript-DX7
  • Jamie Bullock, Ewan Macpherson, and other independent engineers who provided specs about the DX7/TX7 implementation
  • Propellerhead Software, for the PX7 Reason Rack Extension
  • Native Instruments, for the FM7 and FM8 VSTi software instruments

dx7-synth-js's People

Contributors

dependabot[bot] avatar mmontag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dx7-synth-js's Issues

Changing octave?

Thanks for this!

Is it possible to change the octave? Can't get low enough for the Bizarre Love Triangle bass line.

Enable Web MIDI for Firefox 99+

FF 99 supports Web MIDI as per https://bugzilla.mozilla.org/show_bug.cgi?id=836897. However, there is a little song and dance needed to prompt the user for the Web MIDI permission, as per https://extensionworkshop.com/documentation/publish/site-permission-add-on/.

I've implemented this in my own app at infojunkie/ireal-musicxml@9616545. In a nutshell, here are the steps:

  • Obtain a FF add-on (xpi file) called "site permission generator" that you host on your site, and that each user will download.
  • To show a message on your app that the user needs to download this add-on, you detect an error during navigator.requestMIDIAccess() and you detect that FF is the user agent.
  • The user downloads and installs the add-on, which then shows a second prompt to enable Web MIDI.
  • The user needs to refresh the page. This time, the call to navigator.requestMIDIAccess() will succeed and Web MIDI will be enabled.

You can refer to my commit above for a template of this process. Hope this helps!

index.html in master still want to use bundle.js

The code is amazingly well written and I'm learning it!

index.html in gh-pages uses bundle.js and works fine.

However the index.html in master still want to use bundle.js which is not yet complied. So, of course, the master branch is broken.

How to make index.html directly use source code(src/*.js) but not complied code(bundle.js)?

Cheers,

Kailang

MIDI input and playback broken in Chrome 56

After updating to Chrome 56, I'm still able to use the computer keyboard to trigger notes, and the demo buttons work as expected, but MIDI input seems to be ignored and nothing happens after selecting a MIDI file from the drop-down and pressing "play".

When using Chromium 55.0.2883.95 (which works), this message appears in the console, which may or may not be related:

MIDIMessageEvent.receivedTime is deprecated and will be removed in M56, around January 2017. See https://www.chromestatus.com/features/5665772797952000 for more details.

bug in envelope processing

Hi,
in the envelope processing if "decayIncrement" becomes 0 the processing doesn't work correctly because it will never reach the next state because the level is not changed anymore (example would be levels=99,95,95,0 and rates=96,0,12,70)

  • questor

Linux, chrome, sounds choppy

Chrome: Version 77.0.3865.75 (Official Build) (64-bit)

When playing demo:

  • high cpu usage
  • choppy sound
  • choppy sound improves by reducing operators enabled

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.