Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Enderborg <pme@ufh.se>
To: "alsa-devel@lists.sourceforge.net" <alsa-devel@lists.sourceforge.net>
Subject: Re: Rawmidi bug or missed feature?
Date: Sat, 02 Mar 2002 19:36:16 +0100	[thread overview]
Message-ID: <3C811BA0.633E219D@ufh.se> (raw)
In-Reply-To: 15489.4604.699052.853933@elf2.elf.org

Roger E Critchlow Jr wrote:

> Peter Enderborg writes:
>  > Jaroslav Kysela wrote:
>  >
>  > > On Fri, 1 Mar 2002, Peter Enderborg wrote:
>  > >
>  > > > Paul Davis wrote:
>  > > >
>  > > > > >Yes! And the device that is using running status is alsa rawmidi device.
>  > > > >
>  > > > > What makes you think that? AFAIK, the raw MIDI device code does no
>  > > > > parsing of MIDI data at all ...
>  > > >
>  > > > Parsing? It sends raw midi on a stream. That stream is _from_ alsa seq.
>  > > > It is doing the bandwith optimize by it self. I do the parsing.
>  > >
>  > > Ok, please, specify your problem in a more detailed way. At least, we need
>  > > to know about midi paths in your applications and what sequencer clients
>  > > are involved to help you. And yes, there could be a problem with running
>  > > status, because our converts work with it.
>  > >
>  >
>  > I don't know how to be more specific. I have a program that listen to a raw midi
>  >
>  > stream generated by alsa. But I try.
>  >
>  > I have a midisport 8x8. It have a serial port. I have a computer linux. Alsa
>  > don't have
>  > driver for the unit. So I have writen a daemon that open the snd-card-virmidi
>  > with
>  > snd_rawmidi_open(). I have also writen a processor that handels event on a
>  > sequencer level
>  > to interface my Roland MCR-8 with varius applications, synths. Roland MCR-8 a
>  > "multicontroler"
>  > but it is not progammable. It have 9 knobs,9 slides a lot of buttons an a dialer
>  > wheel.
>  > But not all apps have the same mapping of events.  So the processor mapps them i
>  > the way I like
>  > to have them. But it is only control messages.  On the daemon side that
>  > interfaces to the
>  > raw midi stream in encapsulate them in to midimans format and sent them over the
>  > serial port
>  > to the unit. The unit is decapsulate them and send it to the right midi port.
>  > But when I open the
>  > virmidi device in raw mode. I is already assuming that I know what was the last
>  > command. In my case
>  > a control message.  Is this clear enougth? I know that this a very common midi
>  > problem, but it should not have to be a problem within the same machine.
>  >
>
> I think you want to do this differently.
>
> Your program for patching the midisport into the alsa sequencer
> should connect to the midisport driver on one side and the sequencer
> event interface on the other side and use the alsa/snd_midi_event.h
> routines to translate between the two.
>
> So, as you read raw midi bytes from the midisport driver, use
>
>     /* encode from byte stream -
>        return number of written bytes if success */
>     long snd_midi_event_encode(snd_midi_event_t *dev,
>                                unsigned char *buf,
>                                long count,
>                                snd_seq_event_t *ev);
>
> to encode the incoming byte stream into snd_seq_event_t and send the
> events the sequencer using the event interface.
>
> As you receive events from the sequencer, use
>
>    /* decode from event to bytes -
>       return number of written bytes if success */
>    long snd_midi_event_decode(snd_midi_event_t *dev,
>                               unsigned char *buf,
>                               long count,
>                               snd_seq_event_t *ev);
>
> to decode the incoming event stream into a midi byte stream which you
> can then write() to the midisport.
>
> You will need to send a reset on the midisport side when you first
> connect to get the snd_midi_event_t state synchronized to the incoming
> running status.
>
> But you won't see any running status from the alsa side because the
> event interface fully identifies each event.  snd_midi_event_decode
> will use running status on the decode side, but the stream generated
> will start from the first event decoded.
>
> Does this help?
>

Well. I guess it do. I will give it a try. It should work.  What about non midi
snd_seq_event_t.
The internal alsa stuff, like subscribe?

>
> -- rec --
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/alsa-devel

--
foo!




_______________________________________________
Alsa-devel mailing list
Alsa-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-devel

  reply	other threads:[~2002-03-02 18:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-28 22:56 Rawmidi bug or missed feature? Peter Enderborg
2002-03-01 13:45 ` Paul Davis
2002-03-01 14:58   ` Ricardo Colon
2002-03-01 19:22   ` Peter Enderborg
2002-03-01 20:30     ` Paul Davis
2002-03-01 21:06       ` Peter Enderborg
2002-03-01 21:31         ` Paul Davis
2002-03-01 22:18           ` Peter Enderborg
2002-03-02 11:14             ` Jaroslav Kysela
2002-03-02 13:31               ` Peter Enderborg
2002-03-02 17:11                 ` Paul Davis
2002-03-02 17:45                   ` Peter Enderborg
2002-03-02 18:01                     ` Paul Davis
2002-03-02 18:37                       ` Peter Enderborg
2002-03-02 18:58                         ` Paul Davis
2002-03-02 19:15                           ` Peter Enderborg
2002-03-02 19:31                             ` Paul Davis
2002-03-02 22:22                               ` ALSA sequencer in user land (was: Rawmidi bug or missed feature?) Frank van de Pol
2002-03-02 17:55                                 ` Paul Davis
2002-03-03  0:34                                   ` Frank van de Pol
2002-03-02 20:18                                     ` Paul Davis
2002-03-03  4:13                                       ` CAPs Bob Ham
2002-03-02 17:55                 ` Rawmidi bug or missed feature? Roger E Critchlow Jr
2002-03-02 18:36                   ` Peter Enderborg [this message]
2002-03-02 20:43                     ` Roger E Critchlow Jr
2002-03-02 22:20                       ` Peter Enderborg
2002-03-01 21:32         ` Paul Davis
2002-03-02 10:28 ` Jaroslav Kysela

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3C811BA0.633E219D@ufh.se \
    --to=pme@ufh.se \
    --cc=alsa-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox