From alsa-devel-owner@alsa.jcu.cz  Tue Apr 21 09:14:44 1998
Received: from entry.jcu.cz (perex@entry.jcu.cz [160.217.1.111])
	by marvin.jcu.cz (8.8.8/8.8.8) with SMTP id JAA14460;
	Tue, 21 Apr 1998 09:14:34 +0200
Date: Tue, 21 Apr 1998 09:14:34 +0200 (MET DST)
From: Jaroslav Kysela <perex@jcu.cz>
To: Antonio Larrosa <antlarr@arrakis.es>
cc: alsa-devel Mailing list <alsa-devel@alsa.jcu.cz>
Subject: Re: Question about sequencer midi
In-Reply-To: <353A21E3.417443B3@arrakis.es>
Message-ID: <Pine.LNX.3.96.980421090148.8841B-100000@entry.jcu.cz>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list

On Sun, 19 Apr 1998, Antonio Larrosa wrote:

> Hi,
> 
> I'm very interested in the alsa project, and would like to help.
> I have an old SB16 (with the ASP/CSP chip that brought the first ones,
> and which is getting bored and bored each passing day :-) ), and a
> Yamaha PSS-790 external synthesizer.
> 
> I have no experience with kernel programming, nor modules, nor
> DSP, nor mixers. But I have experience in Midi programming with OSS
> and much more in other C++ applications.
> So I can help implementing the C++ library to access the alsa api,
> programming example programs, testing, and giving ideas, (if you
> want I can also type some code for the driver, but I would preffer
> not to add bugs to it :-))

We welcome any programmers and libraries are important as driver...

> I will use this my first message in this list by proposing/asking something:
> 
> I have made a midi player (kmid) using the OSS api, and found that
> it is very restricted. When I saw the alsa project I wondered if it
> would have something that imho is very important: Inserting (not just
> adding) midi events in the buffer and deleting events that were sent to
> the buffer but were not played yet.

I assume that good MIDI interface should have two ways to handle events:

1) standard buffered (with using write to device)
2) realtime (which pass event directly, before current write event queue)

> I will explain myself, think of an application that is being playing music
> by adding events to the midi buffer, now the user moves a slider bar to change
> the volume. If the application is using the OSS driver, it can only add
> a volume change event to the buffer, but this event is processed a few seconds
> after the user moved the slider bar !!. Now, if the application uses the alsa
> driver, it can insert the volume change event to play NOW, and then the user
> gets inmediate feedback.

It's not true. OSS driver can handle events directly, too: look for 
SNDCTL_SEQ_OUTOFBAND ioctl. (Only for illustration, I don't like OSS/Lite
sequencer for any use).
 
> I know that midi support has not been fully implemented yet, but have
> you thought about what I've told ?, what do you think about it ?

No MIDI support is implemented at current time, but I'm now working on
raw-midi interface (like /dev/midi0 with OSS, but more enhanced) and after
this I'm planning make some proposals (all ideas are welcome) for MIDI
interface which will use only external devices at first time, but it will
be extended for use with internal onboard synthesizer, too.

If we speak about OSS sequencer: My idea for ALSA driver is separate MIDI
events from synthesizer events to make interfaces more clean. There is two
types of programs: MIDI players/sequencers and module players or programs
for audio effects. Comments?

					Jaroslav

-----
Jaroslav Kysela <perex@jcu.cz>
Academic Computer Centre, University of South Bohemia
Branisovska 31, C. Budejovice, CZ-370 05 Czech Republic


