Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I love these text-based languages for music composition. Its something that is approaching a gap in music composition in real-life vs via computer. In real-life you can tell your bandmates to "just play a I V IV in C" and they get it. But we are still not quite at a place where we can tell a computer that exact phrase and get something useful. I love how close these text-based languages are getting though!

I've actually made my own musical language too - called miti [1], which is just one of many others including textbeat [2], foxdot [3], sonic-pi [4], chuck [5], and melrose [6]. Each has their own goals and capabilities.

- [1] https://github.com/schollz/miti

- [2] https://github.com/flipcoder/textbeat

- [3] https://foxdot.org/

- [4] https://sonic-pi.net/

- [5] https://chuck.cs.princeton.edu/

- [6] https://github.com/emicklei/melrose



No list of text-based music systems is complete without the granddaddy of them all: [LilyPond](http://lilypond.org/)

Alda seems greatly inspired by the syntax of LilyPond, and in fact, I actually think the musical rendering is done via LilyPond. I'm surprised the docs don't seem to mention this heritage at all.


I would argue that the granddaddy of them all is the PLAY statement in BASIC:

https://hwiegman.home.xs4all.nl/gw-man/PLAY.html


I had a lot of fun with this on my Commodore. The version of BASIC on the C=128 was surprisingly versatile. I was just a kid in elementary school, but messing with ENVELOPE and PLAY taught me the basics of attack/decay/sustain/release and other synth concepts. Very cool stuff to discover in the giant manual that came with the thing!


Indeed. And if you use Lilypond, check out Frescobaldi -- it makes typesetting and editing scores much easier, via things like syntax-staff co-highlighting.

https://www.frescobaldi.org/


I dunno... what about csound?

https://csound.com/


Which itself is a child of an even grander daddy: https://en.wikipedia.org/wiki/MUSIC-N

You can hear some recordings presumably made with these programs on this release: https://www.discogs.com/Various-Music-From-Mathematics/relea...

Some of it is gimmicky, some still kinda rocks.


Thanks for the tip. I hadn't realized that csound came from a longer lineage of work.


I struggle to get LilyPond running on MacOS - is it easier on Linux? It would be great for us but my mates all use Windows or MacOS, so we resort to graphical notation programs, where version control and portability is hard


It's extremely easy to get it running on Linux. Many distributions have a lilypond package, which just works out of the box.

The problem I've always had with the language is that it's quite arcane and if you want to do anything weird (like, a tie to nowhere) you're either at the mercy of somebody else having solved the problem first, or failing that, a huge learning curve. It's a lot like latex in that way. That said, if you just need to do simple stuff, the language almost magically gets out of your way.


Have you checked out the unofficial Homebrew tap `nwhetsell/lilypond` [1]?

It has a `lilypond` formula that has worked fine for me. Beware though that it installs some kind of TeX repository sized 7 GB.

[1]: https://github.com/nwhetsell/homebrew-lilypond


I've never noticed any difficulty getting LilyPond running on MacOS or Linux? I use it regularly on MacOS, and keep it installed on Linux for special occasions.


How did you install it on MacOS?


Oh. I'm still using MacOS 10.14, so there's an official up-to-date version to download from the Lilypond site, and I think I'm using a two year old version of that. (I am very slow to update the OS on my main work machine, usually just ride out the major version it came with until I update to a new machine; and since I was working on a book in Lilypond, I wasn't in a hurry to update it, either.)

Sorry I can't be of more help immediately!


My current favorite is OpusModus https://www.opusmodus.com. It is a commercial app, which will dissapoint some, but is worth the price to me for the level of quality and capabilities. As an added bonus, it is written in Lisp, can be extended using Lisp and uses a S-expression DSL for composition. The development environment has a REPL and a variety of interfaces for composing and exploring music.


> My current favorite is OpusModus https://www.opusmodus.com. It is a commercial app, which will dissapoint some, but is worth the price to me for the level of quality and capabilities.

Personally I love seeing this kind of niche (I assume?) commercial software. It's great that people can make a living working on this kind of thing.


I hope they are managing to make a living. I have created music software over the decades, going from making a good living during the shrinkwrap software era, to not being able to support full-time development of a mobile music app. I am impressed that Finale, Sibelius and Dorico can find enough market share to fund development and be competitive.


For a musical Lisp, personally I prefer extempore: https://github.com/digego/extempore


Extempore is impressive for sure. They wrote a custom scheme interpreter and a REPL for VSCode. More info here: https://extemporelang.github.io/docs/overview/quickstart/


Hate to sound like a broken record here, but can opus modus handle its own sound synthesis or is it purely compositional?

Not that theres anything wrong with that, but if $400 is the price for ending my suffering, I'll pay out in a heartbeat ;)


I focus on the compositional aspects of the program, but I do like to be able to audition what I am making! I can use software and hardware synthesizers to do this, but it sounds like you want something with more fundamental building blocks. OpusModus is able to integrate with Common Lisp Music (CLM) https://ccrma.stanford.edu/software/snd/snd/clm.html. Info on integration with OpusModus here: https://opusmodus.com/forums/tutorials/clm-examples/clm-inst... CLM will give you osciallators, generators, filters and more. I am not a CLM expert, but it seems to address some of what you are looking for.


Yeh that seems to be what I'm looking for, will look into this more, cheers!


Fantastic work on miti! Looks like it could be a game changer for modular systems especially, but in general just having a single "brain" control all your synths in a way thats as readable as this would be great.

Out of interest, are you aware of any language, framework or environment that includes sound synthesis as well, essentially making it an all-in-one?

I do wonder if I'm asking too much, since Supercollider already exists but I'm not much a fan of using it because of how verbose it is and I'm a little bit upset it uses its own language (so I couldn't import more generic modules), but its worth asking anyway. My current plan is to use a non-livecoding module for an existing language, since the ability to change on the fly isn't important to me


Thanks!

I think SuperCollider is the best out there. It's syntax is weird yeah but you can use OSC to talk to anything else (this could easily be added to miti as well). Really I don't think a really good all-in-one exists there are lots of things that do all, but none do all as well as something that just does one thing.


Oh sorry, I didn't mean all-in-one as in it can do everything, just that it can handle synthesis and composition. I guess "batteries included" might be a better term, what I really meant was something that needs no external sources for either sound or sequencing, you can make a track from start to end without needing to use something else.

Of course, supercollider does indeed fit this role, but as I've said I do have problems with it. Currently I'm looking at using a generic language, with some synthesis and composition modules. Suprisingly, game frameworks (e.g. Love2D) are looking promising for this, so that could be good, if a little bit overkill.


> "just play a I V IV in C" and they get it. But we are still not quite at a place where we can tell a computer that exact phrase and get something useful.

We are at this place since at least 3 decades ago. How come you never heard about Band in a box? [0]

> I love how close these text-based languages are getting though!

Comparing to what BIAB can do now after 3 decades of development all these text-based languages are sooooo amateurish and ridiculous. They are not even reinventing the wheel. I'd say they're reinventing the circle.

- [0] https://en.wikipedia.org/wiki/Band-in-a-Box


In real-life you can tell your bandmates to "just play a I V IV in C" and they get it. But we are still not quite at a place where we can tell a computer that exact phrase and get something useful....

You can definitely do this exact thing in Band in a Box, simple as typing in the chord progression as a lead sheet.


What do you think of hookpad? It's something along those lines, too, right? Even though it's not text based, but it's easy to get a chord progression playing, which I really like.



what about trackers?


Trackers are a very different beast, however for my sake I've found them a good intermediary whilst your looking for the live coding language that suits you.

I use Renoise (not free, but very cheap imo and very powerful), and have a sample pack called AWKW (I think, its something like that) which is just a load of single cycle waveforms, and I use that to build rudimentary subtractive synths.


I think you must mean AKWF, Adventure Kid Wave Forms:

https://www.adventurekid.se/akrt/waveforms/adventure-kid-wav...

4000+ single-cycle wave files of all sorts of sounds from various synths and instruments and such. Lots of great noises in there!


Bingo, that's it

I've been thinking about going even simpler, and just building all my synths out of Sine, Triangle, Square and Sawtooth, but for now AKWF is working a treat


What are you asking? They're a different beast.


Thanks for linking to textbeat! :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: