Release

Monkey Island Intro.mid

4

SP4CEBAR 2022-09-12 19:51 (Edited)

This is what NX sounds like when playing Monkey Island

Why did I not think of this earlier

Note: it's only sawtooth synths playing on four voices
It takes a few seconds before it starts playing

This is the midi player from my Midi Tools program

Sometimes a note keeps hanging, idk why, other files don't seem to have this problem, I suspect it has something to do with the four voices to which all notes are rotated (reused one by one) and for some reason, one voice doesn't get overwritten


SP4CEBAR 2022-09-13 10:05 (Edited)

I added a display for the track that's playing, and a display for the four voices with the pitch, velocity, and tracks (each track can have up to 16 sub-tracks (which are more like labels) in them)

I added these displays to debug why a note keeps hanging sometimes, but I couldn't find it, so the file probably uses some method of stopping a voice I don't know of, perhaps it says something like "this track can have a maximum of two voices", somewhere in the data blocks at the start of the file


McPepic 2022-09-14 01:07

I thought I would remix this program with another song and I think it sounds pretty good. I thought I should tell you the program crashed at line 989, so I had to comment it out.

Title Screen.nx | Open in app
2022-09-14 01:07

SP4CEBAR 2022-09-14 10:11

Cool, idk why it crashed though, did it show a message on screen?


SP4CEBAR 2022-09-14 10:29

Oh, I see that's a bug indeed, I should've used the variable "VOI" instead of "X", luckily it's only a visual thing, I recently added, it shouldn't change the sound


SP4CEBAR 2022-09-14 10:32

If you want to convert any of these to the NX music format you could use this tool


SP4CEBAR 2022-09-14 10:34 (Edited)

The hanging notes really seem to be an issue in a lot of files... maybe I should start looking at the midi line by line again to figure out what methods they use to stop a note


SP4CEBAR 2022-09-14 10:49

Playing one track at a time seems to not have hanging notes (or maybe it does but I didn't realize it) if this is the problem then I could fix it by keeping track of each track in one big array, and then only play the notes with the highest priority


SP4CEBAR 2022-09-14 11:04

Here's Ducktales the moon, it once played fine (one track at a time (before the scheduler)), but now it doesn't (not even one track at a time)


SP4CEBAR 2022-09-14 11:15 (Edited)

It's only running status midi files (lazy files with a smaller file size) that have hanging notes,

The bad piggies theme plays just fine


McPepic 2022-09-14 16:23

I still haven’t been able to convert any music. The entire time it’s converting, the volume stays at zero.


SP4CEBAR 2022-09-14 21:32 (Edited)

The converter operates in silence
It generates a music file on the disk at ROM 15
It should play the file after generating, if I remember it correctly

I haven't tested it recently, so it could be broken, if it is, you could try if some of the early versions work


McPepic 2022-09-14 22:44

I'm testing the converter. I don't know how long it usually takes, but it's still going at 10,000.


McPepic 2022-09-14 22:53

Update: It just crashed. :/

INDEX OUT OF BOUNDS
IN LINE 654:
PRINT TA(0,I)


McPepic 2022-09-14 23:11

I tried again with precision 8 instead of 1. It produced a sound file with C-3 filling every slot in the sound designer.


SP4CEBAR 2022-09-15 07:52

Then it's probably broken, try the earliest version


SP4CEBAR 2022-09-15 07:53

This is probably the same as the earliest version https://lowresnx.inutilis.com/topic.php?id=1878


McPepic 2022-09-15 15:39

I tried it and got an index out of bounds.
TA(0,A+TIME)=PITCH


SP4CEBAR 2022-09-16 08:38 (Edited)

I guess that's a version too early then... let me see which version was the first to detect that...


SP4CEBAR 2022-09-16 08:44

The second version of the tools Is the first to have an if statement for it, however, the fourth version has two of them, so maybe the fourth version would be worth trying


SP4CEBAR 2022-09-16 08:50 (Edited)

If none of these work, then I've probably never tried really big files, you could manually cut the end off your midi file (only the last available note would corrupt which is not a problem), or you could fill in a higher "precision" value because big files are not going to fit into the NX music format anyway


SP4CEBAR 2022-09-16 08:56 (Edited)

Maybe I could encode it into an "extended sound format" which has additional tracks at the end, that NX's sound composer can't access, however, the composer should be able to open the file

And I probably can remove the TA() array altogether and write it directly to the file


SP4CEBAR 2022-09-16 09:12 (Edited)

I found a solution to the track length problem, I could add a mode where it makes an NX music file where notes are played at the same time so that it can use the synth switching capabilities that the NX music file has (each note can have its own synth)


McPepic 2022-09-16 15:14

Ya. It’s kind of complicated to test because the older ones have really choppy audio in play mode but have a working converter. The newer ones, though, are a lot smoother but the converter is broken.


SP4CEBAR 2022-09-16 15:36

Thanks for your patience, I do plan on improving the converter at some point and adding more options, so that users can get the important bits from (too) big files

For now, you could quick-patch array out-of-bounds errors by placing them within an if-statement


SP4CEBAR 2022-09-21 20:16 (Edited)

@McPepic I just fixed it!

This line was the culprit:
IF NOT(STATUS>$7F AND STATUS<$A0) THEN

it should've been:
IF STATUS>$7F AND STATUS<$A0 THEN

I must've not tested it, otherwise, I would've noticed


SP4CEBAR 2022-09-21 20:42 (Edited)

If it doesn't play very well then try a different precision value:
Try 2, if it repeats the same notes for a long time, then it's zoomed in far too much, then try 32, if it doesn't play anything, try a lower value like 16 (power of two)

If your song is pretty big, then there's probably no way to access the data on the last track, because this version will always start encoding from track 0, and tracks can't be skipped


Log in to reply.