OkiePC
Lifetime Supporting Member
I think you guys are making this all way too complex.
I think that you can use an on delay and an off delay for each input and tune them until it's near perfect.
I think that you will end up with about a 6 or 7 millisecond scan time in a ML1000.
The inputs have adjustable filters to make them more or less sensitive to very short pulses. Be sure to have a look at those settings.
I am not sure how the strum bar works (never played the game, but watched my kids once about a year ago) but it sounds like it needs to be on if any of the outputs are on? That's a very simple rung.
I can't see any need for SQO or bit shifting, just an off delay that seals in the output long enough to cover the gaps between successive notes.
Make the on delay and off delays independent for each sensor so that they can be fine tuned to deal with any variation in the alignment.
One thing that may throw a monkey wrench into the works would be the change in speed of the notes flying by.
If you are slick, though, you can detect that rate by measuring the dwell time of the sensors and adjusting a "master timer scale factor" to compensate...
That would be pretty simple, too, if you had floating point, but can still be done with integer math...
1/8 second = 0.125 seconds...typical ML100 scan time < 0.010 seconds...no problem...
If you used a ML1500, you might have ten times the speed (and double the budget) but it might make the difference between a great score and a perfect one...
I would start simple like I described, then measure the performance, tweak the timers, and only then look at things like immediate inputs and interrupts if absolutely necessary.
I think that you can use an on delay and an off delay for each input and tune them until it's near perfect.
I think that you will end up with about a 6 or 7 millisecond scan time in a ML1000.
The inputs have adjustable filters to make them more or less sensitive to very short pulses. Be sure to have a look at those settings.
I am not sure how the strum bar works (never played the game, but watched my kids once about a year ago) but it sounds like it needs to be on if any of the outputs are on? That's a very simple rung.
I can't see any need for SQO or bit shifting, just an off delay that seals in the output long enough to cover the gaps between successive notes.
Make the on delay and off delays independent for each sensor so that they can be fine tuned to deal with any variation in the alignment.
One thing that may throw a monkey wrench into the works would be the change in speed of the notes flying by.
If you are slick, though, you can detect that rate by measuring the dwell time of the sensors and adjusting a "master timer scale factor" to compensate...
That would be pretty simple, too, if you had floating point, but can still be done with integer math...
1/8 second = 0.125 seconds...typical ML100 scan time < 0.010 seconds...no problem...
If you used a ML1500, you might have ten times the speed (and double the budget) but it might make the difference between a great score and a perfect one...
I would start simple like I described, then measure the performance, tweak the timers, and only then look at things like immediate inputs and interrupts if absolutely necessary.