Skip to content

evangipson/midio

Repository files navigation

midio is a web-based generative synthesizer "radio" which uses the Web Audio API and TypeScript to create intertwining, evolving musical phrases on the fly.

It utilizes 4 basic oscillator waves (sine, sawtooth, square, and triangle), 3 noise waves (white, pink, and brown), filters (bandpass, lowpass, and highpass), delay, reverb (via convolution), and gain to create all of it's sounds. It features the ability to:

  • Create musical phrases (melodies, chords, and arpeggios) with no user input
  • Remember and play back those musical phrases (to increase the user's tonal familiarity with the song)
  • Give the user an idea of the frequency of any note that is playing by hooking it's frequency to the x axis, then drawing a quick animation
  • Have it's paramaters (oscillator waves, noise waves, LFO, etc.) modified in a control panel by the user
  • "Evolve the song" by adjusting the control panel values regularly within a range of their current value

It can be used in the following ways:

  • Load midio, sit back and listen while midio generates an ever-evolving song without any input
  • Load midio, turn autoplay off, and click the colorful area that takes up most of the screen and experiment with the inputs to have some fun

midio started as a randomly generated sequence of MIDI notes based on a scale, then it was moved forward by my curiosity toward functional programming and the Web Audio API.

midio Readme
Built With
Compiling
Contributing
License

Built With

Compiling

To compile the TypeScript in the project:

  • Run npm install --save-dev typescript
  • When in Visual Studio Code, type control + shift + B to bring up your list of tasks.
  • Start the tsc-watch task.
  • Save any file, and you will now have a src/main.js, which is referenced by the main index.html file.

Contributing

Thank you so much for your interest in contributing to midio! You should read and follow the code of conduct and contribution guidelines.

If you find a bug - then check out any open issues to see if your bug is already reported. If not, create a new issue, please!

License

midio is licensed under AGPL 3.0. If you are interested, take a look at midio's license.