mdlr
v0.0.3
Published
a react component library for building declarative synthesizer instruments and systems
Downloads
6
Maintainers
Readme
mdlr
⚠️ mdlr is just a lil bb library right now ⚠️
⚠️ ~please contribute if it interests you~ ⚠️
table of contents
intent
mdlr
is an abstraction of synthesis via the web audio API in the form of composable React components.
While it draws inspiration from react-music
, its goals differ. If react-music
could be considered most equivalent to a synthesizer workstation, mdlr
would be best compared to Max (perhaps its BEAP library in particular), or modular synthesizers. Nonetheless, mdlr
draws inspiration from other javascript libraries and web audio API abstractions such as react-music
and i_dropped_my_phone_the_screen_cracked
mdlr
is not concerned with implementing methods of control like sequencers, MIDI input, or basic musical time structures. In fact, mdlr
doesn't even implement musical pitch (since this is easily derived by other utilities like note-to-frequency
) in favor of frequency. Decisions about control, timing, temperament, etc. are better made in the context of mdlr
's use.
installation
via npm
:
npm install --save mdlr
or via yarn
:
yarn add mdlr
usage
import { AudioContext, Output, Oscillator, Modulation } from 'mdlr';
const ToneGenerator = ({ freq }) => (
<AudioContext>
<Output>
<Oscillator frequency={freq} waveform="sawtooth">
<Modulation parameter="frequency">
<Oscillator frequency={30} />
</Modulation>
<Modulation parameter="amplitude">
<Oscillator frequency={2} />
</Modulation>
</Oscillator>
</Output>
</AudioContext>
);
reference
⚠️ documentation for components needed here! ⚠️
development
prerequisites
Node.js >= v4 and Yarn must be installed.
installation
- Running
yarn install
in the components's root directory will install everything you need for development.
demo development server
yarn start
will run a development server with the component's demo app at http://localhost:3000 with hot module reloading.
formatting
yarn lint
will run linter on scripts.yarn pretty
will prettify scripts.
running tests
yarn test
will run the tests once.yarn test:coverage
will run the tests and produce a coverage report incoverage/
.yarn test:watch
will run the tests on every change.
building
yarn build
will build the component for publishing to npm and also bundle the demo app.yarn clean
will delete built resources.