Hi @all, hi Tim,
First a happy new year to you all.
I just compiled and installed the latest git version of Muse 3.0 pre-
release onto my system and played all MusE songs which I created so far
since last last summer - no error occured while playing them.
Regarding these new sliders for adjusting the volume in the tracks and
the main volume of a song - they are nice, they are much better/easier
to handle with the mouse than the old volume knobs. Thanks, Tim.
Regards,
Jens
Am Donnerstag, 31. Dezember 2015 schrieb Andrew Deryabin:
> Hi Tim,
>
> Thanks for so quick implementation!
>
> I can't make tests with hardware instruments because simply don't
> have any. But I tested with all my songs with soft synths and can
> say, that everything works fine!
>
> 31.12.2015 04:37, Tim E. Real пишет:
> > Hi. Just pushed some more master stuff regarding note-offs
> >
> > and zero-velocity note ons and so on.
> >
> > Hope it's the right thing (TM) !
> >
> > We kept Andrew's patch and moved forward.
> >
> > MusE's instrument definition files (.idf) now have this attribute:
> > NoteOffMode
> >
> > like this:
> > <MidiInstrument name="Instrument-1" NoteOffMode="1">
> >
> > NoteOffMode has three possible values:
> >
> > 0:
> > The instrument recognizes note-off messages.
> > MusE will never transmit a zero-velocity note-on message to it,
> >
> > they will be converted to zero-velocity note-offs.
> >
> > The instrument might also recognize zero-velocity note-ons as
> >
> > note-offs, so you can also use option 2 below, to save midi
> > interface bandwidth but discarding note-off velocity.
> >
> > 1:
> > The instrument does not recognize note-off messages,
> >
> > nor does it recognize zero-velocity note-ons as note-offs.
> >
> > MusE will transmit neither to the instrument. Note-ons only.
> >
> > 2:
> > The instrument does not recognize note-off messages,
> >
> > but does recognize zero-velocity note-ons as note-offs,
> > saving bandwidth but discarding note-off velocity.
> >
> > MusE will not transmit note-off messages to the instrument,
> >
> > but will convert them to zero-velocity note-ons.
> >
> > The instrument might also recognize note-off messages,
> >
> > so you can use option 0 above, to utilize note-off velocity
> > but increasing midi interface bandwidth.
> >
> > If unspecified, the default is 0.
> >
> >
> > That was the output side. To the input side now:
> >
> > In all our midi drivers or sources of midi input (that's just
> >
> > Jack and ALSA currently, but there is work on accepting
> > midi sent /from/ synths, in midi.cpp), MusE automatically
> > converts /all/ incoming zero-velocity note-on midi messages
> > to zero-velocity note-off messages, internally.
> >
> > Thus MusE is a midi application that recognizes both
> >
> > note-off messages /and/ zero-velocity note-on messages.
> >
> > No part of MusE should ever set an instance of class Event's
> >
> > 'velo' (on velocity) to zero.
> >
> > It is an error. Unlike real decoded midi messages,
> >
> > our class Event already holds /both/ on and off velocity,
> > so zero on velocity is an error.
> >
> > Error messages have been placed throughout, all the way
> >
> > up to the drivers, so let us know if you see one, because
> > I'm certain there'll be a few more fixes to spot.
> >
> > I had to change quite a few places. I left these 'markers'
> >
> > for you to view: // REMOVE Tim. Noteoff.
> >
> > Have a quick look at what was involved before I remove them,
> >
> > so you understand how to deal with these notes, especially
> > in the context of these fixes and new setting. If you spot
> > something questionable let me know.
> >
> > Examples:
> > * You cannot set a pianoroll or drum note's on velocity to zero.
> > * The controller graph velocity bars will not go to zero.
> > * Clicking the piano or drum list will not sound a zero-velocity
> > note.
> >
> > I must mention this: A note whose resultant velocity is zero
> >
> > /after/ applying such things as track velocity and compression,
> > or drum list note volume, will /not/ be sent to the driver for
> > sounding.
> >
> > In Audio::collectEvents() for example:
> > velo += track->velocity;
> > velo = (velo * track->compression) / 100;
> >
> > the note is now /discarded/ if the resulting velocity is zero.
> >
> > So, class MidiInstrument has a new enum:
> > enum NoteOffMode { NoteOffAll=0, NoteOffNone,
> > NoteOffConvertToZVNoteOn };
> >
> > and new member _noteOffMode. With setNoteOffMode(), virtual
> > noteOffMode().
> >
> > Note that synths (SynthI and family) are a MidiInstrument but
> > cannot
> >
> > be edited by the user. So they are free to override the getter
> > and return what they want. For now I've set them all to return
> > option 0 (use note offs) via SynthI::noteOffMode().
> >
> > I've fixed all the Synths to properly react to the setting, so
> > they're
> >
> > ready for it if you want to change it.
> >
> > Lastly, there is one more step:
> >
> > See all those built-in instrument .idf files in MusE?
> > We want to update them with the correct new setting.
> >
> > That requires examining the Midi Implementation Chart
> >
> > of each one.
> >
> > I may put out a general call for help from instrument owners
> >
> > on LAU because it takes time to research them all,
> >
> > and I hit a puzzle on the very first one:
> > Access Virus: It's a synthesizer but Chart says /no/ note-offs,
> >
> > but does not clarify if zero-velocity note-ons are used, most
> > makers clarify that, so do I assume that being a synth, it does?
> >
> > I mean, some drum synths /don't/ use them at all.
> >
> > I looked at dozens of charts on google, and ones I own.
> > I arrived at these fixes and rules.
> >
> > Lemme know if any trouble.
> > Tim.
> >
> >
> > -------------------------------------------------------------------
> > ----------- _______________________________________________
> > Lmuse-developer mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/lmuse-developer
------------------------------------------------------------------------------
_______________________________________________
Lmuse-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmuse-developer