mdlr v0.0.3
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 mdlror via yarn:
yarn add mdlrusage
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 installin the components's root directory will install everything you need for development.
demo development server
yarn startwill run a development server with the component's demo app at http://localhost:3000 with hot module reloading.
formatting
yarn lintwill run linter on scripts.yarn prettywill prettify scripts.
running tests
yarn testwill run the tests once.yarn test:coveragewill run the tests and produce a coverage report incoverage/.yarn test:watchwill run the tests on every change.
building
yarn buildwill build the component for publishing to npm and also bundle the demo app.yarn cleanwill delete built resources.