Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 03-13-2024, 08:05 AM   #81
smandrap
Human being with feelings
 
smandrap's Avatar
 
Join Date: Feb 2021
Location: Right here
Posts: 1,649
Default

Quote:
Originally Posted by _Stevie_ View Post
I hope my post didn't come across as patronizing.
Absolutely not

Yea i'll turn off auto-correct, the gains are too much (OSS) for little loss
__________________
My Scripts
smandrap is online now   Reply With Quote
Old 03-13-2024, 09:12 AM   #82
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by _Stevie_ View Post
You could turn off autocorrect for the runtime of the script and turn it back on, on exit. Maybe that would be a solution.
I personally have it always turned off, because it causes more damages than it does any good.
I could do this automatically in OSS but unfortunately that does not seem possible ... too bad (I could not find an action or a function in the API for that).

I'm going to ask sockmonkey72 on the MIDIUtils thread if he has an opinion about how and if it could be solved.
Talagan is offline   Reply With Quote
Old 03-13-2024, 09:26 AM   #83
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Location: Black Forest
Posts: 5,086
Default

I think the action is only available in the ME:
Options: Correct overlapping notes while editing
__________________
My Reascripts forum thread | My Reascripts on GitHub
If you like or use my scripts, please support the Ukraine: Ukraine Crisis Relief Fund | DirectRelief | Save The Children | Razom
_Stevie_ is offline   Reply With Quote
Old 03-13-2024, 09:28 AM   #84
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by _Stevie_ View Post
I think the action is only available in the ME:
Options: Correct overlapping notes while editing
Of course !! Stupid am I Thanks Stevie !
Talagan is offline   Reply With Quote
Old 03-13-2024, 12:37 PM   #85
MartinTL
Human being with feelings
 
MartinTL's Avatar
 
Join Date: Sep 2023
Location: Norway
Posts: 150
Default

It's ridiculous how sofisticated this thing has become in such a short while, incredible work Talagan!

Took a little while to understand all the buttons and functions, but it seems to work very well - will give it a proper go in a while!
MartinTL is offline   Reply With Quote
Old 03-14-2024, 02:32 AM   #86
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by MartinTL View Post
It's ridiculous how sofisticated this thing has become in such a short while, incredible work Talagan!

Took a little while to understand all the buttons and functions, but it seems to work very well - will give it a proper go in a while!
Thanks Martin !!

@smandrap regarding the issue you've yielded, I've published a v0.9.8 that adds disabling/reenabling the auto correction at start/end of the repitch operation. But I'm going to republish a v0.9.9 ASAP with the fix discussed in the MIDI Utils library thread. Your bug report was indeed really helpful ! Thanks !
Talagan is offline   Reply With Quote
Old 03-14-2024, 02:34 AM   #87
smandrap
Human being with feelings
 
smandrap's Avatar
 
Join Date: Feb 2021
Location: Right here
Posts: 1,649
Default

__________________
My Scripts
smandrap is online now   Reply With Quote
Old 03-14-2024, 02:53 AM   #88
Hipox
Human being with feelings
 
Join Date: Apr 2022
Posts: 208
Default

Hey Talagan!
I appreciate all the effort you put into the script, it was really a missing workflow part for me as an (also) Ableton user.

If I could have one more request regarding the step back functionality - in Ableton, there's this behaviour when in Midi Editor and any midi note has status "pressed", then you can use right and left arrows on your computer keyboard to step-input, same as your script.
But when no midi note is pressed, then arrows serve purpose of navigating the midi editor - moving edit head on the grid.
I could make a script which would differentiate and trigger different scripts based on described parameters, but that would be unnecessary pain, because this behaviour is almost already implemented in your script.

When I use action Commit and no midi note is pressed, I simply navigate forward.
But this is not a case for CommitBack action - it does nothing if no note is pressed.

Would you consider adding this behaviour to your great script?

Thank you!
Hipox is offline   Reply With Quote
Old 03-14-2024, 03:00 AM   #89
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by Hipox View Post
But this is not a case for CommitBack action - it does nothing if no note is pressed.
Actually, the implemented behaviour should be navigating back (that's what the sustain pedal does when no notes are held). So it looks like a bug (I test the actions far less than the SP). I'm going to investigate.
Talagan is offline   Reply With Quote
Old 03-14-2024, 03:18 AM   #90
Hipox
Human being with feelings
 
Join Date: Apr 2022
Posts: 208
Default

Quote:
Originally Posted by Talagan View Post
Actually, the implemented behaviour should be navigating back (that's what the sustain pedal does when no notes are held). So it looks like a bug (I test the actions far less than the SP). I'm going to investigate.
Cool, thank you!
I'm on the last dev release, Windows 11 and 0.9.8 version of your script.
Hipox is offline   Reply With Quote
Old 03-14-2024, 03:32 AM   #91
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by Hipox View Post
Cool, thank you!
I'm on the last dev release, Windows 11 and 0.9.8 version of your script.
Thanks! I've found the bug. It was linked to 0.9.6 :
  • [Feature] [Write] Added option to prevent the cursor from being moved back if step back delete fails (notes don’t match keys, the user missed)

In your case, the sustain pedal blocking mechanism would be triggered which is absurd. Fix will be released ASAP.
Talagan is offline   Reply With Quote
Old 03-14-2024, 05:12 AM   #92
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

0.9.9 is out with fixes !

Changelog :
  • - [Rework] Changed toolbar icon color
  • - [Bug Fix] [Repitch Mode] Patched MIDIUtils API : successive snapped notes would be borked by the automatic overlap correction option (thanks @smandrap)
  • - [Bug Fix] [Write Mode] CommitBack action would be blocked by sustain pedal blocker if called from action (thanks @hipox !)
  • - [Bug Fix] [Write Mode] Sustain Pedal blocking system when (stepping back + miss) was broken

Thanks again for the help @smandrap, @Stevie, @hipox, @sockmonkey72 !

Last edited by Talagan; 03-14-2024 at 06:03 AM.
Talagan is offline   Reply With Quote
Old 03-14-2024, 06:02 AM   #93
Hipox
Human being with feelings
 
Join Date: Apr 2022
Posts: 208
Default

Quote:
Originally Posted by Talagan View Post
0.9.9 is out with fixes !

Changelog :
  • - [Rework] Changed toolbar icon color
  • - [Bug Fix] [Repitch Mode] Patched MIDIUtils API : successive snapped notes would be borked by the automatic overlap correction option (thanks @smandrap)
  • - [Bug Fix] [Write Mode] CommitBack action would be blocked by sustain pedal blocker if called from action (thanks @hipox !)
  • - [Bug Fix] [Write Mode] Sustain Pedal blocking system when (stepping back + miss) was broken[/CODE]

Thanks again for the help @smandrap, @Stevie, @hipox, @sockmonkey72 !
My issue is fixed, thank you!
Hipox is offline   Reply With Quote
Old 03-14-2024, 07:49 AM   #94
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by Hipox View Post
My issue is fixed, thank you!
Woah, thanks again for the donation !!
Talagan is offline   Reply With Quote
Old 03-18-2024, 06:32 AM   #95
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Hey, today I've just released V0.9.10. I have completely reviewed and reworked the code to be able to make it evolve, so bugs may happen, please don't hesitate to tell me if you get some crashes.

The two new main features today are two new submodes of existing modes. They are triggered by adding the operation marker, by clicking on the light indicator of a mode.

When the marker is present the Insert Mode changes to the Stretch/Compress mode :



This mode does not input or remove notes. Instead, it compresses or stretches what's between the marker and the cursor (on sustain pedal or action trigger).

And the second new submode is the legendary ...




... STUFF MODE (original idea by @Stevie) !



The Stuff Mode is activated when you're in Replace mode and the operation marker is set. It allows to push or pop notes in and out of the time window between the marker and the cursor.

The time base for new events is the first note in the window for stuffing in, or the last note / rest in the window for stuffing out.

When inputing, you may modulate this using the note length buttons (they change to multipliers just like in grid mode).

You may also insert rests with the sustain pedal.

Here's the complete changelog for v0.9.10 :
  • [Feature] Compress/Stretch Submode
  • [Feature] Stuff Submode
  • [Enhance] Force item bound snapping if item grid snap is on
  • [Rework] PPQ Precise operations
  • [Rework] New code architecture and file hierarchy, big code rework
  • [Rework] Addind debugging support for Visual Studio Code (using mavriq lua sockets, thanks @mavriq)

Enjoy and cheers!

Ben

Last edited by Talagan; 04-06-2024 at 10:25 AM.
Talagan is offline   Reply With Quote
Old 03-18-2024, 08:07 AM   #96
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Location: Black Forest
Posts: 5,086
Default

OMG, now this is really legendary!!!
Will try it as soon as I’m back in the studio!
__________________
My Reascripts forum thread | My Reascripts on GitHub
If you like or use my scripts, please support the Ukraine: Ukraine Crisis Relief Fund | DirectRelief | Save The Children | Razom
_Stevie_ is offline   Reply With Quote
Old 04-06-2024, 10:16 AM   #97
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Hey,

I've release 0.9.11 today, with just one additional feature : a velocity limiter, because it was asked a few times :



It is very basic, with a min, a max, and two modes : linear and clamp. Here are the corresponding curves :



That's all for this release, cheers and nice week end to all

Last edited by Talagan; 04-07-2024 at 01:55 AM.
Talagan is offline   Reply With Quote
Old 04-28-2024, 01:28 AM   #98
samlletas
Human being with feelings
 
samlletas's Avatar
 
Join Date: Nov 2023
Posts: 12
Default

This thing is incredible, makes adding notes with the keyboard very enjoyable, thanks Talagan 😁. This will be my default way to input notes in the MIDI editor. When testing it I noticed the following:

[Insert Mode]

This is my favorite mode, it kind of behaves similar to what trackers do. Something I'm noticing while in this mode is that, when the edit cursor is in the middle of a note and I press "Commit back" it shortens the note (very nice), but when pressing "Commit forward" the note length stays the same, for example:



But I was thinking, what if it also increased the length of the notes under the edit cursor, like this:



I think this would help when adjusting the timing of chords or melodies, and since committing back already shortens the notes I feel that having the opposite for committing forward would be helpful, what do you think?


[Bug when committing same notes]:

When committing the same notes (either all or some of them) the new notes split at certain points (seems to happen in all modes), for example while in Replace mode:




[Repitch mode]

This mode doesn't seem to work for me, the edit cursor moves but the notes stay the same even when I press the same number of notes:

samlletas is offline   Reply With Quote
Old 04-28-2024, 05:19 AM   #99
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Hey @samlletas !

Thanks a lot for your feedback. I'm delighted that you've find a place for OSS in your workflow !

Replying quickly before investigating furthermore :

[Insert Mode]

This is true that there are some cases for which it is hard to decide the best behaviour for each mode, and it's probably time to introduce new options to tweak the modes. ATM, the insert mode does not try to cut/patch notes that "contain" the cursor because when I wrote it I thought that already started notes should be considered done and untouchable (except maybe those finishing exactly on the cursor). But it's a design choice, and it is more suitable to melodic situations, probably. I need to think a bit of the possible options to enhance the flow, and answer other questions, because there are other behaviours that could be thought of.
  • What should we do if the newly entered note(s) do(es) not match any present note ? Should we cut the present notes, and make holes ?
  • If it's possible to extend a present note from the "interior", shouldn't we give the possibility to cut the present note, and insert a new note (with the same pitch) in the middle ? (ex : C becomes C|C|C)

[Bug when committing same notes]

Feels like an overlap bug but not sure yet. It needs some debug, I'll come back to you later !

[Repitch mode]

Thanks for reporting ! It's linked to a typo in the code, there's an option for the repitch mode that seems to be set, but in fact, if you never changed it, internally it's not set at all (so the mode is ineffective). This one :



If you tweak it once, it will be set correctly. I'll fix this issue in the next release, but until then you can use that trick to make the repitch mode work.
Talagan is offline   Reply With Quote
Old 04-28-2024, 11:23 PM   #100
samlletas
Human being with feelings
 
samlletas's Avatar
 
Join Date: Nov 2023
Posts: 12
Default

Quote:
Originally Posted by Talagan View Post

[Insert Mode]

This is true that there are some cases for which it is hard to decide the best behaviour for each mode, and it's probably time to introduce new options to tweak the modes. ATM, the insert mode does not try to cut/patch notes that "contain" the cursor because when I wrote it I thought that already started notes should be considered done and untouchable (except maybe those finishing exactly on the cursor). But it's a design choice, and it is more suitable to melodic situations, probably. I need to think a bit of the possible options to enhance the flow, and answer other questions, because there are other behaviours that could be thought of.
Oh I see! So the intent of insert mode is to add notes without touching the already started ones (while also shifting notes), Hmm I'm wondering if the current behavior is a bit similar to write mode minus the note shift. The way I was looking at insert mode is that it adds a grid column on commit (hence why notes after the cursor are shifted forward) and removes a grid column on commitBack (hence why notes after the cursor are shifted backward and present notes under the cursor shortened).


Quote:
Originally Posted by Talagan View Post
  • What should we do if the newly entered note(s) do(es) not match any present note ? Should we cut the present notes, and make holes ?
  • If it's possible to extend a present note from the "interior", shouldn't we give the possibility to cut the present note, and insert a new note (with the same pitch) in the middle ? (ex : C becomes C|C|C)
One approach that would handle both cases could be to always insert the new entered notes (present notes that match get cut), and the rest of non-matching notes get extended. That way we could do stuff like:
  • Press commit (without entering any notes) to extend all of the existing notes under the cursor.
  • Press commit to cut a matching note (like in your example: C would become C|C).
  • Press commit to add a new note to an already present chord while also extending the rest of the notes from that chord.


Quote:
Originally Posted by Talagan View Post

Feels like an overlap bug but not sure yet. It needs some debug, I'll come back to you later !
Yeah seems to only happen on notes that match the pitch of the new pressed notes, notes from other pitches seem to be fine.


Quote:
Originally Posted by Talagan View Post

If you tweak it once, it will be set correctly. I'll fix this issue in the next release, but until then you can use that trick to make the repitch mode work.
Tweaking this setting fixes it, thanks!

Last edited by samlletas; 04-28-2024 at 11:42 PM.
samlletas is offline   Reply With Quote
Old 04-29-2024, 01:50 AM   #101
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by samlletas View Post
Oh I see! So the intent of insert mode is to add notes without touching the already started ones (while also shifting notes), Hmm I'm wondering if the current behavior is a bit similar to write mode minus the note shift. The way I was looking at insert mode is that it adds a grid column on commit (hence why notes after the cursor are shifted forward) and removes a grid column on commitBack (hence why notes after the cursor are shifted backward and present notes under the cursor shortened).
Yes, the behaviour you expect is perfectly understandable and coherent. Since the tool has grown rapidly in features, it is still an experimentation playground, quite polishable and malleable. And it has also evolved with use cases raised by users. In short, it's normal that some behaviours are missing

Quote:
Originally Posted by samlletas View Post
Yeah seems to only happen on notes that match the pitch of the new pressed notes, notes from other pitches seem to be fine.
I've worked on this issue yesterday : it's a bit complicated to explain, but it is due to the fact that Reaper does not have a real "object" representation of MIDI notes internally. It just stores the sequence of MIDI events (note on / note off), so for a same note, the edition may lead you to a serie of non logical events (e.g. on/on/off/on/on/on/off/off/on/off/off), which in terms of real notes can be quite undefined and random. This is especially tricky when note on and off fall on the same PPQ. Reaper's API for inserting/modifying/deleting MIDI notes is really really unreliable on that matter. I already had this problem with OSS with the repitch mode with which it was easy to create this kind of cases, and the solution was to use @sockmonkey72's fantastic MIDIUtils library, which implements another approach and does the job wonderfully well. Yesterday I just ditched my old implementations of other operations (write, insert, replace, stuff, compress/stretch) and ported them to MIDIUtils, and voilà, it seems to work as expected. These bug fixes will come with the next release

Quote:
Originally Posted by samlletas View Post
Tweaking this setting fixes it, thanks!
Awesome ! I've realised that for the same reasons, for a fresh install, navigation mode is not working for item grid and notes. The temporary fix is more complicated though, one needs to edit reaper-exstate.ini by hand and add Snap=true in OSS's section. This was working on my install (and probably other's) because this flag is a leftover of older versions. This will be fixed in the next release.

Quote:
Originally Posted by samlletas View Post
One approach that would handle both cases could be to always insert the new entered notes (present notes that match get cut), and the rest of non-matching notes get extended. That way we could do stuff like:
  • Press commit (without entering any notes) to extend all of the existing notes under the cursor.
  • Press commit to cut a matching note (like in your example: C would become C|C).
  • Press commit to add a new note to an already present chord while also extending the rest of the notes from that chord.
I see in fact 4 sub-behaviours (x2 for matching/non matching existing notes) :
  • Leave untouched (matching/non-matching present notes)
  • Extend (matching/non-matching present notes)
  • Cut (matching/non-matching present notes) (it makes a hole)
  • Replay (matching/non-matching) present notes (it does cut + add new note)

I would tend to split this into a set of two quadruple options.

"When inserting notes in the middle of existing notes"

- [Leave untouched/extend/cut/replay] existing, non-matching notes
- [Leave untouched/extend/cut/replay] existing, matching notes

That way, you could configure your behaviour by setting the first option to "extend", the other one to "cut". The actual behaviour is "Leave Untouched"/"Leave Untouched".

What do you think of this solution ? Would this be flexible enough and not too complex to understand for a default user ?

Cheers,

Ben

EDIT: After reflexion, I'm not that sure that for non-matching notes the "replay" option is relevant.

Last edited by Talagan; 05-02-2024 at 06:56 AM.
Talagan is offline   Reply With Quote
Old 04-29-2024, 04:48 PM   #102
samlletas
Human being with feelings
 
samlletas's Avatar
 
Join Date: Nov 2023
Posts: 12
Default

Quote:
Originally Posted by Talagan View Post
Yes, the behaviour you expect is perfectly understandable and coherent. Since the tool has grown rapidly in features, it is still an experimentation playground, quite polishable and malleable. And it has also evolved with use cases raised by users. In short, it's normal that some behaviours are missing
Even in it's experimental phase your project is miles ahead of Reaper's built-in step sequencer, thanks for making such an useful tool

Quote:
Originally Posted by Talagan View Post
I've worked on this issue yesterday : it's a bit complicated to explain, but it is due to the fact that Reaper does not have a real "object" representation of MIDI notes internally. It just stores the sequence of MIDI events (note on / note off), so for a same note, the edition may lead you to a serie of non logical events (e.g. on/on/off/on/on/on/off/off/on/off/off), which in terms of real notes can be quite undefined and random. This is especially tricky when note on and off fall on the same PPQ. Reaper's API for inserting/modifying/deleting MIDI notes is really really unreliable on that matter. I already had this problem with OSS with the repitch mode with which it was easy to create this kind of cases, and the solution was to use @sockmonkey72's fantastic MIDIUtils library, which implements another approach and does the job wonderfully well. Yesterday I just ditched my old implementations of other operations (write, insert, replace, stuff, compress/stretch) and ported them to MIDIUtils, and voilà, it seems to work as expected. These bug fixes will come with the next release
Very Nice! I do a bit of JSFX programming and midi is handled similarly there, in case I end up doing some Lua scripting I'll remember that MIDIUtils library.

Quote:
Originally Posted by Talagan View Post
Awesome ! I've realised that for the same reasons, for a fresh install, navigation mode is not working for item grid and notes. The temporary fix is more complicated though, one needs to edit reaper-exstate.ini by hand and add Snap=true in OSS's section. This was working on my install (and probably other's) because this flag is a leftover of older versions. This will be fixed in the next release.
Strangely navigation mode seems to be working for me even without having "Snap=true" in that file, I saw "SnapProjectGrid=true" set there, removed it and restarted the script and it still worked.

Quote:
Originally Posted by Talagan View Post
I see in fact 4 sub-behaviours (x2 for matching/non matching existing notes) :
  • Leave untouch (matching/non-matching present notes)
  • Extend (matching/non-matching present notes)
  • Cut (matching/non-matching present notes) (it makes a hole)
  • Replay (matching/non-matching) present notes (it does cut + add new note)

I would tend to split this into a set of two quadruple options.

"When inserting notes in the middle of existing notes"

- [Leave untouch/extend/cut/replay] existing, non-matching notes
- [Leave untouch/extend/cut/replay] existing, matching notes

That way, you could configure your behaviour by setting the first option to "extend", the other one to "cut". The actual behaviour is "Leave Untouch"/"Leave Untouch".

What do you think of this solution ? Would this be flexible enough and not too complex to understand for a default user ?
Wow! Giving the user the freedom to configure it to their liking would be awesome, I think those 2 options from your solution cover both the default behavior and other possible combinations. The only thing that may be a bit confusing is the difference between "Cut" and "Replay", for example for matching notes:
  • Cut: Would C become C|-|C ?
  • Replay: Would C become C|C|C ?
Hmm if that's the case then I wonder if "Replay" could be renamed to something like "Cut+Add" instead to clearly communicate it's behavior.

Quote:
Originally Posted by Talagan View Post
EDIT: After reflexion, I'm not that sure that for non-matching notes the "replay" option is relevant.
I agree, "Replay" doesn't seem necessary for non-matching notes.
samlletas is offline   Reply With Quote
Old 05-01-2024, 07:32 AM   #103
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by samlletas View Post
Even in it's experimental phase your project is miles ahead of Reaper's built-in step sequencer, thanks for making such an useful tool
Thanks for the kind words, @samlletas !

Quote:
Originally Posted by samlletas View Post
Strangely navigation mode seems to be working for me even without having "Snap=true" in that file, I saw "SnapProjectGrid=true" set there, removed it and restarted the script and it still worked.
Yep, the problem is specific to some particular snapping options. This is going to be fixed anyway :-)

Quote:
Originally Posted by samlletas View Post
  • Cut: Would C become C|-|C ?
  • Replay: Would C become C|C|C ?
Hmm if that's the case then I wonder if "Replay" could be renamed to something like "Cut+Add" instead to clearly communicate it's behavior.
Exactly. I've (nearly) used your terminology for next release :


It is ready and upcoming, and just needs to be validated by Christian.
Talagan is offline   Reply With Quote
Old 05-01-2024, 08:58 AM   #104
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

0.9.12 is out ! Here's the changelog :
  • [Feature] Added some options to tweak the insert mode behavior when inserting in the middle of existing notes (thanks @samlletas !)
  • [Bug Fix] Repitch mode would not work for fresh installs (thanks @samlletas !)
  • [Bug Fix] Navigation mode snap would not work (or partially ?) for fresh installs
  • [Rework] Ported all operations to the 'MIDIUtils' library by @sockmonkey72 (thanks Jeremy !!)

So, here's a quick review of the new options for the insert mode. As noticed by @samlletas, the insert mode would have a questionable behaviour when used in the middle of existing notes. Since there's no canonical implementation for these situations, two options were added to tweak what should OSS do if, among the played/held notes there are some notes matching what's already there or not.



For example, if no matching notes are pressed, you may chose to :

- Leave the present note(s) untouched. This was the default behaviour :



- Cut existing note(s) :



- Extend existing note(s) :



Those 3 behaviours may also be assigned for matching notes, with an additional possible behaviour, cut and insert :



When using the sustain pedal (or commit action) alone, there are of course no matching notes, so you can play with the "non matching" option to either cut the chords :



Or extend them :



As a consequence, this can lead to hybrid behaviours :




Et voilà. Special thanks to @samlletas for the worthy discussion on the matter, and to @sockmonkey72 again for MIDIUtils because it really helps to avoid corner cases and handle unusual situations !

Cheers,

Ben

Last edited by Talagan; 05-01-2024 at 09:27 AM.
Talagan is offline   Reply With Quote
Old 05-01-2024, 06:56 PM   #105
samlletas
Human being with feelings
 
samlletas's Avatar
 
Join Date: Nov 2023
Posts: 12
Default

Quote:
Originally Posted by Talagan View Post
0.9.12 is out ! Here's the changelog :
  • [Feature] Added some options to tweak the insert mode behavior when inserting in the middle of existing notes (thanks @samlletas !)
  • [Bug Fix] Repitch mode would not work for fresh installs (thanks @samlletas !)
  • [Bug Fix] Navigation mode snap would not work (or partially ?) for fresh installs
  • [Rework] Ported all operations to the 'MIDIUtils' library by @sockmonkey72 (thanks Jeremy !!)
The new options are amazing! 👏 Thank you very much @Talagan!!

Edit: I think I might have found 2 bugs,

#1: When on Insert mode and matching notes is set to "Cut note and insert new one" the new notes don't seem to grow when committing multiple times (like with the non-matching notes), it instead keeps inserting rests.



#2: A commitBack on Write mode throws the following error in the ReaScript console:
Code:
MIDIUtils: cannot modify MIDI stream without an open WRITE transaction for this take
Aside from those two bugs everything else seems to be working wonderfully!

Last edited by samlletas; 05-02-2024 at 01:46 AM.
samlletas is offline   Reply With Quote
Old 05-01-2024, 07:37 PM   #106
gluvju
Human being with feelings
 
Join Date: Nov 2019
Location: Ho Chi Minh City, Vietnam
Posts: 6
Default Wow thanks for this script

Just Found out your OSS via reading the notes from Reapack Syncronize but I've not try it out. But really cool script for Music Theory nerd like me and I believe there more nerds out there too.
gluvju is offline   Reply With Quote
Old 05-02-2024, 03:37 AM   #107
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Quote:
Originally Posted by samlletas View Post
I think I might have found 2 bugs
Thanks a lot for the report ! Fixes are on the way

Quote:
Originally Posted by gluvju View Post
Just Found out your OSS via reading the notes from Reapack Syncronize but I've not try it out. But really cool script for Music Theory nerd like me and I believe there more nerds out there too.
d(-_☆)

Last edited by Talagan; 05-02-2024 at 06:59 AM.
Talagan is offline   Reply With Quote
Old 05-02-2024, 06:40 AM   #108
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 307
Default

Ok, 0.9.13 is out ! Changelog :
  • [Bug Fix] [Write Mode] Commit back broken (thanks @samlletas !)
  • [Bug Fix] [Insert Mode] Cut + Add does not support extending held notes (thanks @samlletas !)

Cheers,
Ben
Talagan is offline   Reply With Quote
Old 05-02-2024, 02:50 PM   #109
samlletas
Human being with feelings
 
samlletas's Avatar
 
Join Date: Nov 2023
Posts: 12
Default

Quote:
Originally Posted by Talagan View Post
Ok, 0.9.13 is out ! Changelog :
  • [Bug Fix] [Write Mode] Commit back broken (thanks @samlletas !)
  • [Bug Fix] [Insert Mode] Cut + Add does not support extending held notes (thanks @samlletas !)
Tested and working nicely, thank you so much @Talagan! 😁
samlletas 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 05:35 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.