0.8.2 Preview r1310 - Device rework and bug fixes

Archived development update discussion from past versions
Archived development updates.
Raymond
Posts: 528

Post by Raymond »

Found a bug.
I have a song with 11 tracks and 5 of them are percussion. Before the preview I had all the tracks instrument set to 0(The first piano). except for the percussion wich where set to Not played hidden.

Now with the preview the First percussion track is still being played. (track #4) Even when I set Everything to Not played, that track is still played.
loituma-ievan_polkka.mid
(23.8 KiB) Downloaded 305 times
Oh and there was some other song that all the Played By got messed up. But I fixed it and don't remember the song.

Sorry It took me so long to post this. (Iv known this bug existed sence the preview was released. :roll: ) Iv been lazy. :lol:

lol got top of page twice for today.
Nicholas
Posts: 13135

Post by Nicholas »

Raymond wrote:Found a bug.
The problem stems from the track count and track order being shimmied around because of fixes made to song loading. You can fix it by clicking "Reset All" and just going through and changing your instruments one more time.

There is a different problem though: the track count shouldn't have changed in that song. :D Check out the log after you load it:

Code: Select all

[WARN ] 2011-Jul-19 03:21:21 src\libmidi\MidiTrack.cpp:246: Dropped 254 never ending note(s).
[WARN ] 2011-Jul-19 03:21:21 src\libmidi\MidiTrack.cpp:246: Dropped 106 never ending note(s).
[WARN ] 2011-Jul-19 03:21:21 src\libmidi\MidiTrack.cpp:246: Dropped 185 never ending note(s).
[WARN ] 2011-Jul-19 03:21:21 src\libmidi\MidiTrack.cpp:246: Dropped 270 never ending note(s).
[WARN ] 2011-Jul-19 03:21:21 src\libmidi\MidiTrack.cpp:246: Dropped 1 never ending note(s).
[WARN ] 2011-Jul-19 03:21:21 src\libmidi\MidiTrack.cpp:246: Dropped 1 never ending note(s).
I made a change in the r1310 preview that would fix certain problems in poorly ordered MIDI events. Notably:
readme.txt wrote:Rare (ambiguous) event ordering in MIDI files could cause the second of two consecutive notes to appear very short, despite the spark effect still showing correctly.
I fixed it by allowing more than one of the same note on the same channel to be "open" at the same time. Before the behavior was that a new note-on would implicitly "close" the previous note-on if we hadn't seen one before. In the On, On, Off, Off case (where the 2nd and 3rd events were at the same time point, only unfortunately swapped by a bad MIDI editor), you don't get what look to be super-short notes anymore.

The problem (apparently) is that whichever editor created that MIDI file of yours, seems to think percussion can just be note-ons forever without a note-off ever.

I could claim "Bad MIDI! Not my problem!" but I won't. ;) Maybe that's a thing that happens to percussion a lot. So, I'll amend my fix so it will still let note-ons close previous notes if the event happens to be a percussion channel.

After the fix, it looks like this:

Code: Select all

[WARN ] 2011-Jul-19 03:38:58 src\libmidi\miditrack.cpp:252: Dropped 1 never ending note(s).
[WARN ] 2011-Jul-19 03:38:58 src\libmidi\miditrack.cpp:252: Dropped 1 never ending note(s).
[WARN ] 2011-Jul-19 03:38:58 src\libmidi\miditrack.cpp:252: Dropped 1 never ending note(s).
[WARN ] 2011-Jul-19 03:38:58 src\libmidi\miditrack.cpp:252: Dropped 1 never ending note(s).
[WARN ] 2011-Jul-19 03:38:58 src\libmidi\miditrack.cpp:252: Dropped 1 never ending note(s).
[WARN ] 2011-Jul-19 03:38:58 src\libmidi\miditrack.cpp:252: Dropped 1 never ending note(s).
That's way easier to live with. Those are the very last percussion note in each of the percussion tracks. One lost note each in the very last beat of the last measure is something I'm willing to call "Bad MIDI!" on since the impact is virtually zero.
Raymond
Posts: 528

Post by Raymond »

Nicholas wrote:You can fix it by clicking "Reset All" and just going through and changing your instruments one more time.
I remember trying that when r1310 came out. I'll try it in r1352.
Nicholas wrote:seems to think percussion can just be note-ons forever without a note-off ever.
Ya I do remember seeing that. My SB Live Synth doesn't like it.
Nicholas wrote:Maybe that's a thing that happens to percussion a lot.
Ya I do have a few other songs that are like that..
Nicholas wrote:the fix
That does look like that will fix the problem with Synthesia. But I am not sure about my synth.
The problem is that my synth can only hold 32 notes at one time. every percussion note under middle C, will automatically release itself. but not middle C and above.
So after a bit the queue gets full. and then all I hear is percussion... Now I don't have any problems while playing because I always disable most if not all percussion.

So it's not really a bug you should worry about. But well see, maybe turning them off every time it gets a new on event, will be enough to fix that aswell. ;)
Nicholas
Posts: 13135

Post by Nicholas »

Raymond wrote:So after a bit the queue gets full. and then all I hear is percussion...
Quit using broken files! :D Go add the note-offs in a MIDI editor.
Raymond
Posts: 528

Post by Raymond »

:lol:
Nicholas wrote:Go add the note-offs in a MIDI editor.
Naa, If I was going to do all that Id just remove the percussion tracks. ;)
Shneibel
Posts: 7

Post by Shneibel »

I download osx lIon recently and i notice the audio output is small even if I increase the volumen, is this the OS problem or the program does not fit with it yet ?

edit: nothing wrong with my built-in sound system, only file have problem is MIDI, the sound is reduce greatly
User avatar
DC64
Posts: 830

Post by DC64 »

Why do we use DirectX 9 instead of 10 or 11
"And now for something completely different."
Nicholas
Posts: 13135

Post by Nicholas »

DirectX 9 is basically ubiquitous. I'm not using any DX10 or DX11-only features, so there isn't any reason to restrict Synthesia to only people with video cards compatible with those. Would be limiting who could run Synthesia for no reason at all.
Locked