Midi clock data and note on/ofs are MUCH LESS data than someone tweaking a knob in realtime. I wouldnt be surprised if we are hitting a bottleneck on the gb serial port here, and it will need some sort of filter to cut down the bits we are bangin'.
DSC's arduinoboy code is pretty advanced in terms of digital filtering on the ADC inputs to prevent spurious MIDI CC's so the problem is not there, it would be the same effect from a midi controller. The issue as mentioned above is the data rate from knob tweaking in combination with no handshaking or error detection/correction. I'll find the refresh rate the original hardware used and limit the arduino code to that level. I know every iteration of the 'ReadPot' only read the value of one pot, changing every time it was called so I don't think the refresh rate on the original hardware was as fast as what could be achieved via MIDI.
The gameboy's serial port can sustain very high speeds. The bottle neck there is not the serial port but the speed the gameboy CPU can process the data. This has been tested in an experimental linker hardware where I can flash my flash cart in a very short time via the link port. 8mbytes transferred with zero errors in the bitstream. This makes me think the arduino is at fault. The serial stream is generated in software and perhaps an interrupt routine is not preserving registers at it should. In theory if the serial stream was out of sync, it would not get back into sync until 7 more errors occur in the bitstream and from the reports on here, it seems only 1 in a handful of MIDI commands are missed, supporting the theory that the error is generated in the arduino.
I have a MIDI keyboard/controller that I purchased for another MIDI project that I was working on so no need to crowdfund anything. I have an arduino in one of the many boxes I've packed (moving house) I just need to dig it out.
As for donations, DSC has been very generous in his contributions - not just via paypal but offering his own code he had developed and lessons learnt along the way. I am open to accept donations (Who doesn't like money!) but please understand that my real work takes me away from my computer (and often country) for weeks/months at a time. There are also unplanned commitments that I'm bound to at work and these take priority. I say this because I don't want to take anyone's money and not deliver. Any donations should be for the work that has been done or is in progress, not for promises etc... I hope you understand!
In other news, I've left my laptop, gameboy, flash cart, Joey Squinson and about 10 parcels I planned to post at my new house (3hrs drive away...) This really throws a spanner in the works. Wont be able to get down there till the weekend :-( I'll continue work via MGB and my GBC.
I'll try build the arduinoboy tonight, if the errors persist I'll re-write the code (arduino) from scratch in asm. You wont loose your bootloader so you can revert at any time and hopefully you'll loose all the bugs.