I like the idea overall. Looks like something that would be fun to combine with music programming languages (SuperCollider/Of etc). Not so sure how human-friendly the fractional beats are? Is that something that people more into music than I am are comfortable with? I would have expected something like MIDIs "24 ticks per quarter note" instead. And a format like bar.beat.tick. Maybe just because that is what I am use…
Show HN: MTXT – Music Text Format
11–20 of 41 posts
Re: Show HN: MTXT – Music Text Format
#12Cool. My one concern with this is that it has no horizontally scannable note/chord mode. It’s super common for humans to read a sequence of notes left to right, or write it that way, but it’s also just more efficient in terms of scanning / reading. Can I suggest a guarded mode that specifies how far apart each given note/chord is by the count, e.g. #1.0:verse1 Am - C - G - E - F F F F # You could then repeat this or…
Re: Show HN: MTXT – Music Text Format
#13Hey, the idea is nice, It would be great to know what pushed you to start this format. Also, any apps that uses it would benefit from being add to the repo assuring usability in addition to readibility.
Now I'm working on a synth that uses MTXT as its first-class recording format, and it's also pushing me to fine-tune a language model on it.
Re: Show HN: MTXT – Music Text Format
#14I like the idea overall. Looks like something that would be fun to combine with music programming languages (SuperCollider/Of etc). Not so sure how human-friendly the fractional beats are? Is that something that people more into music than I am are comfortable with? I would have expected something like MIDIs "24 ticks per quarter note" instead. And a format like bar.beat.tick. Maybe just because that is what I am use…
I'm planning to add support for math formulas in beat numbers, something like: "15+/3+/4" = 15.58333
Re: Show HN: MTXT – Music Text Format
#15Looks like MTXT tool here does not quite work for this use case, the result of the roundtrip of a midi I tried has a segment folded over, making two separate segments play at the same time while the total duration got shorter.
https://files.catbox.moe/5q44q0.zip (buggy output starts at 42 seconds)
Re: Show HN: MTXT – Music Text Format
#16This made me remember old set of tools called mtx2midi and midi2mtx, I used them to edit some midi files while making sure I'm not introducing any unwanted changes. While roundtrip output was not binary identical, it still sounded the same. Looks like MTXT tool here does not quite work for this use case, the result of the roundtrip of a midi I tried has a segment folded over, making two separate segments play at the…
I created an issue here: https://github.com/Daninet/mtxt/issues/1
Re: Show HN: MTXT – Music Text Format
#17Similar things: * Perl MIDI::Score -- https://metacpan.org/pod/MIDI::Score * Csound standard numeric scores -- https://csound.com/docs/manual/ScoreTop.html * CsBeats (alternative score language for Csound) -- https://csound.com/docs/manual/CsBeats.html
Lilypond, too. Though it needs a full scheme interpreter to evaluate macros (provided by both the system and the user), it can emit midi files.
https://en.wikipedia.org/wiki/LilyPond#Integration_into_Medi...
https://www.mutopiaproject.org
https://lilypond.org/text-input.html
\relative c' {
\key d
\major
fis4 fis g a
a g fis e
d d e fis
fis4. e8 e2
}
...but why is it so complicated? A novice interpretation of "music" is "a bunch of notes!" ... my amateur interpretation of "music" is "layers of notes".You can either spam 100 notes in a row, or you effectively end up with:
melody = [ a, b, [c+d], e, ... ]
bassline = [ b, _, b, _, ... ]
music = melody + bassline
score = [
"a bunch of helper text",
+ melody,
+ bassline,
+ page_size, etc...
]
...so Lilypond basically made "Tex4Music", and the format serves a few dual purposes:Engraving! Basically "typesetting" the music for human eyeballs (ie: `*.ly` => `*.pdf`).
Rendering! Basically "playing" the music for human ears (ie: `*.ly` => `*.mid`)
Librarification! Basically, if your music format has "variables" and "for-loops", you can end up with an end score that's something like: `song = [ intro + chorus + bridge + chorus + outro ]`, and then not have to chase down and modify all the places you use `chorus` when you modify it. (See this answer for more precision: https://music.stackexchange.com/a/130894 )
...now imagine doing all of the above for multiple instruments and parceling out `guitar.pdf`, `bass.pdf`, `drums.pdf` and `whole-song.pdf`
TL;DR: Music is haaard, and a lot closer to programming than you think!
Re: Show HN: MTXT – Music Text Format
#18Which has a text format, and typesets it for you nicely.
Re: Show HN: MTXT – Music Text Format
#19They have a notation that looks similar (basically a JavaScript port of the Haskell version).
I like this, but I'm curious why I would want to use this over strudel. Strudel blends the language with a js runtime and that's really powerful and fun.
Re: Show HN: MTXT – Music Text Format
#20I like the idea overall. Looks like something that would be fun to combine with music programming languages (SuperCollider/Of etc). Not so sure how human-friendly the fractional beats are? Is that something that people more into music than I am are comfortable with? I would have expected something like MIDIs "24 ticks per quarter note" instead. And a format like bar.beat.tick. Maybe just because that is what I am use…
The library has MIT license, I would be more than happy to see people use it in different synths. I'm planning to add support for math formulas in beat numbers, something like: "15+/3+/4" = 15.58333
Can you explain how to read that? 15 plus divided by 3 plus divided by 4?