[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference napalm::commusic_v1

Title:* * Computer Music, MIDI, and Related Topics * *
Notice:Conference has been write-locked. Use new version.
Moderator:DYPSS1::SCHAFER
Created:Thu Feb 20 1986
Last Modified:Mon Aug 29 1994
Last Successful Update:Fri Jun 06 1997
Number of topics:2852
Total number of notes:33157

444.0. "PDP & RT11 To Drive MIDI Network?" by UTRTSC::VBOMMEL () Tue Jul 29 1986 14:20

	Is somebody writing software (on PDP11) to drive
    	midi instruments, sequence the data, program synthesizer voices
    	ect ?
    
    	I'm writting software on PDP-11/34 that interfaces a midi-keybord
    	and drives a 24-voice FM-synthesizer (16 midi channels).
    
    	Somebody else who is using RT11 and is doing something like
   	this ?
    
    						Henri ...
T.RTitleUserPersonal
Name
DateLines
444.1maybe we can make a dealJON::ROSSFri Aug 01 1986 18:1124
    Hi. Wellllllllll....
    
    You caught my eye. I have a project thats sorta back burner to
    interface a micro-11 as a system for midi control, sequencing, 
    etc.... 
    
    Todate only have experimental code for recieving/displaying 
    midi note on, and sending user supplied data (you need to 
    figure out what code for note-on, what note, what etc.....
    
    This was mainly a quick verify for the midi mod I did to 
    one channel of a DLVJ1 (cheep, works well) as an experiment.
    More on this for anyone interested.
    
    I believe that most non time critical software I plan will
    be in C, with calls to RT few. MAcro will be used for low
    level speed critical midi stuff. Suspect that clock will
    need to be disabled...(LTC interrupts that is) to do some
    things.
    
    What is your 24-voice synth, and if you're writing in macro
    exclusively, why dont you at least use RT for terminal I/O?
    What midi routines would you care to share! Tell me more!
    
444.2midi storage specificationUTRTSC::VBOMMELTue Aug 12 1986 09:5436
    That sounds good news...
    
    here are some more details.
    
    On my 1134 I modified 2 DL11 W's to support midi. So at the moment
    I have two midi groups. I had to do this because my synthesizer
    needs 16 midi channels itselve. The synthesizer is a Bohm-expander.
    It has per voice 4 generators (looks very much like a yamaha ie.
    the same parameters like attack,sustain ect). It possible to drive
    all 16 midi channels at the same time, so I can program a base-guitar
    on chan 1, a piano 2, a flute on 3 ect.
    
    I'm writting software to modify voices in pascal because this is
    not time critical. I do this by sending the expander a "dump voice"
    midi-request. Once I have the voice in PDP11 memory I can display
    and modifi the voice. After modification the voice is dumped back
    in the expander.
    
    When I'm sequencing data the comes from the keybord and route it
    to the expender I found my pascal is to slow so I do this in
    macro (also using programmed requests).
    
    As you see I'm still in a disign phase. I'm just a little further
    as you are so it may be very nice to make spec's together.
    What we need to specify is how we are going to store midi data
    on disk, and in memory. If we use the same spec we may be able
    exchange files and who nows there may be hundreds of other people
    using our spec. 
    
    An international song can be written in future by all of us together,
    we may reach the top ten !
    
    Is this computer music or not !!!
    
    							Henri ...
    
444.3DB::RAVANTue Aug 12 1986 15:106
    RE: .-1
    
    What is a "Bohm-expander"?  It sounds interesting.  Could you give
    us a short review of its features?
    
    -jim
444.4response is slow, on vacation....JON::ROSSTue Aug 26 1986 17:3416
    The data structures in memory are part of the secret to a good
    system. Enough info, yet efficient. Structures on disk should
    in my opinion, be of RT11 flavor, ie., write/readable using 
    any RT driver. This precludes doing some real-time writing of
    samples to disk, maybe even some 16 channels of midi-to-disk
    real time as well, but thats probably not a big restriction.
    
    I wish I knew what formats are used by some of the manufacturers
    of sequencers and/or software for PC's. Midi does take up bytes!
    But there are plenty of sequencer programs around.
    
    So why are we doing this when we could buy one and a cheep C 64
    or something?
    
    Ron
    
444.5hardware smardwareJON::ROSSTue Aug 26 1986 17:364
    
    er....is a DR11 W a DMA unit or serial line?
    
    
444.7love to have a few.JON::ROSSWed Aug 27 1986 17:2410
    overkill. (?)
    Serial line ( DL, DLV) would seem to be fast enuf, but
    havent gone thru the calcs for a 11/34 trying to feed
    16 channels. Hey, if you got it, use it. I'm on a low
    budget.
          
    Tom, what's your interest in this area?
    
    Ron
    
444.8Um,NEDVAX::MCKENDRYFamous long agoWed Aug 27 1986 17:387
    Er, "serial" and "DMA" are not disjunct. A device can be both
    serial and DMA. What the DR11 is is DMA and parallel - sixteen-bit
    parallel, if memory serves.
    DMA used to be called "NPR" - non-processor-request - in DEC
    literature. Just in case you got some old handbooks lying around.
    
    -John
444.10a bit at a time pleaseJON::ROSSFri Aug 29 1986 14:4221
    Tom, 
    
    (Just found your notes file on ICs.)  My goof on DMA. Meant
    "parallel". Sure we can have  serial-DMA (DZ,DH,other?).
    The confusion was that Midi is a current loop serial line
    and the DR is a parallel interface. No? I couldnt see why
    one would use a DR and not a DL,DH, or DZ. Cant imagine 
    adding Uarts to a DR (well, I can but...).
    
     DLVJ1 makes a great little (quad) Qbus/Midi  transciever
     with a new crystal and a coupla etch/wire changes. In fact
    a resistor can set up the correct current loop to avoid using
    the suggested opto-isolator. (Just get your grounds right).   
   
    You plan to do any midi-magic on your 23? (u11/23)?
    
    For note_creator (forgot your name): How do you serialize the
    DR output into midi serial?
    
    Ron
    
444.11bohm expander featuresUTRTSC::VBOMMELFri Sep 19 1986 11:0229
    I have been on vacation so my response is a bit late but here are
    some responses to the above questions.
    
    Reply 3 asked features of the bohm expander.
    
    here they are ...
    
    You can see the expander as a soundmodule (19 inch)
    It has the following connections at the back side:
    -midi in/out/thru
    -(music) signal out left+right
    -cassette interfae
    -foot padel for selecting next preset
    -power (220V in)
    
    Features:
    It can produce 24 voices simultanously
    evry voice has 4 generators whith parameters very much the same
    as yamaha dx10 has. ie: attack,decay,sustain level,sustain ect.
    Also the connection diagrams of the generaters are the same as yamaha.
    Evry voice can simulate one intrument or you can combine multi voices
    to build up an complex intrument.
    There are maximum 3*98 factory preset voices + 1*98 ram preset to
    build youre ow voices.
    Selection of voices and modification can be made from the front
    panel bottoms or via midi.
    For more more precise details give me you're mail address and I
    can send you a copy by post...
    
444.12PDP11 midi hardwareUTRTSC::VBOMMELFri Sep 19 1986 11:1314
    In answer to the midi hardware on pdp11...
    
    I modified a DL11-w to support midi.
    What I did was:
    - replaced the Xtal with a 10Mhz type
    - added one divide by twelve chip on a spare location on the module.
    - replaced the opto coupler with a 5-mili amp version.
    - changed some resistors to support 5 ma current loop instead of
      20 Ma current loop.
    
    Note: If somebody wants more details I can send a copy the modified
          DL11-w drawings ...
    
    	  Henri ...
444.13not much action...GNERIC::ROSSbozons unite!Mon Sep 29 1986 16:3512
    hi.
    
    Been a while since I checked this note.
    
    I'd love a copy of the modified schematic.
    
    Ron Ross ML0 21-4 E10
    
    Too busy to even think about RT these days.
    Have you been able to develop any software yet?
    
    rr
444.14drawings are coming ...UTRTSC::VBOMMELWed Oct 08 1986 11:2910
    All right I'll send you a copy of the modified drawings.
    
    I finished writting an voice editer for my bohm expander and att
    i'm working on the problem: how to store midi-data efficient in
    memory and on disk?
    
    If somebody has a good idea, i'm interested to make a specification.
    
    
    						Henri ...
444.15space efficiency is easySAUTER::SAUTERJohn SauterWed Oct 08 1986 12:008
    It is quite easy to store MIDI data space-efficiently: just use
    the transmission protocol, plus a timing byte before each message
    and an escape for long pauses.  This is the Roland MPU-401 protocol,
    and I used it in my sequencer.  Unfortunately, it makes display
    and editing very slow.  More challenging is to devise a storage
    format that is acceptably space-efficient and still lets editing
    be fast.
        John Sauter
444.16PDP11 MIDI softwareCOLORS::RIESFrank W. Ries Jr.Tue Oct 14 1986 21:2740
I entered a note a long time back about midi software that I have for the
PDP11. I don't recall what the note number was. In any case, I have written
a music compiler, player and patch librarian for the PDP11, which runs
under RT-11 or P/OS. The compiler can also be run on the VAX in PDP11
compatability mode. The compiler is a translation from one written a
number of years ago for a believe the PDP-1, and was later translated
to run on the PDP-10. In any case, I modified about 4 years ago for
the PDP-11. This compiler reads an ASCII file containing a musical
score which has been translated into a syntax more easily dealt with,
and outputs a binary file which is read by the player program, which
then does the appropriate timing, sending data to the music device.
This player can be modified to control about any device you want. It
originally controlled a board I built which contained some Texas
Instruments sound generator chips via a DRV-11C parallel interface.
When I bought my Roland Juno-106 about 2 years ago, I built a
general interface that will connect to any serial interface which
allows an external baud rate clock (TTL), and convert (both ways) to
5ma current loop for midi. I then modified the player program to
output MIDI data. I also have a utility program that will read
data comming in from MIDI, and display the messages in english
form on the terminal. I have found this very usefull finding out
some of the more obscure messages sent by various MIDI instruments.
Finally, I have a patch librarian program which will create a library
file and let you store and retrieve patch information. It will read
the patches via system exclusive messages, and store the info in
the library file by a name you specify. You can also store a comment
along with a name to give more info about the patch. You can naturally
get directories of the patches in the file, and later load them back
into the synth. My goal is to eventually allow patch names to be
specified to the compiler, and have the player load them from the
patch library. I have just recently added multiple channel capability
to the player, but still need to do some work on it. Since the syntax
used by the compiler is the same as the old PDP-1 ... stuff, I have
quite a few songs ranging from classical, to rock. Somewhere around
100 or so. I have also been adding alot of songs myself lately. I
give binary copies of the software to anyone who wants it. All I
ask in return, is that if someone enters a song, they share it with
everone else. I keep a common library of songs on-line for anyone
who wants them. If anyone wants more info on what I have, send me
mail at VIKING,COLORS,RAINBO,MOSAIC::RIES
444.17yeah, but...GNERIC::ROSSuntitledWed Oct 15 1986 13:5915
    
    Id be happy to contribute to the song pool.
    
    First I need the software that you have
    developed.
    
    Are you making it public?
    
    If so, how can we get it (my target RT11)
    I'd rather sources cause I'm sure I'll
    need to do some customizing (?)
    
    ron
    
    
444.18How do we wire 'em?DYO780::SCHAFERWelcome to the MIDIwest!Wed Oct 15 1986 17:217
Re: .16

    Not only sources, but what about a h/w interface?  This thing talks
    MIDI, right?  How do we get from RS232 to MIDI - roll yer own time?


8^)
444.19a little of both...JON::ROSStomorrow is tomorrow tomorrowThu Oct 16 1986 01:5011
    
    I have mods for a DLVJ1 Qbus quad serial line
    unit to midi-ize it. rs232 to midi is really only
    a h/w (no s/w ) modification, but the question
    is more of what s/w changes are required to use
    the DL and not another qbus interface, for me...
    
	You have an 11, user SCHAFER?
    
    ron
    
444.20It's PROgrammableDYO780::SCHAFERSir Loin of BeefThu Oct 16 1986 17:108
Re: .19

    I have a PRO350 on indefinite loan, user ROSS.  I guess since that's
    F11 based that it qualifies as an 11 (in spite of P/OS ;^} ).

    So how much does a DLVJ1 run, and how tough is it to mod?

8^)
444.21outa luckJON::ROSSBOZONICSThu Oct 16 1986 21:0816
    
    One of the cheepest, even at DEC prices, but thats
    not all that great for low budget...about $250. Maybe even
    cheeper ordered employee purchase-wise. This has 4 channels
    but I'm afraid that the mods make you dedicate all 4 channels
    to midi. (The bauds become non-DEC-or-anyone). I picked up
    a 'salvaged' board and repaired it. Midwest Systems and other
    DEC USED-BUT-WORKING type places may have one cheep. The ordinary
    DLV11 may not run fast enough to begin with, otherwise it would
    be a cheep choice...
    
    The mods are not too bad! new chrystal basically. Some messiness
    with a cut and a wire or two and viola. 
    
    But a PRO doesnt have a Qbus...
    
444.22Voice editor ...UTRTSC::VBOMMELTue Oct 21 1986 13:394
    For evrybody who is interested, I finished my voice-editor
    written in Decus-c. Its a dedicated voice-editor for the
    bohm expander connected midi.
    
444.23More info on PDP-11 softwareVIKING::RIESFrank W. Ries Jr.Mon Nov 10 1986 19:3638
Sorry I haven't responded to any of the above questions before now, but
I don't access this notes file very often and was expecting to receive
mail on any inquires. The software that I have will run on any Unibus
or Qbus PDP-11 under RT-11, or on the PRO-350 under P/OS. I still need
to do some work on it to run on the PRO-380 since the bit map is
different. All components are written in MACRO-11, and do their I/O
to the "MIDI" port directly to the hardware, they do not use system I/O
requests since this is too slow. The player outputs the MIDI protocal,
so all you need to make the system work is an interface between the
11 and MIDI device to convert from EIA to 5ma current loop at the
31.25kb rate. This I have done in two ways, the simplest involves a
fairly simple box which does the EIA to 5ma conversion (both directions)
and supplies a clock back to the serial interface on the 11 to make it
run at 31.25kb. For this to work, the interface used on the 11 must have
provisions for an external TTL baud rate clock. Nearly all DEC serial
line units have such in input. Unfortunatly, the PRO-350/380 wants
an EIA level clock, which will not go this high. You can go inside
the PRO, and loop around the EIA level converter for the clock line
and remove a capacitor and then this should work. The other method
is to build a box which contains a microprocessor, some buffer memory
and the appropriate conversion logic which will connect to any serial
line, at any baud rate and output the data to the midi port at 31.25kb.
This is a rather extreme approach, but there are some of these such
boxes available from Lee Davy at SPCTRM::DAVY. You can ask him where
they came from. This box has the problem however of running only up
to 9600 baud, so for some really serious stuff it has problems. If
all you want to do is play around, its fine. As for the software,
only the compiler and player are available at this time, and only
in binary form. It should not require any mods, so this should be
fine. I do supply a source module which lets you define what the
hardware register addresses are for the serial interface you are
using for the non-PRO version. The PRO version always uses the
printer port. If any one is interested in the software, or wants
more information, please send me mail at:
	{VIKING,MOSAIC,RAINBO,COLORS}::RIES

Frank Ries

444.24Midi-evil systems architecture...SKIVT::HEARNTimeshare - Life's a BATCH anywayFri Sep 04 1987 11:5517
    
    
    	Has there been any more "activity" in this area?  I've just
    	found this note, and having a PRO350 running RT11, it's
    	gotten my interest up. 
    
    	Does it seem feasible to use a 350 or is it better to just
    	sell the DEC stuff and buy a MAC (although I really do like
    	the PRO).
    
    	Anyway to "generate" some interest in this area?  Has anyone
    	been able to "overcome" the Non Q-bus limitations?
    
    	Thoughts would be appreciated...
    
    
    						Rich
444.25BARNUM::RHODESFri Sep 04 1987 12:4515
I tried writing a realtime multitasking executive for the Pro back at
school.  I failed due to the fact that the operating system is very
"possessive".  It wouldn't let me get into kernal mode.  I fought with
it for about two weeks before I finally gave up and did my project on
an LSI-11 (RT of course hands you ownership on a silver platter).

Given this, I'd say:

	1.  You can do real time processing (MIDI) on the Pro and it's a
		bitch, or,

	2.  You can't do real time processing (MIDI) on the Pro.

Todd.

444.26You've got to have energy to burn.MAY20::BAILEYUltrix--Live Free and DieFri Sep 04 1987 14:4920
    Unless you can hack, and hack, and hack until you sweat blood and
    then hack some more, you are probably better off getting something
    else (A MAC or an ST) for MIDI stuff.
    
    Personally, if TOS (the ST operating system) were more like RT-11
    I think it would be much easier to write MIDI software.  RT is really
    primo for writing real-time stuff.  But the largest effort in writing
    a decent piece of MIDI software is the user interface.  Interfaces just
    take large quantities of elbow grease to craft.  That's why I have a lot
    of MIDI hacks, and no MIDI programs.
    
    The other problems are:
        1) for sequencer applications, 1/60 of a second isn't good enough
    		timing resolution.  You need a timer peripheral.
        2) The PRO screen sucks up a lot of CPU (I'm told).  You won't
    		have as many computes as you might think.
                           
    
    I considered using my 11 for MIDI stuff, and then I decided to buy
    an ST (of course I got it for other reasons also).
444.27uk. gimme a real machineJON::ROSSsynapses unite ! Wed Sep 09 1987 19:0924
    
    I just 'finished' a chunk of code that will accept midi input
    and dump it into an RT file. Motivation was an alternative to
    tape for storing the up-to 128K qx5 sequencer system excl. dump.
    Also plan to save/load program change or voice info. on other units.
    
    At first I thought that RT might only keep up with midi input using
    device VM: (extended memory). Seems, however, that its real time
    enough to keep up with midi dumps (even biggies) direct to RD51
    or RD52. Now sure, I have a circular buffer of 20 blocks to equalize
    input and output rates, but I set this to 1 block and the thing
    still flew! Im a diehard RT fan. Anyway, then I tried RX50 floppy.
    (surely this would kick off the overrun error...) No problem, er,
    but the buffer had to be > 1. block. Oh, and sure, RT still will
    intercept the ^C if typed.
    
    Hrdware was an 11/23 and rqdx1 controller. Must admit I turn off
    the clock during the transfer, but havent tried it with it on...
    
    So direct-to-disk midi dumps are here. Hang in there. Micro-11's
    are dropping in price...but then, you gotta like to do software...
    
    ron
    
444.28Nobody does it better...ACORN::BAILEYSteph BaileyWed Sep 09 1987 20:5510
    I would use my 11, except that I HATE all forms of serial interfaces.
    Opto-isolators and charge-pumps and collision detects +12, -12.
    If it ain't TTL level I'd rather leave it alone.
    
    And where's your whiz-bang graphical interface.  Huh?  Huh???
    
    My compliments
    
    Steph