I've had a lot of experience with various musical languages (ChucK, Csound, Supercollider, Max/MSP, PD, Faust etc.) I've even designed a few music languages for myself. For what it's worth, I did go to a music school and graduated with a bachelors degree in music, with a strong focus in computer music composition.
In the case of Alda, I'm a little underwhelmed. To be fair, it seems that the author of this software has done a good job meeting his goals. The syntax does look quite intuitive, basing it off of Lilypond syntax was a good choice IMO. I wouldn't call it a programming lanuage, and it can't do everything I want, but it seems to fit certain types of music quite well. Here is my big issue:
>In the near future, Alda’s scope will be expanded to include sounds synthesized from basic waveforms, samples loaded from sound files, and perhaps other forms of synthesis.
I don't want to say Alda sounds "bad", because soundfonts, samples, and basic waveforms have their place for certain styles of music, but it is certainly quite limiting. Considering that there are massive books written about the "perhaps other forms of synthesis", it doesn't seem like sound itself to be too big a focus.
From what I'm reading, Alda is essentially a MIDI file generator. It doesn't actually produce music, rather, it sends MIDI instructions for how to play music somewhere and leaves it up some other program to make the sounds. All of the other music languages I've mentioned can actually make music internally.
Have you ever considered using other music languages with Alda. Overtone is just Supercollider + Clojure, so I'm sure you do something similar. I imagine it would be pretty trivial to get Alda to write a Csound score, since it's basically just a text table. PD has libpd, which I've had limited success with. I might as well mention my project Soundpipe as a possible DSP engine as well: www.github.com/PaulBatchelor/Soundpipe.git
I really appreciate your input, and given your background with audio programming languages, I completely understand how you would be underwhelmed with where Alda is right now.
I do have pipe dreams of making Alda way, way more extensive than it is right now. MIDI ended up being the easiest thing to implement as a sort of proof of concept, but I am completely open to (in fact, am really hoping for) a wide array of music generators at the disposal of Alda's syntax. The next major milestone will be waveform synthesis, probably via a Java library like Minim (my original idea was to control Supercollider via Overtone, via Alda, but it seems there are too many setup issues involved, when compared to a self-contained Java library that I can use from Clojure).
Being able to generate code in other audio programming languages is also a thought I've had -- if not for Alda, then for a spinoff project. The primary thing that inspired me to create Alda was that I love the unbounded potential behind these more robust languages like ChucK and Csound, but the syntax of these languages could be greatly simplified and adapted for use by composers with little-to-no programming experience. I guess my point is that Alda prioritizes aesthetics and simplicity over being a Turing-complete language that lets you do everything you want.
> From what I'm reading, Alda is essentially a MIDI file generator. It doesn't actually produce music, rather, it sends MIDI instructions for how to play music somewhere and leaves it up some other program to make the sounds.
As a fellow musician, I'd much rather some other program be involved in actually making the sounds. My workflow generally involves defining abstract voices (usually some traditional soprano/alto/tenor/baritone plus rhythm/percussion, though I do like to branch out of that sometimes) and reserving actual instrument/voice specifics for once the composition process is done with. I feel like the various other languages out there that "can actually make music internally" are more equivalent to making a physical piano roll than writing a score that any musician or group thereof - regardless of instrumentation - can perform.
This preference probably comes from my background in the drum & bugle corps and brass band worlds, where a brass ensemble will often be tasked with playing some piece originally intended for, say, a choir or chamber ensemble or organ. I've developed an appreciation of the ability to separate composition from instrumentation, and it looks like Alda is well suited to that, at least at first glance.
I've done a lot with Pd and enjoyed the noise-making aspects. I find the composition orientation of Alda appealing, but I would want to be able to pipe in sound from something like a Pd. Any of the above inhabit this middle zone?
I particularly like the idea of visual flow programming for synthesis and markup with control flow for composition.
Alda does MIDI out, so you could probably route Alda to PD (PD is really good at handling MIDI signals).
While not graphical like PD, several musical languages make a distinction between the sound design (signal flow and modules) and events (notes, etc).
Csound is the first to come to mind, with it's MUSIC N orchestra + score paradigm. The orchestra syntax (especially the new changes in csound6) lends itself nicely to expressive sound design. Scores, however, are tedious to write by hand. Most Csounders opt to generate these using another program (which in itself is pretty cool, IMO)
ChucK does a similar thing as well, where you can write the signal chain (oscillator => filter => dac) and then you can control it using ChucK's C-like syntax. If you are interested in algorithmic composition and have a stronger background in programming, this is a pretty fun language to work in. That being said, Csound has a much better collection of sound modules.
Not exactly the answer you were looking for, but I hope you can check them both out, as they offer different approaches to computer music composition.
This was exactly what I was looking for. A survey of the available options.
I looked at supercollider before you answered and found the syntax kind of attractive. Sort of scala-ish, though maybe I am misremembering Scala from that one programming test.
Supercollider is a popular choice! If you're interesting more of a survey, I wrote a blog post a few months ago where I compared music languages by writing the same sound in each one:
In the case of Alda, I'm a little underwhelmed. To be fair, it seems that the author of this software has done a good job meeting his goals. The syntax does look quite intuitive, basing it off of Lilypond syntax was a good choice IMO. I wouldn't call it a programming lanuage, and it can't do everything I want, but it seems to fit certain types of music quite well. Here is my big issue:
>In the near future, Alda’s scope will be expanded to include sounds synthesized from basic waveforms, samples loaded from sound files, and perhaps other forms of synthesis.
I don't want to say Alda sounds "bad", because soundfonts, samples, and basic waveforms have their place for certain styles of music, but it is certainly quite limiting. Considering that there are massive books written about the "perhaps other forms of synthesis", it doesn't seem like sound itself to be too big a focus.
From what I'm reading, Alda is essentially a MIDI file generator. It doesn't actually produce music, rather, it sends MIDI instructions for how to play music somewhere and leaves it up some other program to make the sounds. All of the other music languages I've mentioned can actually make music internally.
Have you ever considered using other music languages with Alda. Overtone is just Supercollider + Clojure, so I'm sure you do something similar. I imagine it would be pretty trivial to get Alda to write a Csound score, since it's basically just a text table. PD has libpd, which I've had limited success with. I might as well mention my project Soundpipe as a possible DSP engine as well: www.github.com/PaulBatchelor/Soundpipe.git