Path: utzoo!attcan!uunet!wuarchive!zaphod.mps.ohio-state.edu!tut.cis.ohio-state.edu!ucsd!nosc!logicon.arpa!trantor.harris-atd.com!trantor!dsampson From: dsampson@x102a.harris-atd.com (sampson david 58163) Newsgroups: comp.windows.ms Subject: Re: MIDI for Windows Message-ID: Date: 21 Feb 90 20:10:32 GMT References: <2540@ncr-sd.SanDiego.NCR.COM> <3601@rti.UUCP> Sender: news@trantor.harris-atd.com Distribution: na Organization: Harris Gov't Aerospace Systems Division Lines: 91 In-reply-to: bcw@rti.UUCP's message of 21 Feb 90 05:05:23 GMT In article <3601@rti.UUCP> bcw@rti.UUCP (Bruce Wright) writes: In article <2540@ncr-sd.SanDiego.NCR.COM>, carlc@mars.SanDiego.NCR.COM (Carl Christofferson) writes: > In article <1990Feb19.205639.15983@chinet.chi.il.us> you write: > >Hey one and all. I've got a customer here that wants to develop apps > >for MIDI in Windows. > > I am also interested in developing MIDI/music apps for Windows, but I have > no experience in this area at all! Can anyone direct me to some good books > on developing MIDI/music apps and on how to use the Windows Sound functions? > Petzold doesn't mention them at all. # I'm a bit puzzled by this question. It might be easier to answer # questions if I knew what problem you are having. The Windows sound # functions are simple enough (really too simple for a lot of purposes). Bruce, I sent the original poster some e-mail about the driver. However, I think this may be of intrest to more than one person, so here goes.... I think that Carl Christofferson's premise is slightly confused. Programming for a MIDI port, MIDI device, and programming for MS Windows can be, and in most cases, are two different subjects. What I mean is that one doesn't use the Windows Sound functions to control a MIDI card or instrument. When dealing with MIDI there are two subject areas: 1) A seperate set of rountines that have absolutely nothing to do with Windows but are used to control the MIDI card/port. 2) Controlling the actual MIDI instrument. All of the MIDI charts in the back of the your instrument owner's manual show the format of the commands and responses for your MIDI device (keyboard or whatever). Item 1: Generally one has an assembler object file that you link with your Windows files at compile time that contain routines that Get & Put a byte to/from the MIDI port, and check the Status of the MPU-401 card. The Get/Put and functions are written to interface with C so that they can be called inside your C source like any other C function. Item 2: Once you can check the MIDI card status, and Get and Put a byte of data to and from the port, all you have to do is follow the MIDI instrument owner's manual command and response data format to control the device or dump parameters. However, the way you trigger commands or display results becomes important at this stage, so you have to address the design of the Windows based program that will paint the stuff you want on the screen and do all those fancy MS Windows type of things. You have to write the code (and create the data structures) that you use to control the MIDI instrument and store & manipulate the data received from the MIDI device. I bought a couple of books from M&T Publishers (found them at B. Daltons). One is called "C Programming for MIDI" by Jim Conger. The other is "The MIDI Book" (The specific title and the authors escape me. I don't have the book here at work. However, one of the authors is a columnist for Keyboard Mag --- last name is De Figuroria or something like that). Conger's book has an assembly routine that controls the MIDI port as I described in above. The other book provides an excellent description of the MIDI spec (i.e. send this chunk of data and your MIDI device will respond with that chunk of data). Between the two books, I've learned how to manipulate anything on my Korg M1. In fact "The MIDI Book" has several examples using the Korg M1. I've just starting to write a MS Windows based Editor/Libarian for the M1. I'll come up for air in a couple of months. -- ------------------------------------------------------------------------------- David Sampson Harris Corporation dsampson@x102a.ess.harris.com Gov't Aerospace Systems Divison uunet!x102a!dsampson Melbourne, Florida -------------------------------------------------------------------------------