Open mpogue2 opened 6 years ago
BTW, this idea was inspired by @danlyke 's waveform display, which reads the audio waveform too! One of the reasons for the waveform display was to be able to set loop points more easily, but I think I want to take it one step further, and have the program just find the peak for me automatically.
Also, update SetDefaultIntroOutroPositions() so that it does this, too. Then, the defaults might even be pretty close to correct, without any clicking at all!
I thnk we actually want to find the trough, not the peak (based on getting loops to sound good in Audacity), but I like the theory.
You're right, of course...I implemented "first negative-going zero crossing following the highest peak in a 0.45s window around the click INTRO button".
I'm not sure whether I like it better than not having it, though. It does mess up in a counter-intuitive way, when there is a strong pickup note to the downbeat of a measure. That seems to be pretty reliable, it's just that I can do ALMOST as well without it, now that I've practiced a lot while testing.
I've toyed with the idea having the SHIFT key put the buttons into "SMART" mode, so the default behavior is "NORMAL MODE", and you can get the peak/ZC detector with SHIFT-CLICK. But, I'm not sure it's worth it.
It was a fun exercise, though!
Playing with editing in Logic Pro, transferring at the highest point in the waveform with the beat detector sounds best.
It's still quite difficult to set the loop points correctly for patter.
An idea: We should have a key, like "I" for IN, that when pressed, looks around in the actual audio, and finds the peak, and sets the loop point THERE. Same for OUT.
Or, it could even be a single key, and if before the midpoint of the song, it sets IN, and after the midpoint it sets OUT. That would work about 99.9% of the time (leaving that last 0.1% to do it manually).
Most of the time, I want to spend a max of 30 seconds setting loop points. Right now, it's 10 minutes to get it right. With this new function, I would listen, press the key once, jump over to the end, listen, press the key a second time, and I should be done. Maybe I'd do a loop test once, just to make sure it's right. The second press could even do a loop test automatically for me, saving me one more keystroke (but that might be a bit counterintuitive?).
I need this function, because every time I hear a bad loop point, I know it's my fault for not taking the time to get it right, which boils down to not making it easy enough to do.
It doesn't have to be a new keypress either. It could be just making the IN and OUT buttons snap to the peak that's within 1 beat (at current BPM, or default to 125) of when it was pressed. User can always manually adjust from there, if the automatic peak finder isn't the desired spot.