From: Christian S. <sch...@so...> - 2004-12-05 13:14:24
|
Es geschah am Sonntag 05 Dezember 2004 14:00 als Andreas Persson schrieb: > Christian Schoenebeck wrote: > > Es geschah am Samstag 04 Dezember 2004 15:55 als Andreas Persson schrieb: > >>If a key is pressed, released and then pressed again before the release > >>of the first note has finished, the release of the first note is > >>canceled - the first note continues to play until the second note is > >>released. Why is that? Is it intentional? It doesn't seem like GS > >>behaves like that. > > > > Yes, that's in fact intentional. Because it's a more natural behaviour. > > If you release a key on a real piano and e.g. press the sustain pedal > > immediately after that it would also first damp the wave but then when > > the pedal is pressed would let the wave fade out slowly at the reached > > amplitude level when the pedal was pressed. > > Yes, this is the "Piano release mode" in GS, and I agree it's a nice > feature. But it is handled fine in Engine::ProcessControllChange. The > code in ProcessNoteOn is not needed for this if I understand things > correctly? ProcessControlChange() only handles the sustain pedal case. ProcessNoteOn() handles the case when the same key was triggered instantly after releasing the same key. So this make sense. > For me, the ProcessNoteOn code only seems to eat polyphony and make the > second note unnecessarily loud. Again, we can make that a compile time option if you like. CU Christian |