Controlling analog synths with computers (fwd)

gstopp at fibermux.com gstopp at fibermux.com
Thu Nov 21 23:25:37 CET 1996


     <mock indignant tone mode on...>
     
     Oh sure write system clocks and program changes and sysex bytes all to 
     your note CV DAC. OK just restrict your MIDI stream to note data. Now 
     write the status byte then the note number then the velocity to your 
     DAC, all within a millisecond, and leave the DAC value at whatever the 
     last velocity was. Screw the notes.
     
     Nice MIDI-CV algorithm, guys.:)
     
     I want my MIDI-CV converter to comply fully with the MIDI spec. I want 
     my MIDI-CV converter to parse the MIDI data so that I can plug it in 
     to a sequencer's output and have it only pay attention to the messages 
     that it's supposed to, and ignore those meant for other devices. My 
     code does that - real time, system, channel, running status, all that. 
     Handled properly, with recovery from invalid or incomplete messages 
     even. It is not complicated but it is not pathetically limited either.
     
     I want function calls and structured programming. I want labels and 
     variables and operations in English. I want program flow and 
     readability. I don't want spagetti assembler code. I'm not afraid of 
     it, I grew up on it, I am above it.
     
     Okay QuickBasic is a humorous language. I stand embarrased by that, 
     you got me. But it's standard on any PC you walk up to, assuming it 
     has fairly recent DOS. It's structured, it has user-defined functions, 
     and it's real damn easy to get something done, goddammit. Quickly, 
     goddammit.
     
     I've ported the algorithm over to C, and it works fine. There's no C 
     compiler on my XT, and I don't even have it on 5 1/4" disks, and I 
     don't think I'll find it on 5 1/4" disks. The XT has 360K drives. So I 
     use what I've got, sue me.
     
     If you ask me, defending a 4 meg XT that's *a hundred* times slower 
     than a motherboard you can get for twenty bucks is where the funny 
     part of all this is.
     
     <mock indignant tone mode off...>
     
     Seriously, guys, I'd love to discuss MIDI parsing. What I've done I 
     made up myself, and it works great, but I've never even had a 
     meaningful conversation about it with anybody before. For all I know 
     there's an easier way and I'd like to compare notes (pun intended).
     
     - Gene
     gstopp at fibermux.com


______________________________ Reply Separator _________________________________
Subject: Re: Controlling analog synths with computers (fwd)
Author:  "J.D. McEachin" <jdm at synthcom.com> at ccrelayout
Date:    11/21/96 12:42 PM


The Master hath spoken:
     
---------- Forwarded message ---------- 
Date: Thu, 21 Nov 1996 13:15:19 +0000 ()
From: Neil Bradley <neil at beacon.synthcom.com> 
To: "J.D. McEachin" <jdm at synthcom.com>
Subject: Re: Controlling analog synths with computers
     
On Wed, 20 Nov 1996, Gene wrote:
     
> >     I made an 8-channel DAC on a PC parallel port. I just got it finished 
> >     The PC is an XT with an original Roland MPU-401 MIDI interface. The 
> >     code is some QBASIC hack under DOS that parses the incoming MIDI data 
> >     and writes out to the DAC. MIDI channels 1 thru 8 go to DAC outputs 1 
     
QBASIC!??!?!?!
     
> >     I have discovered that the XT is too slow for this application. I can 
     
The XT isn't too slow. It's just his programming skills are woefully 
inadequate. Try assembly - works great! Even an XT can keep up with a 
31.5Kbps link.
     
Something like this would work wonderfully on an XT:
     
noData:
 mov dx, [mpu 401 control address]
 in al, dx
 test al, [mpu 401 bit indiciating receive has happened] 
 jz noData
     
 mov dx, [mpu 401 data address]
 in al, dx
 mov dx, 0378h (or 03bch, or 278h - parallel port address) 
 out dx, al
 jmp noData
     
Quite honestly, there's less programming here than there would be in 
writing a Quick Basic program. ;-)
     
I didn't do anything (like parse the incoming stream or whatever) but 
we're not talking about a buttload of work, here. ;-)
     
-->Neil
     
     




More information about the Synth-diy mailing list