Keyboard scanning for Virtual Organ

Hi everyone.

Just discovered this amazing piece of hardware and have been reading madly. I'm currently midifying a large organ console and had been planning to use Midibox.

However, reading things here has me thinking.

I have 3 x 61 note keyboards to scan. They are wired in 12 note blocks so there are 15 x 12 note blocks (plus 3 extra notes on the 16th block)

Rather than use a whole bunch of shift registers, I was wondering if I could use 4 pins decoded to 16 to activate each block in turn and read the 12 notes of that block. Of course they would be wired as a diode matrix, so it would be a 12 x 16 matrix.

I would need to use 6 analog(as dig) in and 6 digital in to read the 12 notes, 4 digital out for addressing the decoders and a Midi transmit pin.

I would then just send an appropriate MIDI code when a note changes state.

Rather than debounce individually within the scan, I thought I might set a count for that note when it changes state the first time and count a set number of scans from when it first changed, then check it again to see if it has remained in the new state. ie Change of state => wait a fixed number of scans => check again. If it is still in the new state, send the Midi message.

What do folk think? Is this a reasonable approach?

Cheers
Graham