
Ask HN: How do I standardize my music specification so people can use it? - 4nof
I have a music notation I am making called HexNoteG9, where 0-9 are modifiers and a-f are notes, 9 is the note g.<p>This is Twinkle Twinkle Little Star: 
24 | this sets default note to a 2^2 quarter note<p>24 c c g g a a 1g f f e e d d 1c g g f f e e 1d g g f f e e 1d c c g g a a 1g f f e e d d 1c<p>now , just replace all g&#x27;s with 9&#x27;s and you have hex. The 1&#x27;s are 1&#x2F;2^1 = 1&#x2F;2 notes<p>I have an example of minuet played in HexNoteG9 as well as more details on the modifiers, how to do rests, octaves, sharps, flats, dotted half notes, dynamics, looping, and comments:  
https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1atnHKK4mbMjGrJFFhCk76e9YaTAkiv5y&#x2F;view?usp=sharing<p>I want to make a specification that is peer reviewed similar to how the JSON specification looks https:&#x2F;&#x2F;tools.ietf.org&#x2F;html&#x2F;rfc7159<p>My end goal is to standardize a specification so that other people can adopt and use it. It would be nice to build tools off of this with other people.
======
shoo
not directly answering your question -- how does HexNoteG9 compare with
existing alternative music notations?

do any of those alternatives have standards for machine-readable notation?

edit:

one way to get started would be to put together your own first draft of the
specification, with examples, on a place where others can easily read it and
suggest improvements (e.g. it could start off being a file in a git repo
hosted on github.com, say ).

answering my own question:

some random alternatives might include:

MIDI --
[https://www.midi.org/specifications](https://www.midi.org/specifications)

LilyPond --
[https://en.wikipedia.org/wiki/LilyPond#Overview_of_input_syn...](https://en.wikipedia.org/wiki/LilyPond#Overview_of_input_syntax)

GUIDO -- [https://github.com/grame-cncm/guidolib/blob/dev/doc/GUIDO-
Mu...](https://github.com/grame-cncm/guidolib/blob/dev/doc/GUIDO-Music-
Notation-Format.pdf)

MusicXML -- [http://w3c.github.io/musicxml/](http://w3c.github.io/musicxml/)

RTTTL (RingTone Text Transfer Language) --
[http://www.panuworld.net/nuukiaworld/download/nokix/rtttl.ht...](http://www.panuworld.net/nuukiaworld/download/nokix/rtttl.htm)

~~~
4nof
MIDI has short messages that requires a translator for storing information
into the format or an extreme familiarity with the signals and bits. It does
not hold quarter notes/beats but rather ppq or parts per quarter note in
ticks. It is complex. I cannot write MIDI on pen and paper and understand it
later without a very large table of what each byte does. HexNoteG9 requires a
much smaller table, and it is human readable, 9-f being notes.

LilyPond as well as ABC notation cannot be stored in an int array, which makes
moving things back and forth more difficult.

GUIDO looks cool and looks similar to an earlier format I tried using strings
to store data. It looks fully featured, but it is not hex.

MusicXML takes a bunch of time writing tags. If I were to write it out by
hand, it would require more tags and more lines than hex.

RTTTL : I'm not sure how to do dotted quarter notes, tied 8th to a dotted
triplet. It seems similar to a text2Midi solution I created earlier, except my
solution accounts for those edge cases.

I took your suggestion on getting started and put it into a github readme:
[https://github.com/fornof/hexNoteG9/blob/master/README.md](https://github.com/fornof/hexNoteG9/blob/master/README.md)

~~~
detaro
Guess next question is: what's the motivation for it? Where do you see use
cases for it that currently use ad-hoc formats or badly-fitting ones?

~~~
4nof
As a musician and a programmer, I'm looking for ways to produce music without
a staff on paper or in a text message, and produce music programatically with
easy I/O to a synthesizer or to other functions in code. ABC notation comes
close to what I want - it can be done in a text message, but I/O requires
parsing and storing into objects to do anything with it. basic HexnoteG9 can
be read in as little as 1 case statement viewing the last place.

I used LMMS and have taken a look at AbletonLive - both require heavy use of
the mouse to get anything setup for music generation. My plan is to start at
the bottom of the stack - sending notes through hex , and build on that so an
artist could go in and edit the hex notes if they really wanted to, that it
would be more readable than midi, and then the changes would show up in the
layer above the hexnotes with buttons, sliders, a staff, and general UI.

~~~
shoo
maybe of interest -- [https://vimeo.com/22798433](https://vimeo.com/22798433)

------
4nof
I made a heroku app to start this:
[https://hexnote.herokuapp.com/public/](https://hexnote.herokuapp.com/public/)

