I just ran into an odd issue with the drums where if I setup a bunch of 1/16th’s notes for the closed hi-hat or bass that they would often drop out every 1-3 notes. Is this normal? Oddly enough if I have both the bass and hi-hat doing just 1/16th notes, it works as advertised - mostly. Occasionally there is a drop here or there but mostly they both work as they should.
I thought it might be a polyphony thing but even soloing just the hi-hat or drum and playing nothing else has this affect. It doesn’t seem to happen when playing on one of the instrument channels - just the drums, so I don’t think it’s a MIDI issue.
I’m feeding the synth using a GM5x5x5, Ableton Live, and OS X.
I don’t think my case is a short because using both the bassdrum and hi-hat makes the problem go away; and using normal instruments work just fine using the same 1/16th note repeating pattern. I tried it on my Windows box and same problem. I also tried adjusting the BPM down and up and it doesn’t change the drop-outs (they get rhythmically faster or slower matching the BPM).
The MP3 I’ve attached illustrates what I’m talking about. You can hear the bass drop out followed by the hi-hat. Both have the same dropout pattern more or less. Then both come in and the output is more consistent (I think there might be one drop). Then I do a standard instrument and you can hear no drops, followed by the whole lot.
If it were some sort of issue like short, I would have expected other behavior, but I’ve been wrong before
Anyone else able to reproduce this test? I can provide my Live project file but all I’m doing is 16th notes in an 8 bar pattern for the bass, hi-hat, both, and then a lead. All straight 16th notes at 120BPM (though I tried 90 and 150, same exact phenomenon).
I can’t reproduce this issue, but for me it sounds like a firmware issue…
It could be related to OPL3 register access modifications which have been made for sammichFM.
Since they are slower than on the original MBFM design, and since interrupts are disabled while register values are transfered, incoming MIDI events could get lost.
I’m unable to test this by myself, as I haven’t got my sammichFM yet (seems to be stucked at german Zoll…)
However, I added a “blind change” in the hope that it helps - MIDI interrupt isn’t disabled anymore during register transfers.
I tried the update and I think it sounds better but still seems to be dropping a lot of notes on the drum channel. I have attached an updated MP3 (this one is at 90 BPM instead of 120 BPM in case that helps). Guess we may have to wait and hope that your sammichFM arrives
TK, can you reproduce the issue with your MB-FM by enabling the extra instructions that write bits to port E?
It always writes the full byte to port B, so you would still get sound, this would just let you reproduce it and prove the extra three instructions cause the problem (the two blocks wrapped by #if ENABLE_MBNET in MBFM_REG_Write). If I’d known this would be a problem I would have scrapped the future support for MBNET and just stuck with port B connection to OPL3…
If I’d known this would be a problem I would have scrapped the future support for MBNET and just stuck with port B connection to OPL3…
Don’t worry, I proposed the PIC18F4685 because I knew that if necessary modifications would cause timing issues, the OPL3 register transfer routine could be optimized by putting it into a macro instead of a subroutine. This method would be possible thanks to the higher amount of available code memory, and it would save at least 6 cycles per register write. This would more than compensate the delay caused by PortE accesses.
(I haven’t tried it yet, and I haven’t checked if emulating the delay would help to reproduce the issue - I prefer to test it on the real device, because it can’t be excluded that the problem happens because of a programming error somewhere else :))
I tried the update and I think it sounds better but still seems to be dropping a lot of notes on the drum channel. I have attached an updated MP3 (this one is at 90 BPM instead of 120 BPM in case that helps). Guess we may have to wait and hope that your SammichFM arrives
My base board is up&running, and I’m ready to test the “critical sequence”.
Could you please create a MIDI (.mid) file which causes the failures at your side, so that I’m able to reproduce this under the same conditions?