October 6, 2022

Robotic Notes

All technology News

How music production inspires me as a JavaScript developer | by Eric Burel | Mar, 2022

4 min read

Eric Burel

During the day, I am a full-stack engineer. My goal in life is to make Next.js developers more productive and I maintain a JS framework named Vulcan.

But at night, I turn into a crazy amateur electronic music producer. Here are 3 music-related things that inspires me when coding Vulcan.

Not my studio. I am actually a total beginner. I am the proud owner of an used Akai MPD218 though. Image: Pexels.

The OP-1 is an iconic portable synthesizer from the Swedish company Teenage Engineering. It’s an unending source of inspiration, and not just to musicians.

Source: Teenage Engineering official store https://teenage.engineering/store/op-1/

First, the turnkey experience. Being portable, the OP-1 embeds everything you need to produce a complete song.

Vulcan Next is a full-stack JavaScript framework. It provides everything you need to make an application: UI, backend, database, and development tooling.

Then, the product design. The OP-1 is packed with so much value, with an user experience so good that it’s becoming a collection item. It’s the kind of object you remember not just as a thing but as an era.

Remember when OP-1 was all the rage, such a fun time!

I want this to become:

Remember when Vulcan was all the rage, such a fun time!

I already see a lot of people talking about Ruby on Rails this way, or about Meteor. I don’t want a framework to just do things, I want them to be one of the reason I like my job. Even when they fade out of trend, the memories and the learnings are kept.

The OP-1 certainly has a learning curve, and so does Vulcan, but it’s worth it. Main difference though: Vulcan is free 🙂

AudioKit is an open source ecosystem of libraries for developing audio apps. This means synthesizers, effects, drum machines and so on.

Like Vulcan, it’s MIT licensed: you can do whatever you want with the code, including commercial applications. As long as you don’t blame the developers if your app sets the stage on fire;)

AudioKit developers are also maintaining AudioKit Pro, a company that builds stuff based on the AudioKit framework. The apps are inexpensive, of great quality, and fun to use.

Thanks to this approach, the financial stability of the project is guaranteed, and I love this virtuous circle.

AudioKit limited edition apps

At Vulcan, we do not yet have a company backing the framework. I am not sure AudioKit business model would apply as-is to web development. However, a few SaaS apps are built on top of Vulcan:

I fund myself as a maintainer indirectly via my consulting activities around Next.js, namely building Aplines Aptimize.

It’s been enough to keep Vulcan running for a few years now.

The DAW, or Digital Audio Workstation, is the place where you produce your music. DAWs rely a lot on plugins to either add music instruments, effects or new features.

Ableton Live will let you load all kind of plugins: sounds, drum kits, effects… https://www.ableton.com/fr/trial/

The installation process is incredible: you copy a file to a folder and you are done. Yes, no install process, no command to run, no build tool to setup. Yes, any VST should work with all major DAWs. Plugins can include an user interface, and all the back-end logic to produce sounds.

The Kinetic Toys virtual instrument has animated toys that you can control using your MIDI keyboard. The VST system is so modular that developers actually have the time to code things just for fun!

Kinetic Toys user interface, from https://www.native-instruments.com/en/products/komplete/cinematic/kinetic-toys/. Yes, the robot and the dancer do move around as you play music. Beautiful.

Even if Vulcan Next is now built on top of Next.js (who could have guessed?), It used to be built with Meteor.

One key feature of Meteor is its package system. Instead of being focused on technical aspects like most NPM libraries, Meteor packages provide actual product features. That’s because they embed server and client code in the same package.

Sadly, Meteor suffered from a few scalability and technical issues. I still regret this turnkey approach a lot.

I’ve started NPM the right way to achieve the same goal with raw NPM packages. We also have a pending Vulcan Package Format RFC.

It’d be awesome if developers could load features in their apps as you load VST into a music production software.

Arunoda, a former Meteor contributor and Vercel employee, recently shared his experience in the video game industry and how it could inspire web development. I find the music industry equally inspiring.

I have an explanation for the differences between what we observe in the music and video game industries and the current state of web development. It’s very simple.

JavaScript technologies are not mature yet, from a purely technical standpoint.

MeteorJS brought a feature-oriented vision in an ecosystem that was not ready for it. It lost popularity despite having brilliant features that are still difficult to match with modern JavaScript frameworks.

Next.js is so popular because it focuses on getting the foundations right: build system, caching, loading images, accessibility testing … Yet it provides almost no business-related features like payments or even authentication.

Vulcan sits in between and strives to bring the best of both worlds to you. And that should be music to your ears!

If you are interested in learning electronic music production and you love sarcasm, you cannot leave this article without checking out You Suck at Producing.

Source link