On December 9, 2012 08:46:36 PM Robert Jonsson wrote:
> Hi guys,
> >---------- Forwarded message ----------
> >From: SourceForge.net <noreply@...>
> >Date: 2012/12/9
> >Subject: [ lmuse-Bugs-3594221 ] simpledrums doesn't play consecutive notes
> >etc. To: "SourceForge.net" <noreply@...>
> >Bugs item #3594221, was opened at 2012-12-09 01:03
> >Summary: simpledrums doesn't play consecutive notes etc.
> >Initial Comment:
> >I suspect this issue could have the same cause as whatever is stopping
> >Euphoria from working properly. The problem is that if you have multiple
> >consecutive notes on a simpledrums track, only the first note (sample) in
> >any block of consecutive notes gets played.
> I had a look at this and if two notes are placed directly after each
> other, with the note-off snap:ed to the same place as the second note
> the noteoff will be done after the noteon.
> Here's a trace out:
> MidiOut: Synth: <SimpleDrums-0>: time:485105038 port:4 chan:1 NoteOn
> c1(0x24) 70 MidiOut: Synth: <SimpleDrums-0>: time:485125710 port:4 chan:1
> NoteOn c1(0x24) 70 MidiOut: Synth: <SimpleDrums-0>: time:485125710 port:4
> chan:1 NoteOn c1(0x24) 0 MidiOut: Synth: <SimpleDrums-0>: time:0 port:4
> chan:1 NoteOn c1(0x24) 0
> The third line, the noteoff, is really related to the first noteon.
> I think it should have been scheduled before the Noteon but maybe
> there are other circumstances to consider?
> Could this be due to a recent change or has it always been like this?
> I can't see that other synths are affected so maybe this is a case the
> synth should take care of?
Thanks for the pass, been neglecting that list for a few days.
Try it now:
- Fix VST names: Use filename if effect name or product name blank.
- Fix bug 3594221: End-to-end midi notes don't retrigger. My bad.
In my MEvent::sortingWeight(): Note-ons with zero velocity are
Yes, it was broken recently with my sorting weight thingy.
NOTE: For this to be, or ever have been, correct we need to ensure
in a few key places that the length of a note is never allowed to
be zero, else that's a note-on and off at the same time and
MPEventList will put the note-on last and will have no corresponding
note-off thus a stuck note.
The places I think some are already thoughtfully taken care of,
one example to check is the piano roll note length - is it allowed to
be zero? Tested: Thankfully someone enforced it to 1.
Another would be in the function buildMidiEventList.
Now, about /overlapping/ notes: I tested several synths and
incredibly (hearteningly ?) Deicsonze was the only one that
handled note situations like this:
X X X X X XYXYXYXYXYXY Y Y Y Y Y Y Y
X X X X X XYXYXYXYXYXY X X X X X X X
Amazing but it must be awfully arbitrary since it could not possibly
know which note-off goes with which note-on.
It's a real tricky subject, one that I think Dennis or the LMS plugins guy
brought up, and I kind of jokingly said maybe we ought to 'bump' other
notes out of the way when moving notes around.
One really wants to allow this kind of thing for ease of editing while
moving notes around - you know move this one here on top of this one
then move the other one somewhere else kind of thing.
(In case that person missed my response in the noise, we have translucent
note drawing, it may have been a bit hard to notice at the time so I
recently lowered the default setting a bit. Still slightly hard to notice
without vertical expansion.)
Anyway I agree that only MusE knows for sure which note-off belongs
with which note-on and that only MusE has a chance to correct it
before it gets out to the device.
I'm thinking it involves arbitrary blocking of note-ons.
For the extreme example two notes same length on top of each other
but with different velocities: Who do we block and who do we allow?
Easy? Send only one note-on and one-note off and SUM the velocities?
But then there's note-offs that come after each other...
And then, what of synths that actually /support/ this kind of
two note-ons in a row stuff? Deicsonze starts a new oscillator
and you'll notice depending on where the second note is placed,
the waves may CONSTRUCTIVELY or DESTRUCTIVELY sum.
i.e. it /can/ go to twice the volume - or very little volume.
Of course, that's a synth function and could (maybe already) be made
to 'sync up' the oscillators starting...
Hm, let us ponder some more. I hope there's a logical way to
deal with this. More input welcome on this of course.
> I saw the report for Euphoria but don't have it installed so haven't
And speaking of the LMS plugins guy, bada boom boom, hey if
you're out there Euphoria and pretty much the rest of the suite
crashes with illegal instruction. I compiled it myself.
I'd say usually that's either 32/64 bit stuff or AMD/Intel stuff.
At the moment I'm running AMD64 box, but with 32-bit Lubuntu.
I built the deb package.
Later the package manager (Synaptic) said it's a broken package and
removed it on me!
> >Within the simpledrums window between the channel on/off and note on/off
> >check boxes there are supposed 'Volume' buttons that don't do anything. I
> >think they should be rotary dials but they're not.
> Dan, could you supply a screenshot, for me it's a slider and it works fine.
> >There is a unneeded slider on the right that doesn't slide anything.
All features tested OK here channel volume OK.
And right-side master volume worked, live in real-time too.
You guys getting this multiple annoying terminal message with SimpleSynth?
QGradient::setColorAt: Color position must be specified in the range 0 to 1
I tried to look before but didn't have much time.
> Master volume, also works here, I think we'll need more info.
> >Under the Synth -> MESS window it is called SimpleSynth but its 'about'
> >button says its called SimpleDrums which I think is a better name. I think
> >it'd be better renamed to SimpleDrums in the menus as I think its
> >misleading to call it a 'synth'.
> Yeah, not sure when it switched name, it used to be called SimpleDrums.
> As for being a synth... it doesn't do synthesis but it sure is a synth
> as I would use the term. Still I think it should be called SimpleDrums
> as drum-sampler was the purpose of the synth.
> Changing the name breaks backwards compatibility though but I think
> I'll change it anyway.