Csound
csound.com
csound.com
If you are interested in music programming languages, have a look on the languages that Bela platform supports: Pure Data, SuperCollider, Csound, Faust,
and of course, Glicol (https://glicol.org) that I am developing :)
While it's mostly written in Csound, he "cheated" with the guitar track, which was a recorded sample brought into Csound.
It's a functional language with a nice way of generating diagrams of DSP algorithms, but its big killer feature for me is its language bindings, which include C, C++, Cmajor, Codebox, CSharp, DLang, Java, JAX, Julia, JSFX, "old" C++, Rust, VHDL, and WebAssembly (wast/wasm) out of the box.
Csound: A sound and music computing system - https://news.ycombinator.com/item?id=22787566 - April 2020 (90 comments)
CSound for Android - https://news.ycombinator.com/item?id=10794944 - Dec 2015 (12 comments)
Kind of related: https://paulbatchelor.github.io/proj/sporth
> Chorth enables Sporth to be run inside of ChucK as a Chugin.
Sporth is a stack-based language I wrote a few years ago. Stack-based languages are a great way to build up sound structures. I highly recommend trying it.
Chorth may need some fixes before it can run again. I haven't looked at it in a while, but I had a lot of fun using when I was in SLOrk.
It's unusual because it uses only SQL.
https://news.ycombinator.com/item?id=22789920
https://news.ycombinator.com/item?id=22788893
The fact that it is effectively a modular, dataflow system is what intrigues me most about it.
https://earslap.com/article/recreating-the-thx-deep-note.htm...
To my knowledge, the fidelity of the sounds you can get with Csound far exceed Supercollider. Also, Supercollider has a very restrictive license, preventing its use in basically anything besides small side and school projects, whereas Csound has a very permissive license. I have been doing a fair amount of research along these lines, and although Csound is definitely interesting in the sense of its syntax, it is, as far as I can tell, the most powerful programmatic sound system.
Csound has introduced more real-time features, and you no longer have to rely on a score to make sound. For example: https://www.youtube.com/watch?v=eacyGKRBpwA
What? SuperCollider is GPL, so it's 100% Free Software.
> preventing its use in basically anything besides small side and school projects
Typically, people use it to create music, so the restrictions of the GPL are no concern.
> What? SuperCollider is GPL.
Exactly. That is a restrictive license, and no one is going to use it (it being Supercollider) in anything resembling a commercial product. A lot of these programmatic audio systems make their way into things like installations and video games. Supercollider can't be used in commercial instances except when you're just releasing music.
GPL software is used commercially. Have you heard of Linux?
However, it is relevant because, as I said, a nice benefit of these sound engines is that they can be embedded in other languages and applications. Thus, when choosing such a sound engine, the licensing is an input to the decision, and other systems, such as Pure Data and Csound, have more permissive licenses. For example, the absolutely excellent iVCS3 app on iOS is built on Csound: https://apps.apple.com/us/app/ivcs3/id665703927.
> preventing its use in basically anything besides small side and school project
That is what I (and others) took issue with. SuperCollider is used by professional artists (including myself). Just because you cannot use it in a proprietary app does not mean it is only for hobbyists!
It's great people are using Supercollider in other ways to make money! But it's obvious that the license doesn't extend to music recordings and performance.
All that being said, do you have any links or descriptions on how you use Supercollider (or any other system)? I'm curious to hear about anything you're able to share.
Thanks for clarifying! That was really a misunderstanding then.
> All that being said, do you have any links or descriptions on how you use Supercollider (or any other system)?
Sure! I'm currently AFK, but I'll try to post some links in the evening.
However, most people use SuperCollider as a tool to create music; in this case the GPL does not apply.
> and no one is going to use it (it being Supercollider) in anything resembling a commercial product.
This is patently false.
> […] and no one is going to use it […] in anything resembling a commercial product.
Ignoring the fact that this is demonstrably false, why would it be a problem if it was actually true?
There is nothing to stop a commercial interest writing their own, or licensing something from elsewhere. Depending on the contribution structure for this project (caveat: I've not looked into this at all) it may even be possible to license this project for non-GPL-compliant use. Or, you know, release the resulting project under the GPL.
The GPL is less restrictive than most commercial licensing, so judging it as restrictive because it can be difficult to justify in some (many?) commercial contexts is somewhat hypercritical IMO. Commercial licences can be just as "viral" and depending on the owner inadvertent infection (by using some code without properly verifying is origin & license first) can be more fatal to a project.
You refrained from answering the question: if it was true, why would it matter?
Supplementary questions: If I release some software covered by, for instance, AGPLv3, why would it be a problem for me that commercial projects wouldn't use it? Why would it necessarily be a problem for my code's users?
Please just read my other comments and quit arguing about licensing to me. I am much more interested in just hearing about the features and applications of Csound and others.
Csound and Pure Data are more attractive, to me but likely others, because I can freely bundle them and apply them as I please without tiptoeing around a license, not to mention they have their own pros as far as sound generation goes. Supercollider was presented as an alternative to Csound, but I simply pointed out that if you care about embedding the system into something else, Csound is more friendly to that, as is Pure Data.
If you don't want to discuss something, may refrain from bringing it up?
If it isn't a relevant point when discussion these specific products then your mentioning of it in criticism of one of them seems [short pause to think of a more generous word than the first one that sprang to mind…] odd.
Reasonable syntax, naming, errors, etc. Csound feels like programming assembler. Yeah, you can macro and it's powerful, but... it was far from fun for me.
They're certainly both very cool, as well as their other brethren like Pure Data, Max, Audiomulch, Faust, ChucK, etc.
Most VSTs are written in C++ rather than pure C to be compatible with VST wrappers, and also because a bit of class management simplifies some parts of the coding.
There's no particular advantage to using pure C.
The basics - oscillators, filters, envelopes, and such - are all solved problems, although you'll need to get up to speed on basic DSP concepts like aliasing, IIR vs FIR filter designs, and such.
More sophisticated filter types use numerical approximation to solve the filter equations. That gets a little more complicated.
And of course you can look at the source code of Csound and Supercollider.
> The basics - oscillators, filters, envelopes, and such - are all solved problems,
When you say this, are there any good reference materials (i.e., books or papers) of the algorithms?
I kind-of abandoned the project before I could figure out what went wrong when rewriting it to keep track of the phase. I understand what needs to be done, I just have a stupid bug somewhere down there and it kinda demotivated me.
I don't like C++ (and have mixed feelings about Rust) because of how large and complex the entire language is. If you'd like a stopgap where you can still enjoy the functional style, and don't mind compromising on raw performance, Python is great. The operator syntax is also quite close to C, and you do get bindings to GStreamer in case you decide to take your audio project in new directions.
Syntax-wise, Csound very closely resembles the MUSIC-N language used by early computer musicians in the 60s. "Trapped in Convert" by Richard Boulanger was written in Csound in 1979, and to this day is able to run on the latest version of Csound.
Both Csound and SC are both very capable DSP engines, with a good core set of DSP algorithms. You can get a "good" sound out of both if you know what you are doing.
I find people who are more CS-inclined tend to prefer SuperCollider over Csound because it's actually a programming language you can be expressive in. While there have been significant syntax improvements in Csound 6, I'd still call Csound a "text-based synthesizer" rather than a "programming language".
That being said, I also think Csound lends itself to those who have more of a formal background in music. Making an instrument in an Orchestra is just like making a synthesizer patch, and creating events in a Csound score is just like composing notes for an instrument to play.
FWIW, I've never managed to get SuperCollider to stick for me. The orchestra/score paradigm of Csound just seems to fit better with how I think about music. It's also easier to offline render WAV files in Csound, which was quite helpful for me.
You don't gain almost anything with these languages in their current forms because they end up not being much different than modular patch cord synthesis with a less intuitive interface.
The amount and variety of interesting sounds I have heard from Reaktor is several orders of magnitude beyond csound to a degree it isn't even comparable.
I might even rate these early versions of AudioLM as already more interesting than csound.
The whole idea of music programming languages is a dead end IMO.