I'm setting out on a project, and I need some basic direction. I am a programmer by trade; my father is a mechanical engineer who is pretty good at electrical circuit design as well---together we want to control a pipe organ by computer. The organ is already operated by electrical solenoids, and my father has created circuits to drive the solenoids. This is essentially a large shift-register. To set the state of the pipes, one must clock a serial data line with the correct data, then latch the registers. The other half of the interface is reading the state of the keyboard. This is also a shift register, providing a serial input to the computer. I am hoping there is some kind of signal processing board that we can drop into a Windows computer and use to read/write these shift-registers. Hopefully a simple software driver is provided. There is one bonus to this project: if we can get this far, we can also get the computer to read and write midi files, making the world's vast collection of midi music available to be played on our pipe organ, and also making the computer into a "recorder" of someone playing live. I am aware that we could implement this with dedicated controller chips, or use gate-array logic, or something like that---but neither of us has any expertise in this area. A significant question is data throughput---we must be able to read and write signals sufficiently fast. But we have a lot of room to play with, especially to get started, so mainly I want to understand if there is any existing system that fits our needs. Later we can talk about speed. A related issue to throughput is buffering. If we run this under Windows, and not as a dedicated controller, we have to handle OS interruptions etc.