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

Reply
 
Thread Tools Display Modes
Old 10-19-2023, 12:45 AM   #1
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default [NEW UPDATE] - MArpeggiator | ARPEGGIATOR FOR MIDI EDITOR(chord>arp)[1.0.45]

New Script(betta):


MArpeggiator


Installation
-----------------------------

1. Install js_ReaScriptAPI extension.
2. Import THIS repository via reapack.
3. Install MVarious and then MVelocity in the repack
4. Done!
-----------------------------

-----------------------------
Introduction

The script allows you to quickly transform chords or a sequence of chords into arpeggios.

This is probably my first 'special' GUI script made with some help from the Reaper community. I also have a lot of ideas to further develop this tool, but due to a lack of time, I'm leaving it in a 'raw' state for now.

Main Features:
1. Appearance and Animation: The RTK library allows for a visually appealing and flexible interface. It also facilitates the easy creation of needed widgets.
and
Note that animation may behave somewhat awkwardly when zoomed in, but it's still visually pleasing.

2. Three Standard Directions: The script supports upward, downward, and random arpeggiation. A future update will include a sawtooth direction, for which I've encountered some difficulties.

3. Continuous Modification: The script allows for continuous addition of modifications to current modified notes. To utilize this feature, switch from 'Auto Apply' to 'on' mode.
4. Session Memory: The script saves the last position of the window, scale, mode, notes, etc.
5. Main Mode: Legato mode can be switched to staccato, affecting the note length either up to the start of the next note or until the end of the bar.

6. Three Advanced Modes: These modes aim to cover most tasks you'll encounter when creating arpeggios:
- 6.1 Basic
- 6.2 Advanced 1

- 6.3 Advanced 2

- 6.4 Drag and "painting"as well as quick access to presets for sliders:

-----------------------------
You can also use events for sliders:
1. shift+LMB - align
2. ctrl+LMB keep only one slider in focus

-----------------------------

Step-by-step Instructions

● First, create a sequence of chords. Then, either scroll your mouse wheel or drag the main knob to set the desired rate.
● Change the direction and also modify the octave burst, which is located to the right of the direction option—choose random if you prefer.
● Optionally, utilize either 'Legato' or 'Staccato' by moving the slider closer to the start. The slider becomes available after activating the 'Legato' button. Hovering over the button allows you to adjust its value using the mouse wheel.

-----------------------------


Other
Mode 2 introduces three new sliders: velocity (overall), step, and rate. This allows for further manipulation in your note sequences by adding or altering an additional step. For example, through the step slider, you can set the size of every third note—indicated in orange within the main knob. Also, this main knob allows you to choose the primary note size.

Mode 3 offers broader capabilities but also comes with its fair share of quirks . You can create up to four chords in the MIDI editor and apply completely different settings for each (though using more than two chords might cause some glitches for now). Currently, the default setting is an ascending mode, but I plan to add more options soon. This mode allows for flexible note step alterations in terms of size, octave jumps, length (with legato taking precedence if used), splitting, and duration.

➌Overall, Mode 3 is pretty exciting but requires substantial refinements. If you are also into scripting and take a peek at the code, don't judge my potentially unconventional approaches .

➍Also, to hide the bottom panel with tips, simply click on it. (The tooltip window is also underdeveloped for advanced mode.)

While the script window is active, please do not change the length of the current MIDI item!

➎Future implementation will allow for saving and loading presets; sometimes, the patterns turn out to be quite magical, and I've already used them in many places.

➏If you're a developer, feel free to use, modify, and do whatever you want with the script; that's how it was created!



Acknowledgments
I'd like to extend my gratitude to @tack for the RTK library and for insights I couldn't have figured out on my own. A special thanks to @daniellumertz for providing a simpler implementation than the initial version of the main arpeggiator functionality.

Last edited by erikmartinez; 11-28-2023 at 11:17 PM.
erikmartinez is offline   Reply With Quote
Old 10-19-2023, 01:48 AM   #2
smandrap
Human being with feelings
 
smandrap's Avatar
 
Join Date: Feb 2021
Location: Right here
Posts: 1,935
Default

This is dope!!!!!!! I'll try soon
__________________
My Scripts
smandrap is online now   Reply With Quote
Old 10-19-2023, 02:01 AM   #3
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by smandrap View Post
This is dope!!!!!!! I'll try soon
Let me know if anything goes wrong! I haven't done much testing
erikmartinez is offline   Reply With Quote
Old 10-19-2023, 02:47 AM   #4
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

Wow this looks very cool man, thanks for sharing will test after work.
Vagelis is offline   Reply With Quote
Old 10-19-2023, 03:20 AM   #5
Spookye
Human being with feelings
 
Spookye's Avatar
 
Join Date: Jul 2018
Location: Torino, Italia
Posts: 783
Default

Thanks Erik.... very nice, intuitive, fun and useful. Thank you very much.
(...also for the MVelocity. Super. They interact directly and perfectly in M-Editor. Thank you 1000)
__________________
Cupboard Home Studio YT https://www.youtube.com/channel/UCm8...X1912MA260ELzg

Last edited by Spookye; 10-19-2023 at 04:41 AM.
Spookye is offline   Reply With Quote
Old 10-19-2023, 04:41 AM   #6
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by Spookye View Post
Thanks Erik.... very nice, intuitive, fun and useful. Thank you very much.
(...also for the MVelocity. Super. )
shhh, don't show my cards
Oh, you got him too. It is in test mode, I will publish it soon too. If there are any mistakes or ideas for improvement, I'm open to you
erikmartinez is offline   Reply With Quote
Old 10-19-2023, 05:52 AM   #7
MaXyM
Human being with feelings
 
Join Date: Aug 2018
Posts: 464
Default

As I understand, it writes MIDI notes directly to MIDI item. Does't it?
Personally, I would prefer just playing MIDI notes, triggered by input notes. Then I could have decided whether to materialize those notes or just play them live.

Otherwise outstanding work. There are no arpeggiators enough.
MaXyM is offline   Reply With Quote
Old 10-19-2023, 06:00 AM   #8
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by MaXyM View Post
As I understand, it writes MIDI notes directly to MIDI item. Does't it?
Personally, I would prefer just playing MIDI notes, triggered by input notes. Then I could have decided whether to materialize those notes or just play them live.

Otherwise outstanding work. There are no arpeggiators enough.

Yes, there are already several such ideas in the form of js plugins, in general they do what you need, but I needed such a tool inside the midi editor
erikmartinez is offline   Reply With Quote
Old 10-19-2023, 06:53 AM   #9
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

Tested and it's amazing, there's nothing quite like it in Reaper well done. The advanced page has some really cool functions and the GUI is excellent.
But could it work for single notes as well? I was thinking that it could be useful that way for generating drum patterns.
Vagelis is offline   Reply With Quote
Old 10-19-2023, 08:02 AM   #10
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by Vagelis View Post
Tested and it's amazing, there's nothing quite like it in Reaper well done. The advanced page has some really cool functions and the GUI is excellent.
But could it work for single notes as well? I was thinking that it could be useful that way for generating drum patterns.
Glad you like it!
Yes, Vagelis, of course! I'll make it possible in the next update. I really did somehow miss that moment.
erikmartinez is offline   Reply With Quote
Old 10-20-2023, 01:11 AM   #11
dahya
Human being with feelings
 
Join Date: Oct 2019
Posts: 244
Default

Hey Erik, this looks like some fantastic work, especially as it works directly in the midi editor, thanks for sharing !!

Also, if you're looking for ideas to develop it even further, I don't know if you've ever tried the free BlueArp vsti? It's a fantastic arpeggiator which I use quite a lot even to do simple things sometimes, like imitate a yamaha style generator keyboard to play riffs live from a given chord.

Anyway, here's the link if you haven't tried it out yet, you may get some more food for thought for developing your scripts even further.

https://omg-instruments.com/wp/?page_id=63
dahya is offline   Reply With Quote
Old 10-20-2023, 03:57 AM   #12
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default MArpeggiator - New Update 1.0.36

Quote:
Originally Posted by Vagelis View Post
Tested and it's amazing, there's nothing quite like it in Reaper well done. The advanced page has some really cool functions and the GUI is excellent.
But could it work for single notes as well? I was thinking that it could be useful that way for generating drum patterns.

Hello, here's what's new in the update:
1. Minor optimization and a slight visual change.
2. Two new canonical modes added - "Saw Up" and "Saw Down".
3. For the direction "Random", besides octave bursts, toggling is now available for notes of the same pitch (with the mode turned off, for example, notes of the same pitch will not repeat except for single notes; with the mode turned on, a chance can be set).

4. Entering the last "advanced" mode automatically turns off auto apply.
5. There's no mode selection for the current chord in the last mode, but I added the ability to change single notes (not chords) in any mode. I tested this on drums, and it's quite an interesting tool, it's quite a surprise for me
Only "octave" and "gate" tabs don't work for single notes.
Quite an interesting result can be achieved with separated single notes.

Also:
To avoid errors, it's better to first create a pattern, make and apply changes, then if a new pattern is needed, similarly create it and apply changes instead of creating multiple patterns at once (Minor issues).


The update is available in reapack, but there were difficulties that required manually updating my repository and installing again. I apologize for such nuances, I’m just getting started with reapack
erikmartinez is offline   Reply With Quote
Old 10-20-2023, 04:05 AM   #13
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by dahya View Post
Hey Erik, this looks like some fantastic work, especially as it works directly in the midi editor, thanks for sharing !!

Also, if you're looking for ideas to develop it even further, I don't know if you've ever tried the free BlueArp vsti? It's a fantastic arpeggiator which I use quite a lot even to do simple things sometimes, like imitate a yamaha style generator keyboard to play riffs live from a given chord.

Anyway, here's the link if you haven't tried it out yet, you may get some more food for thought for developing your scripts even further.

https://omg-instruments.com/wp/?page_id=63
Hello, thank you! Cool, I'll take a look
Actually, there wasn't a place from which I had to draw inspiration as I just wanted to create something like "something in the head". Only closer to the end, I began to understand that some things could have been made more ergonomic if I had looked at more advanced arpeggiators
However, it looks interesting and unlike anything else, especially these inappropriate animations:
erikmartinez is offline   Reply With Quote
Old 10-20-2023, 09:35 AM   #14
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

UPD: Please don't look for the script in the main section, look for it in the midi editor
erikmartinez is offline   Reply With Quote
Old 10-20-2023, 11:26 AM   #15
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

Quote:
Originally Posted by erikmartinez View Post
Hello, here's what's new in the update:
Thanks for the update, nice that it works for single notes too
Vagelis is offline   Reply With Quote
Old 10-21-2023, 05:01 AM   #16
cool
Human being with feelings
 
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 1,029
Default

Thank you!

FR: It would be convenient if the script passed through frequently used hotkeys (Space, Ctrl+Z, etc). Currently, if the script window has focus, the hotkeys do not work. I have to change focus with the mouse, constantly switching between the midi editor and the script window.

Example code (if it helps):
Code:
  char = gfx.getchar()
    if char==32 then reaper.Main_OnCommand(40044, 0) end -- play/stop
    if char==26 then reaper.Main_OnCommand(40029, 0) end ---undo
    if char==19 then reaper.Main_OnCommand(40026, 0) end ---save (ctrl+s)
cool is offline   Reply With Quote
Old 10-21-2023, 05:14 AM   #17
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by cool View Post
Thank you!

FR: It would be convenient if the script passed through frequently used hotkeys (Space, Ctrl+Z, etc). Currently, if the script window has focus, the hotkeys do not work. I have to change focus with the mouse, constantly switching between the midi editor and the script window.

Example code (if it helps):
Code:
  char = gfx.getchar()
    if char==32 then reaper.Main_OnCommand(40044, 0) end -- play/stop
    if char==26 then reaper.Main_OnCommand(40029, 0) end ---undo
    if char==19 then reaper.Main_OnCommand(40026, 0) end ---save (ctrl+s)
good idea! I'll put this in notes for the next update
erikmartinez is offline   Reply With Quote
Old 10-21-2023, 09:06 PM   #18
dangguidan
Human being with feelings
 
Join Date: Jan 2019
Location: China
Posts: 689
Default

There was an error! Can you help me check?
Code:
mrtnz_Arpeggiator(Chord to arp).lua:608: attempt to index a nil value
__________________
My script sharing sources are mostly about MIDI editing.
https://github.com/zaibuyidao/YS_Rea...main/index.xml
dangguidan is online now   Reply With Quote
Old 10-22-2023, 02:13 AM   #19
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by dangguidan View Post
There was an error! Can you help me check?
Code:
mrtnz_Arpeggiator(Chord to arp).lua:608: attempt to index a nil value
hmm, strange. does the error appear after running the script or after some other actions?
erikmartinez is offline   Reply With Quote
Old 10-22-2023, 03:05 AM   #20
Lunar Ladder
Human being with feelings
 
Join Date: Jan 2016
Posts: 900
Default

Quote:
Originally Posted by erikmartinez View Post
Yes, there are already several such ideas in the form of js plugins, in general they do what you need, but I needed such a tool inside the midi editor
The way it's designed to work inside the midi editor is what makes this one SO COOL ! Congrats on making such a special script, and thanks!
Lunar Ladder is offline   Reply With Quote
Old 10-23-2023, 06:00 PM   #21
User41
Human being with feelings
 
Join Date: Aug 2020
Posts: 266
Default

can someone help me execute this step:

2. Import THIS link into your repository and install.

TIA
User41 is offline   Reply With Quote
Old 10-23-2023, 10:57 PM   #22
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by User41 View Post
can someone help me execute this step:

2. Import THIS link into your repository and install.

TIA
I made a mistake, I meant “import the repository into repack”
erikmartinez is offline   Reply With Quote
Old 10-24-2023, 05:32 AM   #23
User41
Human being with feelings
 
Join Date: Aug 2020
Posts: 266
Default

Quote:
Originally Posted by erikmartinez View Post
I made a mistake, I meant “import the repository into repack”
Got it. Thank you!
User41 is offline   Reply With Quote
Old 10-24-2023, 07:34 AM   #24
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by User41 View Post
Got it. Thank you!
My pleasure! Let me know if anything goes wrong or if everything works as expected
erikmartinez is offline   Reply With Quote
Old 10-28-2023, 01:48 AM   #25
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default Small Update (1.0.39)

Small Update (1.0.39)

1. Fixed a bug when switching to the third mode with button animation
2. Minor optimization and a couple of bugfixes
3. I split the script into different parts for future updates, so additionally install MFunctions in the same repository
Improvements:
1. Added the ability to turn note repeating on and off
2. Hotkeys pass through the script window
3. Clicking on a percentage value sets either 100% or 0
4. Mouse wheel support for octave explosion and note repeat chance

Already available in reapack


You can also test my unpublished script - MVelocity: a tool for working with velocity. You can add functionality or resolve some conflicts before publishing:


erikmartinez is offline   Reply With Quote
Old 10-28-2023, 02:19 AM   #26
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by dangguidan View Post
There was an error! Can you help me check?
Code:
mrtnz_Arpeggiator(Chord to arp).lua:608: attempt to index a nil value
I understood what was wrong, the problem was due to the icons. I fixed this situation in the update (I hope it’s fixed for you too)
erikmartinez is offline   Reply With Quote
Old 10-28-2023, 03:14 AM   #27
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

Thanks for your midi tools man, appreciate your work, midi tools are always useful and I like the new MVelocity as well, thanks!
Seeing your skills with midi and since your scripts have some of these features separately, I was thinking to ask for something that could combine ratcheting midi notes, stretching them from slow to fast in both directions and tweak their velocities. It doesn't exist something to ratchet/stretch notes that way in one script in Reaper, and I think it would be very useful to have.

Found a video that's showing this in Bitwig in case you're interested, thanks!

https://youtu.be/QGYXtn6C-Us?t=249
Vagelis is offline   Reply With Quote
Old 10-28-2023, 03:51 AM   #28
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by Vagelis View Post
Thanks for your midi tools man, appreciate your work, midi tools are always useful and I like the new MVelocity as well, thanks!
Seeing your skills with midi and since your scripts have some of these features separately, I was thinking to ask for something that could combine ratcheting midi notes, stretching them from slow to fast in both directions and tweak their velocities. It doesn't exist something to ratchet/stretch notes that way in one script in Reaper, and I think it would be very useful to have.

Found a video that's showing this in Bitwig in case you're interested, thanks!

https://youtu.be/QGYXtn6C-Us?t=249


Thank you for your kind words; I'm glad you like it. I enjoy using it too

If I understood you correctly - yes! In the process, a separate block instrument for working with note length, and I really liked this little tool:



I definitely want to use something like this! I immediately thought of Script: BirdBird_Item Modifiers.lua with a delay builder/snare roll builder (it's only for items). I'll add it to my notes, thanks for the idea!

As for working with note length, I'm creating something like this tool, and it can do:

1. Legato (position below 50 on the slider = staccato) with modes (in the future, I want to add regular legato and within one bar), for example, until the end of the bar, or the end of a note of the same height (otherwise, until the end of the editor if "end take" is enabled), or classic legato.

2. Strum for chords with the option to choose the direction (or random).

3. Strum for velocity linked to the strum itself.

What I want to add here is a randomizer for the initial and final position within the set value range, plus the length of the note itself to avoid errors (also with the ability to link).

Sorry for the silly gif; I was trying to quickly show the functionality of the three sliders

erikmartinez is offline   Reply With Quote
Old 10-28-2023, 03:57 AM   #29
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

Wow, we're definitely on the same page!

Bird's Item modifiers is one my fav scripts and already asked for midi support but didn't happen, but it seems there's still hope, looking VERY forward!
Also the new tool for strumming looks great!
Vagelis is offline   Reply With Quote
Old 10-28-2023, 04:10 AM   #30
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by Vagelis View Post
Wow, we're definitely on the same page!

Bird's Item modifiers is one my fav scripts and already asked for midi support but didn't happen, but it seems there's still hope, looking VERY forward!
Also the new tool for strumming looks great!
Additionally, I'll say that I sincerely hope the MIDI editor will receive support for embedding the docker and saving it between sessions because I'm currently also working on a simple MIDI item navigator that has quite a few shortcomings at the moment, especially in large projects due to constant checks, for example. When you want to quickly switch from the current drum part, for example, to the same part in a different time range, or just to a completely different section, you can't use the Side Track List. Therefore, I would like to have a similar stack as shown in Bitwig - on the side as a block instrument, where you could place all these tools. I think the job is almost done when the main script functionality is ready


I would insert docker directly instead
erikmartinez is offline   Reply With Quote
Old 10-28-2023, 04:17 AM   #31
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

I fully agree, it would be so awesome to be able to dock scripts in the midi editor, I was going to link you to a similar FR but I saw you already posted there.
https://forum.cockos.com/showthread.php?t=273743

So yes that would be a huge step forward for using scripts with GUI in the midi editor.
Vagelis is offline   Reply With Quote
Old 10-31-2023, 03:27 AM   #32
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by Vagelis View Post
I fully agree, it would be so awesome to be able to dock scripts in the midi editor, I was going to link you to a similar FR but I saw you already posted there.
https://forum.cockos.com/showthread.php?t=273743

So yes that would be a huge step forward for using scripts with GUI in the midi editor.
Hello Vagelis! It turned out to be something like a "splitter." I tried splitting a note into N parts, but after testing it in Bitwig, I realized that it divides it into musical fractions, which is a slightly different logic.

This will definitely be an update to the ratchet functionality for my arpeggiator. Additionally, I'm considering making it a more advanced splitting tool. It seemed to me that we can use expansion or contraction to create interesting rolls instead of using the default alt+drag method, and we can include something like velocity interpolation, similar to MVelocity but in a more minimalist form. If you have any ideas, we can further enhance it.

erikmartinez is offline   Reply With Quote
Old 10-31-2023, 04:26 AM   #33
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

Woot, man so excited! Incredible, big ups for doing this!
Vagelis is offline   Reply With Quote
Old 10-31-2023, 05:49 AM   #34
dangguidan
Human being with feelings
 
Join Date: Jan 2019
Location: China
Posts: 689
Default

Quote:
Originally Posted by erikmartinez View Post
I understood what was wrong, the problem was due to the icons. I fixed this situation in the update (I hope it’s fixed for you too)
To install MVarious as a dependent library.
It's normal now, thank you!
__________________
My script sharing sources are mostly about MIDI editing.
https://github.com/zaibuyidao/YS_Rea...main/index.xml
dangguidan is online now   Reply With Quote
Old 10-31-2023, 07:58 AM   #35
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,894
Default

Quote:
Originally Posted by erikmartinez View Post
Additionally, I'm considering making it a more advanced splitting tool. It seemed to me that we can use expansion or contraction to create interesting rolls instead of using the default alt+drag method, and we can include something like velocity interpolation, similar to MVelocity but in a more minimalist form. If you have any ideas, we can further enhance it.
A more advanced tool sounds interesting, but please keep it minimal and with a small GUI like your example. Some other ideas I can think of is note probability, but I think will have a better view after testing it.
With such tools and at some point, we could use midi editor as a step sequencer since many features are included which is great.
Vagelis is offline   Reply With Quote
Old 10-31-2023, 06:57 PM   #36
dangguidan
Human being with feelings
 
Join Date: Jan 2019
Location: China
Posts: 689
Default

There is a small issue. After closing the window, the script is still running in the background. Can you close it directly and exit?
Additionally, because my MIDI timebase is 480ticks, the note length does not match. Setting it to a 1/16 note is actually an 1/8 note.
__________________
My script sharing sources are mostly about MIDI editing.
https://github.com/zaibuyidao/YS_Rea...main/index.xml
dangguidan is online now   Reply With Quote
Old 10-31-2023, 09:52 PM   #37
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by dangguidan View Post
There is a small issue. After closing the window, the script is still running in the background. Can you close it directly and exit?
Additionally, because my MIDI timebase is 480ticks, the note length does not match. Setting it to a 1/16 note is actually an 1/8 note.
Yes you are right. I forgot to include closing the script and the appearance of the on or off state.

Regarding the fact that the notes do not match, this is a rather strange phenomenon; another person previously had a similar problem. After he shared his project, I discovered some kind of glitch in the midi item.For some reason, the length of the bar did not correspond to the actual length. After checking, the solution was to glue this midi item and continue, or copy the notes into a new item. If this doesn't help, could you please provide an example or test project?
erikmartinez is offline   Reply With Quote
Old 10-31-2023, 11:09 PM   #38
dangguidan
Human being with feelings
 
Join Date: Jan 2019
Location: China
Posts: 689
Default

It should be a problem with the accuracy of MIDI ticks. The default accuracy of Reaper is 960 ticks, but users may not necessarily follow this setting, for example, my current setting is 480ticks.
At 960 ticks, a 1/16 note is 240 ticks, while at 480 ticks, a 1/16 note is 120 ticks.
I once used a method to detect the midi tick accuracy of the current take:
Code:
QN1 = reaper.MIDI_GetPPQPosFromProjQN(take, 0)
QN2 = reaper.MIDI_GetPPQPosFromProjQN(take, 1)
TIMEBASE = tonumber (string.format('%d', QN2 - QN1))
__________________
My script sharing sources are mostly about MIDI editing.
https://github.com/zaibuyidao/YS_Rea...main/index.xml
dangguidan is online now   Reply With Quote
Old 10-31-2023, 11:16 PM   #39
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default

Quote:
Originally Posted by dangguidan View Post
It should be a problem with the accuracy of MIDI ticks. The default accuracy of Reaper is 960 ticks, but users may not necessarily follow this setting, for example, my current setting is 480ticks.
At 960 ticks, a 1/16 note is 240 ticks, while at 480 ticks, a 1/16 note is 120 ticks.
I once used a method to detect the midi tick accuracy of the current take:
Code:
QN1 = reaper.MIDI_GetPPQPosFromProjQN(take, 0)
QN2 = reaper.MIDI_GetPPQPosFromProjQN(take, 1)
TIMEBASE = tonumber (string.format('%d', QN2 - QN1))
Oh, I got you! Thank you for sharing, this will help make a more universal script. To be honest, I didn’t know about the timebase change. I wrote it down in my notes.
erikmartinez is offline   Reply With Quote
Old 11-01-2023, 02:51 AM   #40
erikmartinez
Human being with feelings
 
erikmartinez's Avatar
 
Join Date: Feb 2023
Location: Kazakhstan
Posts: 220
Default Update 1.0.40

Thanks to zaibuyidao for the tips and for his numerous scripts for the MIDI editor. I started working in the MIDI editor with your wonderful scripts. The update is already available in the reapack.

In the new version 1.0.40:
◉ Keystrokes pass through the script window more smoothly
◉ The script closes properly upon exit (there were issues due to point 1)
◉ Arpeggio is inserted taking into account the current timebase of the MIDI item
◉ Minor optimization
erikmartinez 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 02:13 AM.


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