Old 08-17-2016, 07:37 AM   #1
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default MIDI overdub: infinite notelength bugs (FIXED)

6+ report confirmations

one aspect of this bug has been fixed in a recent pre but the others still exist as described.

this bug was discovered by snooks in the "Drum Machine Edit script" thread in the JS/Reascript forums (http://forum.cockos.com/showthread.php?t=175297). i'll summarize his findings and provide licecaps.



Reproduction:
1- Set a short time selection to loop.
2- create a midi item to fit that time selection
3- overdub arbitrary notes. make sure to hold a note past the end of the loop.

ISSUE:* additional note ons are recorded at the beginning of the loop.

ISSUE: the notes extending beyond the boundary have an end position before the start position.

ISSUE: in overdub mode, REAPER assumes midi notes have infinite length until it receives a NOTEOFF. this is not the case in other record modes. this is perhaps the root of all other described behaviors? see more on this issue here: http://forum.cockos.com/showthread.php?t=176552 -- desired behavior would be that notes should exist up til play cursor and, in the case of a looped overdub recording, drop a noteoff where the play cursor WOULD BE if the user was not looping.

* regarding the first issue, i can see/agree that this is useful behavior AS OPTION, but i would think that the desired behavior would be that the notes last as long as they are played and end as such, rather than assuming that additional noteons are desired.

Quote:
Originally Posted by snooks
[the] general bug here is that when notes like these exist, extending the unlooped item extends the note indefinitely. That's definitely not what was recorded, so it's defo a bug. Scripts not being able to do anything with these notes is just another symptom of the issue.

I think not recording the notes at the beginning of the loop and leaving the ends of the notes beyond the item boundary would be the way forward too.

The only thing that sets the end position of the note correctly is touching the note in the MIDI editor, you don't need to move it. Trying to 'touch' the note via a script doesn't work, it deletes the notes.

Calling MIDI_Sort also deletes the notes, maybe because it does that with invalid notes. Unless there's anything anyone can think about I think the solution lies with the devs perhaps making MIDI_Sort check for end positions of 0 PPQ for notes that start after that time and doing whatever the MIDI editor does when you touch one of the notes.
here is a another gif showing the issue as it pertains to snooks' "Drum Machine Edit" script. in this script, users are able to selectively delete notes by triggering the script, holding the notes they want to delete, and then turning off the script to return to normal operations. these "end-before-they-start" notes confuse the script and make it hard if not impossible to use when loop recording. see that the last notes are never deleted, because they have no known noteoff. big problem.



thank you for your time
the crab
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.

Last edited by mccrabney; 09-18-2016 at 10:39 AM.
mccrabney is offline   Reply With Quote
Old 08-17-2016, 11:14 AM   #2
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

additional note concerning this issue:

if you hit STOP before NOTEOFF while in overdub mode, REAPER believes your note is infinite. it will continue for as long as you extend the midi item. desired behavior would be for a noteoff to be inserted at moment of STOP in the event that a NOTEOFF was not received beforehand.

likewise, if you have a note in an item and then overdub the same note, you'd better be sure to release this note before the NOTEON of the next --- otherwise you're stuck with a trailing infinite duration note as described elsewhere in this thread.

__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.

Last edited by mccrabney; 08-17-2016 at 11:21 AM.
mccrabney is offline   Reply With Quote
Old 08-17-2016, 02:35 PM   #3
snooks
Human being with feelings
 
Join Date: Sep 2015
Posts: 1,359
Default

Very thorough bug reporting, nothing to add except an obvious +1.
snooks is offline   Reply With Quote
Old 08-18-2016, 11:46 AM   #4
mirceablue
Human being with feelings
 
Join Date: Apr 2008
Location: Brasov Romania
Posts: 111
Default midi overdub bug

Yes I get this even when overdub and play the same notes. The strange part is that they show only in the midi editor in the main arranger view they are invisible and appear only if you move them up or down.

See the licecap.




Last edited by mirceablue; 08-18-2016 at 12:20 PM.
mirceablue is offline   Reply With Quote
Old 08-26-2016, 12:30 AM   #5
RobU
Human being with feelings
 
RobU's Avatar
 
Join Date: Sep 2009
Location: R'lyeh
Posts: 524
Default

Confirmed on Win10 x64, Reaper 5.23 x64

And good bug hunting, this particular bug bites regularly but I couldn't figure out what was going on.
__________________
Hard work never killed anybody, but why take a chance?
~Edgar Bergen
RobU is online now   Reply With Quote
Old 08-26-2016, 07:24 AM   #6
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

thanks. this is definitely the Madagascar hissing cockroach of bugs for me. i need to do more testing in other midi modes to confirm that it only shows up in overdub mode, which would explain why other people haven't banged the door down already.
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.
mccrabney is offline   Reply With Quote
Old 08-26-2016, 08:58 AM   #7
Tod
Human being with feelings
 
Tod's Avatar
 
Join Date: Jan 2010
Posts: 10,290
Default

You know I'm with you mccrabney.

This ended up happening to me yesterday at least 4 times, maybe 5 times.

At least twice it happened when there were no other notes beyond the stop point. That's not so bad, because you can either cut the note and delete the part you don't want or simple delete and replace it.

On the other hand, if there other like notes beyond the stop point, there is no other option but to hit Ctrl-Z.
Tod is offline   Reply With Quote
Old 08-29-2016, 02:34 PM   #8
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: Not Lowell
Posts: 2,573
Default

Dear GOD this is annoying. I didn't realize THIS was the cause, never knew that! This whole time. WOW. AJHSGJAHGS*&^TS*T&!^&%!$@%$#@!~
__________________
47.8% of statistics are made up.
lowellben is online now   Reply With Quote
Old 08-29-2016, 03:26 PM   #9
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 15,219
Default

Quote:
Originally Posted by Tod View Post
You know I'm with you mccrabney.

This ended up happening to me yesterday at least 4 times, maybe 5 times.

At least twice it happened when there were no other notes beyond the stop point. That's not so bad, because you can either cut the note and delete the part you don't want or simple delete and replace it.

On the other hand, if there other like notes beyond the stop point, there is no other option but to hit Ctrl-Z.
event list editor?
__________________
Today is the anniversary of the death of the famous Irish inventor, Professor Patrick Pending. Not a lot of people know that....
ivansc is offline   Reply With Quote
Old 08-29-2016, 04:16 PM   #10
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 10,160
Default

A potential fix for this is being worked on, it will likely show up in the next pre-release series (5.25 or so)
Justin is offline   Reply With Quote
Old 08-29-2016, 05:02 PM   #11
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

thanks, i will keep an eye out.
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.
mccrabney is offline   Reply With Quote
Old 08-30-2016, 03:34 PM   #12
Tod
Human being with feelings
 
Tod's Avatar
 
Join Date: Jan 2010
Posts: 10,290
Default

Quote:
Originally Posted by Justin View Post
A potential fix for this is being worked on, it will likely show up in the next pre-release series (5.25 or so)
Thanks Justin, that would be great.
Tod is offline   Reply With Quote
Old 09-12-2016, 01:53 PM   #13
mirceablue
Human being with feelings
 
Join Date: Apr 2008
Location: Brasov Romania
Posts: 111
Default

It looks like is fixed in 5.25 pre6. Can everybody confirm ?
mirceablue is offline   Reply With Quote
Old 09-18-2016, 08:25 AM   #14
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

one issue was fixed, but not the rest. infinite notelengths still appear all the time while recording in midi overdub mode.

note lengths need to be tied to play cursor rather than infinity.
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.

Last edited by mccrabney; 09-18-2016 at 08:31 AM.
mccrabney is offline   Reply With Quote
Old 09-18-2016, 08:38 AM   #15
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 10,160
Default

Quote:
Originally Posted by mccrabney View Post
one issue was fixed, but not the rest. infinite notelengths still appear all the time while recording in midi overdub mode.

note lengths need to be tied to play cursor rather than infinity.
They will appear temporarily while recording, by design, but they should be ended at the correct position when recording stops.
Justin is offline   Reply With Quote
Old 09-18-2016, 09:05 AM   #16
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

thanks for the clarification. behavior has improved a lot, for single notes the issue is resolved i think. will continue to test.

i'm still having issues with chords and "rollover" notes and the "DM select" script that deals with these notes that "end before they start." it's possible that this issue is in the script rather than REAPER's midi editor this time, but i cannot tell.



steps:
1- record a chord. in a looped time selection
2- hold chord over loop so that new note ons are recorded*
3- trigger snooks' "DM delete/select" script and delete the noteons at loop start
4- issue: delete is incomplete and you end up with infinite notelengths
5- note: This only happens with chords. single notes are deleted fine.

*what i need is an option to prevent held notes from creating new note ons at the beginning of the loop and rather allow the note's duration to extend past the time selection end.
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.
mccrabney is offline   Reply With Quote
Old 09-18-2016, 09:06 AM   #17
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

Quote:
Originally Posted by Justin View Post
They will appear temporarily while recording, by design
curious, why is this? from a GUI/display perspective, it looks pretty wacky. i don't care how it looks, as long as it works (and it's definitely getting there) but i don't get why this would be the preferred design.
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.
mccrabney is offline   Reply With Quote
Old 09-18-2016, 10:02 AM   #18
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 10,160
Default

Quote:
Originally Posted by mccrabney View Post
curious, why is this? from a GUI/display perspective, it looks pretty wacky. i don't care how it looks, as long as it works (and it's definitely getting there) but i don't get why this would be the preferred design.
It's complicated
Justin is offline   Reply With Quote
Old 09-18-2016, 10:38 AM   #19
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

^ i bet. i have a bad enough time reliably displaying characters on a 16x2 lcd.

things appear to be fixed in 5.25 rc2. thank you so much. see you at the next one!
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.
mccrabney is offline   Reply With Quote
Old 09-18-2016, 12:21 PM   #20
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 10,160
Default

Quote:
Originally Posted by mccrabney View Post
^ i bet. i have a bad enough time reliably displaying characters on a 16x2 lcd.

things appear to be fixed in 5.25 rc2. thank you so much. see you at the next one!
I should probably explain in order to not sound like a jerk -- but the main reasons are that these notes that are recording do not have note-offs yet, and we don't add them until after the note is finished. This is for a few reasons (other than "that's the way it works"), but changing that would break countless things (and require a big redesign) for what amounts to an aesthetic issue.

Regarding bugs when using various scripts/actions while recording notes, it may be possible to update those scripts and internal actions, but it's a bit of a corner case (editing MIDI while recording it is a bit extreme, IMO).
Justin is offline   Reply With Quote
Old 09-18-2016, 12:34 PM   #21
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Location: Slackjaw, North Carolina
Posts: 913
Default

gotcha. that's pretty much what i figured. certainly not worth undoing.

Quote:
Regarding bugs when using various scripts/actions while recording notes, it may be possible to update those scripts and internal actions, but it's a bit of a corner case (editing MIDI while recording it is a bit extreme, IMO).
to clarify, in the DM Delete case, REAPER is not in Record or Overdub mode when the issue was occurring. in my above steps regarding that script, i should have said "leave Overdub mode" in between steps 2 and 3. this was all fixed by your most recent Midi Sort adjustment.

that said, MPCs have been able to edit midi while overdubbing since the early 90s using the exact same behavior found in "DM Delete" ... so, now that DM Delete works bug free, REAPER is even more like a traditional hardware sequencer in that regard, and is quickly becoming my favorite MIDI sequencer.
__________________
MidiEditor: select last-recorded notes FR || QuantizSwing CC: Positive val only option
input quantize: OSC values for on/off state (for hardware LED) || control strength CC
automation items that behave as such.
mccrabney is offline   Reply With Quote
Old 09-18-2016, 12:36 PM   #22
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 10,160
Default

Ah yeah, MIDI_Sort() wasn't working right (due to a number of typos/lack of testing, oops). Thanks!
Justin is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 10:27 AM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.