issue19

EMUSIC-L Digest                                      Volume 61, Issue 19

This issue's topics:
	
	Makin a sequencer (4 messages)

Your EMUSIC-L Digest moderator is Joe McMahon .
You may subscribe to EMUSIC-L by sending mail to listserv@american.edu with 
the line "SUB EMUSIC-L your name" as the text.
 
The EMUSIC-L archive is a service of SunSite (sunsite.unc.edu) at the 
University of North Carolina.
------------------------------------------------------------------------
Date:         Wed, 23 Feb 1994 14:17:38 -0500
From:         TIM 
Subject:      Makin a sequencer

Hi all,

I'm attempting to write a midi sequencer as my senior project and I've
got some questions on which approach I should take.

The interface I have (some Music Quest thing) has two "modes," intelligent
and UART mode.  Which should I use?  I hear Cakewalk uses the UART mode.
However, I'm not sure I can make an algorithm on my 286 that will not lose
any incoming MIDI data.  On the other hand, I think the intelligent mode is
like the Roland mpu401's intelligent mode which is made for only 8 tracks.
To make a sixteen track sequencer, I'd have to cludge it.

Does anyone have any suggestions on what I should do?
(besides give it up and buy a real one)

Tim Harrison
harrison@depauw.edu

------------------------------
Date:         Wed, 23 Feb 1994 16:48:00 PST
From:         "Rossi, John" 
Subject:      Re: Makin a sequencer

> The interface I have (some Music Quest thing) has two "modes," intelligent
> and UART mode.  Which should I use?  I hear Cakewalk uses the UART mode.
> However, I'm not sure I can make an algorithm on my 286 that will not lose
> any incoming MIDI data.  On the other hand, I think the intelligent mode
is
> like the Roland mpu401's intelligent mode which is made for only 8 tracks.
> To make a sixteen track sequencer, I'd have to cludge it.

[Note - edited to remove inflammatory comments. Responses to comments and not to technical information also
deleted. - JM]

... what mode on a 401 you use depends on what you want to do with the 
interface. While it is true that Cakewalk has used the UART mode since version
4, earlier versions (at least through 2.0) used the intelligent mode.  The mode
of the processor has nothing to do with tracks.  Cakewalk, even when it was
version 1.x allowed 256 tracks (and it was designed for a 4 mHz 8088). 
Additionally, the intelligent mode supports all 16 possible MIDI channels
(which, again, does not have any real relation to tracks except that having
16 tracks among which to spread the channels makes things conceptually
easier).  There is no reason, for example, that you can't have all 16
channels coded into one track (which is what a Standard MIDI File Type 0
is).  So, where you get the idea that there is some 8-track limit to a 401
running in the intielligent mode is beyond me.  The intelligent mode in the
original Roland-401 interface was designed to ease the burden of the
sluggish 8088 uP.  The intelligent mode allowed accurate time stamping of
MIDI events independently of central CPU action.  A 286 machine is plenty
capable of supporting very accurate timing resolution using the UART mode,
however.  My old 10-MHz 286 had no trouble running 64-Track-PC while
implementing a  5-UART MIDI system which supported 80 independent MIDI
channels at 720 PPQ resolution.  To this day, I have yet to see a more
accurate sequencer.  Clearly, 16 channels should not cause a problem for
even the most hacked sequencer you might want to create for a 1-UART MIDI
system.  The basic tradeoff in selecting intelligent from UART modes lies in
the number of channels you want to implement (intelligent mode is limited to
16 by the 401 electronics whereas the UART mode is limited to the number of
UARTS you can satisfy with whatever power your CPU may have.. this number is
close to greater than 32 (512 independent channels) with a reasonably fast
386.  The second tradeoff is in the resolution of the clock stamping of the
system.  The intelligent mode restricts you to 192 ppq while the real mode
is, again, restricted only by speed required for the number of UARTS being
serviced.  While 64-Track PC eventually got up to 900+ ppq, the need for
such high resolutions has been a matter of debate...
------------------------------
Date:         Thu, 24 Feb 1994 18:43:51 -0500
From:         Joe McMahon 
Subject:      Re: Makin a sequencer

>The interface I have (some Music Quest thing) has two "modes," intelligent
>and UART mode.  Which should I use?  I hear Cakewalk uses the UART mode.
>However, I'm not sure I can make an algorithm on my 286 that will not lose
>any incoming MIDI data.  On the other hand, I think the intelligent mode is
>like the Roland mpu401's intelligent mode which is made for only 8 tracks.
>To make a sixteen track sequencer, I'd have to cludge it.

Disregarding spell flames, etc.: sometime back there was an article posted
by a gentleman who recommended that a heap be used to maintain the priority
queue for MIDI events; he also discussed the relative merits of a one-event
vs. two-event (note-on/note-off stored as either one or two entries in the
queue) representation for MIDI events.

If I can scare it up, I'll mail it to you. I might very well have stored it
out on the FTP site. I'll check.  No. Dang. It's somewhere
in the back issues. If I get a chance, I'll look through them. Sorry I
couldn't put a hand right on it.

 --- Joe m.

------------------------------
Date:         Thu, 24 Feb 1994 16:48:25 -0800
From:         Doug Wellington 
Subject:      Re: Makin a sequencer

Joe McMahon wrote:
>Disregarding spell flames, etc.: sometime back there was an article posted
>by a gentleman who recommended that a heap be used to maintain the priority
>queue for MIDI events; he also discussed the relative merits of a one-event
>vs. two-event (note-on/note-off stored as either one or two entries in the
>queue) representation for MIDI events.
>
>If I can scare it up, I'll mail it to you. I might very well have stored it
>out on the FTP site. I'll check.  No. Dang. It's somewhere
>in the back issues. If I get a chance, I'll look through them. Sorry I
>couldn't put a hand right on it.


I got a copy off of the IRCAM FTP site.  Nice article.  I've actually used
that idea in my own sequencer.  There are also many snippets of code at
the other various FTP sites, such as LOUIE.UDEL.EDU, UCSD.EDU, FTP.CS.RUU.NL,
and probably NIC.FUNET.FI as well.

Actually, the fastest and easiest way (but not cheapest) is to just get the
development kit from Music Quest.  As I remember, it costs about $30.  There
is now an MS-Windows version out, but it costs about $75.

If you have any questions, you can email me at doug@arizona.edu.

-Doug Wellington
Music Supply and Repair Service
2710 N. Paseo Tierra Verde
Tucson, AZ 85749 USA
(602) 743-0291   <- new number

------------------------------
End of the EMUSIC-L Digest
******************************