Live data from Hacker News

Show HN: Handel – A procedural programming language for writing songs in browser

handel-pl.github.io

1–10 of 57 posts

Re: Show HN: Handel – A procedural programming language for writing songs in browser

#2
I started building Handel some weeks ago, as a simple way of writing music with code. While the livecoding movement focuses on providing solutions for performing music live with code, and making changes on the fly -- I focused on simple song writing (one reason why I wouldn't consider Handel an esoteric language).

One notable aspect of Handel is the behavior of its procedures, which are called chunks. Each chunk is conceptually a song track and all run chunks (from procedure calls) play at the same time. A run of a chunk can be customized by passing in arguments (ex. chords to use). The bpm, instrument, and loop amount of a run of a chunk can also be optionally set to further customize that run.

Open to questions and feedback!

Re: Show HN: Handel – A procedural programming language for writing songs in browser

#4
post #2

I started building Handel some weeks ago, as a simple way of writing music with code. While the livecoding movement focuses on providing solutions for performing music live with code, and making changes on the fly -- I focused on simple song writing (one reason why I wouldn't consider Handel an esoteric language). One notable aspect of Handel is the behavior of its procedures, which are called chunks. Each chunk is c…

I suggest you add a drop down with some composition examples in the editor so it kind of demos out what it is capable of. The language feels quite natural to transfer an existing score or to compose something out so it could fill out some niche. I'm not a trained musician so take this as an opinion.

Re: Show HN: Handel – A procedural programming language for writing songs in browser

#5
post #4
post #2

I started building Handel some weeks ago, as a simple way of writing music with code. While the livecoding movement focuses on providing solutions for performing music live with code, and making changes on the fly -- I focused on simple song writing (one reason why I wouldn't consider Handel an esoteric language). One notable aspect of Handel is the behavior of its procedures, which are called chunks. Each chunk is c…

I suggest you add a drop down with some composition examples in the editor so it kind of demos out what it is capable of. The language feels quite natural to transfer an existing score or to compose something out so it could fill out some niche. I'm not a trained musician so take this as an opinion.

There's an examples folder here linked to from the documentation but having examples in editor would be intuitive as well. (here's the link to the folder if you were curious: https://github.com/ddj231/Handel/tree/master/Examples)

The editor is pretty barebones at the moment

Re: Show HN: Handel – A procedural programming language for writing songs in browser

#6
post #2

I started building Handel some weeks ago, as a simple way of writing music with code. While the livecoding movement focuses on providing solutions for performing music live with code, and making changes on the fly -- I focused on simple song writing (one reason why I wouldn't consider Handel an esoteric language). One notable aspect of Handel is the behavior of its procedures, which are called chunks. Each chunk is c…

How is this different (or better than) from ABC notation?

Re: Show HN: Handel – A procedural programming language for writing songs in browser

#8
post #2

I started building Handel some weeks ago, as a simple way of writing music with code. While the livecoding movement focuses on providing solutions for performing music live with code, and making changes on the fly -- I focused on simple song writing (one reason why I wouldn't consider Handel an esoteric language). One notable aspect of Handel is the behavior of its procedures, which are called chunks. Each chunk is c…

How is this different (or better than) from ABC notation?

I think in 2 ways:

1. Readability:

Ex.

start

play E3, Ab3 for 1b

rest 5b

play E3, Ab3 for 1b

finish

It is somewhat intuitive to read the above without experience with the language (or with programming in general).

2. Procedures: You can create chunks (procedures), which are reusable. For example you can create a chunk which takes 3 chord playables as parameters and run that chunk with any arguments. And also stack those runs on top of each other (because all run chunks play at the same time).

Post reply on HN