Hey Makers! 👋
Welcome to Digest 005 of the newsletter. Our featured maker, Dave, is the author of a text-based programming language for music composition. 🏆
As a programmer and as a composer, Dave felt that there are a couple of fundamental problems with GUI music notation software: it’s distracting and it’s limiting.
While some people may be put off by a wall of textual code, text-based languages are both very compact and open. To help beginners overcome this, Dave has put a lot of thought into making the syntax as intuitive and beginner-friendly as possible.
Dave is envisioning a world where both programmers and non-programmers alike can create all sorts of music, from classical to chiptune to experimental soundscapes, using only a text editor and the Alda executable. ⭐️
What I’ve Been Reading 📖
-
⭐️ GUIs are useful if you’re an amateur composer, but sometimes to achieve greatness you need to go back to basics and start with a blank canvas. Now you can even have a version history using music as code.
-
Stories of people losing their Google accounts for practically no reason scare me. Maybe it’s time to de-Google my mission critical and sensitive stuff.
-
Unfinished side projects are the bane of a hacker’s life. Learn how this solo developer turned an idea to MVP in 44 hours.
-
Doing a project is hard - finishing a project is even harder. Here are some practical tips on how to stop quitting and start finishing your side projects.
Maker Focus 🏆
Featuring one or more makers per digest. Want to be featured as a maker? Fill in this form. ✍️
Dave Yarwood
GitHub | Keybase | Blog |
---|
Dave is a self-taught programmer and he is skilled in music composition, software development, and making cocktails. 🍸
He is currently learning how to better manage his time with limited hours during the pandemic, and how to be an effective tech lead on his team at work. 📚
Product Focus 📦
Alda ⭐️
A music programming language for musicians.
Language | Stars | Forks | Issues |
---|---|---|---|
Clojure, Shell | 3.7k | 216 | 32 |
Last commit | First commit |
---|---|
Feb 18, 2021 | Aug 26, 2014 |
Alda is a text-based programming language for music composition. It allows you to write and play back music using only a text editor and the command line.
Bloom
The simplest way to de-Google your life and business.
Language | Stars | Forks | Issues |
---|---|---|---|
Rust, Vue, Typescript | 785 | 16 | 14 |
Last commit | First commit |
---|---|
Feb 19, 2021 | Dec 31, 2020 |
Bloom is an open source and privacy-focused productivity suite: Inbox, Calendar, Files, Contacts & much more. It’s literally the easiest way to de-Google your life and business.
Kimai
A web-based multiuser time-tracking application.
Language | Stars | Forks | Issues |
---|---|---|---|
Php, Twig | 1.2k | 282 | 232 |
Last commit | First commit |
---|---|
Feb 18, 2021 | Oct 20, 2016 |
Kimai v2 is a web-based multiuser time-tracking application. Free for everyone: freelancers, agencies, companies, organizations - all can track their times, generate invoices and more.
Tweet Focus 🐤
Education 📚 & Resources 🧩
- Building in Public Definite Guide: You’re now reading the Building in Public eBook and guide that comes from months of studying, understanding, and implementing how Building in Public works for founders and creators.
- Litic: Analyze your website and get insights about SEO, accessibility, security, and best practices in less than a minute.
An Interview with Dave of Alda
Hey Dave! Let’s start out with your background. 📝
I’m a software engineer at Kevel, and a life-long musician, composer and self-taught programmer.
After studying Music Composition in college and beginning to get more into software development, I started to become really interested in the idea of composing music the same way that software developers create software. This is what led me to develop Alda, a music composition programming language.
What is the purpose of your blog, and what resources do you use to get your ideas, if any? 🧩
I write about all kinds of things in my blog. I’ve probably written the most about Alda, but I’ve also written about my various music projects, productivity tools, the Clojure programming language, and a bunch of other random stuff.
I keep a file where I jot down quick ideas for blog posts whenever they occur to me. I try to keep my blog post ideas small, although I often end up having a lot more to say than I anticipated!
Every couple weeks or so I try to start working on a new blog post, and I refer to my list of blog post ideas for inspiration.
What is an opinion you have that most people don’t agree with? ✒️
I strongly prefer lines of code to be shorter than 80 characters. I feel like if you get much longer than that, the code ends up being difficult to navigate on smaller screens, harder to read, and poorly written.
Granted, it isn’t always technically possible to get below 80 characters (for example, there could be a really long URL that you can’t chop up), and it doesn’t bother me when teammates or contributors go over 80 characters for whatever reason. But in the code that I write, you’ll typically see a lot of short lines instead of a few long ones.
Why was Alda started and is there a roadmap? 🎯
When I studied music composition, I used graphical score editing programs extensively, and I learned that if you use those types of GUI applications to assist you with composition, it becomes severely artistically limiting, because you end up composing music that is easier to notate in the GUI, but much less interesting and imaginative than it could be.
As I got more into software development, I grew to love the autonomy and creative freedom that came from working with a simple text editor and the command line. Because this type of environment doesn’t guide you in any particular direction, you are free from influence and you can create whatever comes to mind.
At one point, I started to wonder what it would be like to apply this sort of philosophy to music composition. In 2012, I started to experiment with creating a text-based language for music composition, and that experiment became Alda.
In the years since then, I have been focused on implementing the basic features of the language, making the compiler performant, and providing a quality CLI experience. That work is still ongoing, but I do have some exciting ideas for the future of Alda, including collaborative live-coding features, waveform synthesis, and flexible import/export with a variety of formats including MIDI and MusicXML.
What is the most challenging problem that’s been solved in Alda so far? 🚧
MIDI export was tricky to implement. Alda’s model of time differs significantly from the typical one that you see in MIDI files.
They are compatible, but I had to implement some complex logic in order to get to the point where you can export an Alda score to a MIDI file that’s usable in other programs.
What is one feature, which you’re most proud of, that differentiates Alda from other products? 🦄
I think Alda’s killer feature is that it treads the line between an easy-to-use, beginner-friendly music programming language and a flexible, all-powerful environment for Turing-complete music programming.
Whether you’re a musician looking to get more into programming, or a programmer looking to learn how to write music, I think you’ll enjoy what Alda has to offer.
What is one product that you can’t live without that you think others should know about? 💡
I use tmux extensively to organize and persist all of my terminal sessions. It’s really nice to be able to start something in one shell and then close the terminal and pick it right back up later, without having to remember the last command I run and the output.
If I gave you $1 million to invest in one thing right now, where would you put it? 🚀
I would invest in research and development into affordable, sustainable transportation that won’t contribute to climate change.
Thank you Dave.
Like what you saw here? Why not share it?