[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Denemo-devel] reset to channel 0
From: |
Richard Shann |
Subject: |
Re: [Denemo-devel] reset to channel 0 |
Date: |
Tue, 11 Aug 2009 22:15:13 +0100 |
I see one of these
(denemo:26274): libsmf-CRITICAL **: Trying to seek past the end of song.
as the first thing that happens on the first callback from jack at the
start of a song.
I don't think this is new (for denemo with the change described below),
but I don't know what it could be about
Richard
On Tue, 2009-08-11 at 21:05 +0100, Richard Shann wrote:
> As an experiment, I commented out the code I mentioned and placing this
>
> (d-DirectivePut-chord-midibytes "prog" "0xC0 71")
>
> on a note achieves the desired program change on channel 1 (i.e. the
> 0xC0) to program 71.
>
> Incidentally, it is quite ok to mix decimal 71 with hex 0xC0 in this
> way. So, as qsynth said there was an instrument at decimal 71, I used
> this without converting it. The 0xC0 is easier to use for the change
> program channel 1 (with 0xC1 for channel 2 and so on, user-land being
> one step ahead of the actual encoding).
>
> You can't change the channel of a staff without that I write some C code
> for it (like changing tempo or volume, these are done in C). It would
> require defining a specific override, so unless it is something that is
> needed I don't propose to do it.
> Questions:
> * what is a bank (from the MIDI message side that is)?
> * what is a patch (ditto) ?
> * what *is* needed? in denemo MIDI?
> Richard
>
>
> On Tue, 2009-08-11 at 17:09 +0100, Richard Shann wrote:
> > Jeremiah,
> >
> > We are seeing output on channel 0 and channel n when we are trying to
> > send on channel n in jackmidi.c
> > It looks like this code in jackmidi.c is responsible.
> >
> >
> > /* Before sending, reset channel to 0. XXX: Not very pretty. */
> > assert(event->midi_buffer_length >= 1);
> > tmp_status = event->midi_buffer[0];
> > if (event->midi_buffer[0] >= 0x80 && event->midi_buffer[0] <=
> > 0xEF)
> > event->midi_buffer[0] &= 0xF0;
> > memcpy(buffer, event->midi_buffer, event->midi_buffer_length);
> > event->midi_buffer[0] = tmp_status;
> >
> > Can you say what this was all about?
> > Richard
> >
> >
> >
> >
> > _______________________________________________
> > Denemo-devel mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/denemo-devel
>
>
>
> _______________________________________________
> Denemo-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/denemo-devel