Hacker News new | ask | show | jobs
by dredozubov 1091 days ago
I’m a guitar player, and I use tablature notation editors such as Guitar Pro a lot. However, it gets complicated fast when I write polyrhythmic/polymetric drum parts, because shifts tend to go over the bar lines and it’s hard to make sense it’s correct visually (may be even harder if you listen to it). The other property of such parts is: it tends to unfold from simple ideas such as “I want to create a drum part that will have a 3 against 4 feel with a kick drum against a snare drum”. The other way to think about it is that it has a simple blueprint, but it’s tricky and error-prone to express in Western musical notation. This is why Polyrhythmix exists. I wanted to have a simple tool to workshop/brainstorm rhythmic ideas and evaluate them by having a MIDI playback. I’m into modern Progressive Rock/Metal music, Fusion, so it all applies very well. I have an impression it may be useful for Indian Carnatic music as well, but I would like to get some insightful confirmation on that.
3 comments

Very excited to see this. It's very much a tool I would use, excited to give it a spin after work tonight. I also look forward to reading the code.

Other cool music tools I've seen implemented in rust:

* glicol - https://glicol.org/

* tune - https://github.com/Woyten/tune

A while back I wanted to make some tools to aid in composition and was using rust. Very partially baked, but a fun pet project to learn the language with. Generates just intonation pitch lattices based on my research of Ben Johnston's compositional approach. https://github.com/jcpst/johnston

Thanks for commenting and reaching out, would love to know what you think of poly. I was learning Rust along the way, so there is definitely room for improvement. From the memory allocation perspective at least, I didn't paid it much mind as the practical applications are not that memory intensive.

No clue what intonation pitch lattices are, but now I'm interested to learn!

I was having fun writing one liners with poly, leaving my file explorer open and dragging the output file straight into a Ableton channel with a drum rack set up.

I also tried making a web UI with it via Yew. I got it all compiling and running in the browser, but the crate is all about that CLI. I would have to write a lot of the code that’s in the CLI file to call the create_smf function.

It might be worth considering designing the library’s API to be a bit friendlier to an end user. I think there’s cool stuff that could be done with it. Or at least that’s something I want to do :D

Do you mind shooting me an email or opening an issue on github? I was thinking about doing the UI myself, but I wasn’t sure how to do make it nice for the end user. It’s certainly a good idea to rework the API to be UI-friendly.
I have only familiarity with western musical notation, and it too me a while to get there. Tablature and track notation (digital audio workstation) both were completely intuitive to me. Is there anything that argues for learning Western musical notation- IE, does it help express some things eloquently/efficiently/naturally? Every time I ask classically trained musicians (who started with a piano and a music book) they look at me like I'm crazy and dumb.
I like to think of western music notation as not the most intuitive choice for a lot of popular styles of music. But it's kind of like when people talk about X programming language "making hard things possible".

It's like math notation. There is a canon of work over a very long period of time that can be used as a foundation for expressing many different intricate ideas in a compact way. And in the 20th century tons of non-traditional notation styles have been thrown into the western mix.

DAWs and tablature editors mimic musical notation anyway. I suppose replication over the bars lines can be done more easily in DAWs that in tablature editors, but I still wanted a tool to generate the part from the "blueprint" rather than copy-pasting and double-checking all over the place.

What I want to do is to learn a bit more about Konnakol, which is the Indian musical art expressed in percussive syllables. I have an impression that building a bridge between Konnakol and western notation can really get the creative juices flowing.

yeah, I have a zakir hussein track where he does konnakol and it's quite impressive.
Music notation is like any natural language -- i.e. super fucking dumb dumb dumb, and yet, uniquely, it lets you communicate precisely with other musicians, which is awesome.
This looks super cool. I'm also a guitarist that, uh, isn't a very good drummer, heh. Will kick the tires, thanks for sharing!