One of the main reasons I got into software & web development is my obsession with music technology. There are SO many amazing music programs out there, from the many music streaming / listening apps, to a nearly uncountable amount of music production softwares, to an expansive library of music theory helpers, and an ever-growing number of instrumentation practice tools.. and beyond.
Obviously there’s a TON of creativity, inspiration, knowledge, and talent behind all of these examples, which reach deeply into and pull fruitfully out of some wildly different creative rabbit-holes.
Here’s a quick look at just a few of the awesome musical Node packages out there:
Music Theory & Production
(These top 2 are my favorite couple finds so far — very diverse in their capabilities, and VERY fun to explore! Check out my project “Mode-ify” that utilizes both of these HEAVILY below).
- Tonal — A music theory library that contains functions to manipulate tonal elements of music (note, intervals, chords, scales, modes, keys). It deals with abstractions (not actual music or sound).
2. Sharp11 — Built to optimize performing music theory operations, ranging from simple things like transposing a note to complicated things like generating an ordered list of scales that can be played over a given chord. Also capable of things like chord recognition, as seen in my Mode-ify video above.
Music theory multitool with a jazz focus Sharp11 is an npm module for performing music theory operations, ranging from…
3. Pitchy — Simple pitch detection library.
- React-h5-audio-player — a customizable audio player with audio controls.
Audio player component that provides consistent UI/UX on different browsers. Super customizable layout Flexbox css with…
2. React-media-control — media controller using Material UI components.
Media controller built using React and Material-UI libraries. React-media-control is available as an npm package. You…
3. Howler — an audio library built for web.
4. React-Player — a react component for playing a variety of urls including youtube, twitch, soundcloud, and more.
A React component for playing a variety of URLs, including file paths, YouTube, Facebook, Twitch, SoundCloud…
5. Speaker — Output PCM Audio data to the speakers.
A Writable stream instance that accepts PCM audio data and outputs it to the speakers. The output is backed by mpg123's…
- Midi-writer-js — generate expressive multi-track midi files.
2. ScribbleTune — generate midi rhythms and patterns — also available in Max for Live for use in Ableton Live.
3. Midi-player-js- reads midi files and emits JSON events in real time that can be used to trigger audio, visual, or anything else you code with it.
- Spotify-web-api-node — universal wrapper/client for the Spotify API. Simplifies and cleans up requests from Spotify’s web API, includes Auth options, as well as all functionality available directly through Spotify.
2. Bandcamp Scraper — pull info from Bandcamp, because they shut down their public API and don’t plan to reopen it.
A scraper for https://bandcamp.com The scraper allows you to: get album urls from an artist url get album info from an…
Waveforms / Visualizers
- Wavesurfer — Interactive navigable audio visualization using Web Audio and Canvas.
Interactive navigable audio visualization using Web Audio and Canvas. See a tutorial and examples on wavesurfer-js.org…
2. Nodejs-audio-visualizer — Audio visualizer generator for Node.js with simple configuration.
Audio visualizer generator for Node.js with simple configuration. Supports PNG, JPG for images and MP3, WAV for audio.
The world is yours!
Again — this is just a small sample of the many available libraries. I’ve had a TON of fun exploring and utilizing these, and highly encourage any music makers or listeners to dive in and build something fun using the many available options.