Thank you for the feedback. I have updated the manual to address some of the issues you brought up.
What language is this library for?
It's written in assembly language but should work with any language that runs on the NES and can link to assembly language subroutines. I've added the names of the essential files.
Maybe you could write an Overview section that describes how these pieces fit together
Good idea. I've slipped "The file musicseq.s contains the sound effects, instruments, songs, and patterns that you define." into the API section.
The first place you mention the pitch codes N_C and N_CH, I was confused what they were because they hadn't been explained yet: "Pitch values such that the pattern code N_C produces a C are"
That's a forward reference. Do I always need to use the word "below" on every forward reference?
Later you mentioned N_BB, and I wasn't sure what the BB represented: "For example, to play a short note for 4 frames followed by a note that is as long as a quarter note minus 4 frames, do GRACE,4,N_CH, N_BB|D_Q4."
Another forward reference. Will change to "For example, to play a short C note for 4 frames followed by a B flat that is as long as a quarter note minus 4 frames, do"
You finally imply the pitch code meanings at the end:
I'll explain them explicitly with a table at the start of the "Patterns" section.
In sheet music, the Fine notation means you stop the second time you encounter it. I'm confused if Pently's fine means "stop unconditionally" or "stop the second time".
I changed the explanation to lead with what it means: "Stops music playback. Use this at the end of a piece." To make an A-B-A form, you'd repeat the play and wait commands for A and then add a fine
command. But in video game music, if you have an A-B-A form, it's usually one that you'll be looping.
"Pitch on a noise channel is $03 (highest) to $0F (lowest) for ordinary noise"
I thought there were 16 possible noise values. Are you excluding some on purpose?
I added the explanation: "Values $00 through $02 are also valid, but they sound identical to quieter versions of $03."
Why < and - ?
"TRANSPOSE,<-12 moves down an octave"
The - denotes negative, and the < works around ca65's lack of support for signed bytes.
Many systems ship with fonts with glyphs for the flat and sharp symbols
Many of the symbols show up as boxes in my browser (Internet Explorer 11 on Windows 8.1). I can see the sharp and flat symbols, but not the "final barline", segno, and note symbols.
; fewer support the Musical Symbols block. On my Xubuntu laptop, Pango is pulling those symbols out of the "FreeSerif" font by default, and Character Map says they're also available in "Symbola". And those are pretty much the only real fonts that support them according to Font Support for Unicode Block 'Musical Symbols'
on FileFormat.Info. (LastResort doesn't count because it's an OS X internal font that has the same glyph for all characters of each Unicode block.) See also Test for Unicode support in Web browsers: Musical Symbols (U+1D100 – U+1D1FF)
by Alan Wood.
On GNU/Linux distributions descended from Debian, the administrator can install the Symbola font using sudo apt-get install ttf-ancient-fonts
. As for proprietary operating systems, I'm surprised that they fail to include Musical Symbols fonts despite racing to support new emoji characters in each Unicode version.