22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ORGAN KEYBOARD INTERFACE 299<br />

quite low and perfectly suitable for carrying any kind <strong>of</strong> logic signal. The<br />

contact time differential used for velocity sensing varies from a minimum <strong>of</strong><br />

around 5 msec to a reasonable maximum <strong>of</strong> 50 msec. Attempting to pound<br />

the key for shorter times results in severe bounce <strong>of</strong> the key itself as well as<br />

possible damage. Gently easing the key down for longer times requires so<br />

much care that it is unlikely to be done. Variations in the differential from<br />

key to key and even the same key from stroke to stroke are in the range <strong>of</strong><br />

20% up or down. The very light touch characteristic <strong>of</strong> organ keyboards is<br />

probably responsible for much <strong>of</strong> the variation.<br />

Contact bounce is a problem that must be dealt with if spurious<br />

outputs are to be prevented. Bounce on contact make is generally 1 msec,<br />

although it can be as long as 3 msec. Bounce on break, however, can be as<br />

long as 5 msec which normally occurs for the slower velocities. Thus, to<br />

retain any degree <strong>of</strong> accuracy in velocity timing the keyboard controller logic<br />

must define the time differential as being between the last bounce <strong>of</strong> contact<br />

break on one bus to the first bounce <strong>of</strong> contact make on the other bus. With a<br />

microprocessor doing the work, such sophistication is relatively simple.<br />

Another option sometimes used by synthesizer manufacturers who also make<br />

their own keyboards is to dispense with contacts altogether and use other<br />

types <strong>of</strong> position sensors such as light source-photocell combinations, which<br />

do not bounce.<br />

Keyboard Events<br />

The real purpose <strong>of</strong> the keyboard interface is to report all significant<br />

keyboard activity to the using system. With velocity sensing, this requires<br />

five pieces <strong>of</strong> information about each keystroke:<br />

1. A number defining the key<br />

2. When it was pressed<br />

3. A number defining the depression velocity<br />

4. When it was released<br />

5. A number defining the release velocity<br />

If the time <strong>of</strong> depression and release are defined as elapsed time from an<br />

arbitrary point such as the beginning <strong>of</strong> the song, then the time relationship<br />

among all keystrokes is retained and the keyboard activity can be stored and<br />

reproduced exactly or edited.<br />

For a real-time playing situation, each piece <strong>of</strong> information should be<br />

reported as soon as it is available. It is possible to break each keystroke into<br />

two parts, which will be called events. A depression event would therefore<br />

consist <strong>of</strong> a key identification, its depression velocity, and the "time <strong>of</strong> day"<br />

that it was depressed. Similarly, a release event would specify which key, its<br />

release speed, and when it was released. With information in this form, it<br />

becomes easy for the system control computer to operate the synthesizer in<br />

immediate response to the keyboard and/or record the playing sequence.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!