From alsa-devel-owner@alsa.jcu.cz  Sat Feb  6 00:55:29 1999
Received: from post.mail.nl.demon.net (post-10.mail.nl.demon.net [194.159.73.20])
	by marvin.jcu.cz (8.9.1a/8.9.1) with ESMTP id AAA05064
	for <alsa-devel@alsa.jcu.cz>; Sat, 6 Feb 1999 00:53:25 +0100
Received: from [212.238.75.184] (helo=obelix.vande-pol.demon.nl)
	by post.mail.nl.demon.net with esmtp (Exim 2.02 #1)
	id 108v3q-00067F-00; Fri, 5 Feb 1999 23:53:23 +0000
Received: (from frank@localhost)
	by obelix.vande-pol.demon.nl (8.8.7/8.8.7) id AAA16090;
	Sat, 6 Feb 1999 00:39:10 +0100
From: Frank van de Pol <frank@vande-pol.demon.nl>
Message-Id: <199902052339.AAA16090@obelix.vande-pol.demon.nl>
Subject: Re: Writing Article Re: Linux audio;  also have new hardware support
To: alsa-devel@alsa.jcu.cz
Date: Sat, 6 Feb 1999 00:39:09 +0100 (MET)
Cc: emerson@hayseed.net
In-Reply-To: <Pine.LNX.4.04.9902031621390.19276-100000@mergatroid.hayseed.net> from "R Pickett" at Feb 3, 99 04:43:47 pm
Content-Type: text
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list

R Pickett wrote:
> 
> On Wed, 3 Feb 1999, Jaroslav Kysela wrote:
> 
> 
> > There isn't any problem support for example special profi MIDI hardware
> > which have 16 MIDI outputs and drive this hardware which could look as one
> > synthesizator with 256 MIDI channels for an application.
> 
> Most pro MIDI software will want the opposite of this kind of thing -- instead
> of one big conglomerated mess of channels, the ability to access each MIDI
> port separately is a must.  Most Mac MIDI software goes even farther, so that
> if you have a DX7 and a Proteus on one MIDI port, you can address each of
> those instruments' channels separately.  Most of that is handled by user-space
> stuff, though, and might not be directly related to ALSA drivers proper.
> 
> But, conglomerating a large MIDI interface into one device with a huge mess of
> channels is a Very Bad Idea, IMHO.  Consider the Opcode Studio V, which has 16
> ins and outs, AND can be daisy chained several deep, for _thousands_ of MIDI
> channels.
> 

I guess there is some kind of misunderstanding on the sequencer's
port/channel concept. I think that Jaroslav actually meant to say that this
MIDI board from his examples has 16 ports. This will give a total of 256
channels (of course). In the Alsa sequencer this device would show up as 16
ports on some (most likely) kernel client. It would never show as ONE port
with a ZILLION channels.

All addressing within ALSA sequencer are:

	<queue>.<client>.<port>.<channel>

<queue> determines which timing queue to be used (for asynchronous events or
multi user sequencer).

<client> determines which client sends/receives the message. A client can be
an application, or a device driver.

<port> is one of the "MIDI" ports of the client. (0..255)

<channel> is the MIDI channel (0..15)

This 'address space' allows us to address up to about a million distinct
MIDI channels. For example a driver for the Opcode Studio V you mentioned could
address a whole stack of 16 of those devices, giving a total of 256 midi
ports (=4096 channels!!!).



The channel / device management like on Apple Macs you mentioned in your
example is indeed very important for pro work, especially if one has a
complex or big MIDI configuration. This is application specific work, but
some kind of standard or a library might help here. Unfortunate these kind
of stuff is almost nonexisting for other platforms than Apple... For the
time being a end-user application (like a sequencer app) wil have to provide
facilities for that. Simply 'Naming" individual channels might already be
enough for most users.


Regards,
Frank.


+---- --- -- -  -   -    - 
|Frank van de Pol                  -o)
|Frank@vande-pol.demon.nl          /\\
|                                 _\_v
|Linux - Why use Windows, since there is a door?
|
|ALSA Sequencer: http://www.vande-pol.demon.nl/alsa/

