Old 07-23-2016, 10:21 PM   #1
RCJacH
Human being with feelings
 
Join Date: Apr 2016
Location: Beijing, China
Posts: 215
Default JSFX: MIDI Note Beat Repeater

http://rcjach.lofter.com/post/1d452e62_bc888bc
Stash:
https://stash.reaper.fm/v/28130/midi_...maschine_style

Update:
* v1.1 (2016-10-09)
+ Renamed
+ Added Gate Function (Note Length)
+ Added Sync to grid function
# Fixed Note On accuracy

This script is made to emulate the note repeating function in Native Instrument Maschine hardware.

I have never used Maschine myself, thus I do not know how it really works.

However, I did watch some video that demonstrated great workflow for inputting hihat patterns.

You can use this script in two ways:

1. Insert as an input FX of your track. Assign MIDI CCs to all of the 4 parameters, trigger slider4 and press a note, the pressed note will repeat itself at an interval set using slider1(Rate), while slider2(Type) determines the type of rhythm it generates.

2. Insert as a normal FX before your sampler. Write the trigger note for the desired sample, and use envelop to control the parameters. You can even insert another track and record MIDI output of the original track, which allows you to edit the generated pattern.

The Normal Type Lock slider(3) is great for drill type patterns where you have a steady 8th note groove with occasional 8th or 16th note triplet variations. This setting will free you from alternating the type slider from triplet to normal constantly.

Channel Pressure is used to vary the velocity of repeated notes: output Velocity = Channel Pressure.

Potential Addition:
1. Velocity and Timing Humanization
2. Aftertouch %.
3. Native CC sliders.
4. Work with pause play_state.

Input:


Process:


Output:



I actually don't know how to make this script sync to grid lol.
I also failed to implement Aftertouch % (can't figure out the algorithm), thus leaving it out in this version.

Last edited by RCJacH; 10-09-2016 at 07:15 AM. Reason: 1.1 Update
RCJacH is offline   Reply With Quote
Old 07-24-2016, 01:37 AM   #2
vanhaze
Human being with feelings
 
vanhaze's Avatar
 
Join Date: Jul 2012
Location: Netherlands
Posts: 5,247
Default

I just tried this out and it's much fun, thanks a bunch !!
vanhaze is offline   Reply With Quote
Old 07-27-2016, 08:17 AM   #3
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Posts: 3,672
Default

subscribed
__________________
mccrabney scripts: MIDI edits from the Arrange screen ala jjos/MPC sequencer
|sis - - - anacru| isn't what we performed: pls no extra noteons in loop recording
| - - - - - anacru|sis <==this is what we actually performed.
mccrabney is online now   Reply With Quote
Old 10-12-2016, 11:02 PM   #4
NextLevel
Human being with feelings
 
Join Date: Dec 2014
Posts: 417
Default

Cool effect, but there seems to be a couple of bugs;

1) It seems to be repeating every note that is played, even after notes are no longer being held, for example play a C, let up then play D# and let up, now play and hold the C and you will see that C and D# are being repeated as though a chord is being held.

2) Getting stuck notes when transport play is engaged while holding a note.
NextLevel is offline   Reply With Quote
Old 10-13-2016, 12:40 PM   #5
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 755
Default

This is a much needed/welcomed addition to reaper.
Ozman is offline   Reply With Quote
Old 11-25-2019, 08:17 AM   #6
Swi
Human being with feelings
 
Join Date: Apr 2018
Posts: 358
Default Different repeat values for different notes on the keyboard

I am loving this plug. I wanted to set different repeat values for different notes and use it for a hipchat trigger.
For example. C1=1/4, C#1=1/4trip, D1=1/8, D#1=1/8trip, E1=1/16, E#=1/16trip, etc. Setting up a parameter modulator is not as easy or manageable as it mat seem. If anyone knows how to do this please let me know.
Swi is offline   Reply With Quote
Old 11-25-2019, 01:08 PM   #7
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 755
Default

I recently came up with a way around it by routing keys/pads/samples to other midi channels
(e.g. 10 - 15 to other tracks, each having this plugin on them with different repeater settings).
I combined that with setting specific notes (outside of the playable range of samples/pads) to go to those midi channels (via another JSFX plugin).

I'm using them as such: 5 different keys/pads to go to each channel for my closed hh, and 5 others to the same channels for my open hh.
Ozman is offline   Reply With Quote
Old 11-27-2019, 10:23 AM   #8
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 755
Default

To make it easier, I've uploaded a track template to start one off with using this script in a modern electronic drum performance.
https://stash.reaper.fm/v/37611/Drums.RTrackTemplate

The initial performance can recorded using the Beat Performer > MIDI INPUT track, which is automatically armed at track selection.
And the final MIDI render can be recorded at Drums Hub, which is also automatically armed upon track selection.

One can extend and/or change notes used to trigger repeats as desired.

The additional JSFX used are as follows:
X-Raym_MIDI single note map
midi_note2channel
midi_note_filter
Ozman is offline   Reply With Quote
Old 11-29-2019, 01:27 AM   #9
Swi
Human being with feelings
 
Join Date: Apr 2018
Posts: 358
Default

Thanks, Ozman.

I made a project with what I wanted and put it here.

https://stash.reaper.fm/v/37616/Beat%20repeater.rpp

I was trying to imitate the battery 3 behavior where you can use the "retrigger" effect to make these HH rolls.

My problem now is that the beat repeater does not seem to be performing triplets as expected.
Swi is offline   Reply With Quote
Old 12-02-2019, 06:15 AM   #10
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 755
Default

Quote:
Originally Posted by Swi View Post
Thanks, Ozman.

I made a project with what I wanted and put it here.

https://stash.reaper.fm/v/37616/Beat%20repeater.rpp

I was trying to imitate the battery 3 behavior where you can use the "retrigger" effect to make these HH rolls.

My problem now is that the beat repeater does not seem to be performing triplets as expected.
Can you also upload somewhere an example of the sound you're aiming for and how the chain is performing?
Ozman is offline   Reply With Quote
Old 12-31-2019, 04:10 PM   #11
themixtape
Human being with feelings
 
themixtape's Avatar
 
Join Date: Aug 2009
Posts: 1,199
Default

Looks really useful! But I can't get it to show up in my Reaper JS plugins... anywhere. They go here, right?

\Effects\Midi (the main Reaper folder)?

Thanks!

EDIT: nevermind, showing up now... I put it in the main Effects folder. Restarted Reaper, there it is

Any way to trigger the note divisions (midi-learn) from a midi button instead of a knob or encoder? I love this plugin... but would love Note Repeat buttons as opposed to spinning a knob... cool either way! Thanks!
__________________
FREE copyright-safe/DMCA-safe music for Twitch/Kick streamers, classrooms, waiting rooms (playlists on all streaming platforms):
https://tinyurl.com/copyrightsafemusic

Last edited by themixtape; 12-31-2019 at 04:23 PM.
themixtape is offline   Reply With Quote
Old 01-02-2020, 08:53 AM   #12
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 755
Default

Quote:
Originally Posted by themixtape View Post
Looks really useful! But I can't get it to show up in my Reaper JS plugins... anywhere. They go here, right?

\Effects\Midi (the main Reaper folder)?

Thanks!

EDIT: nevermind, showing up now... I put it in the main Effects folder. Restarted Reaper, there it is

Any way to trigger the note divisions (midi-learn) from a midi button instead of a knob or encoder? I love this plugin... but would love Note Repeat buttons as opposed to spinning a knob... cool either way! Thanks!
You can probably look into a way to convert a boolean CC signal to one with a value.
Maybe, you can test with the Midi CC Mapper.
Ozman is offline   Reply With Quote
Old 09-07-2022, 08:37 PM   #13
Rockum
Human being with feelings
 
Join Date: Apr 2009
Location: Nashville
Posts: 186
Default

RCJacH, do you think it would be difficult to add a swing feature to the end of processes?

I have been using Insert Piz Here's midiSwing VST after this fx and it works well, but for several reasons, I would love to have swing built in to your beat repeater.

You can download the free vst here:
https://www.paulcecchettimusic.com/p...ownload-links/

To be honest, I would love it if you could also bundle in the function of Insert Piz Here's midiForceToRange as well, but admittedly it's not as connected to the original purpose of your work as a swing feature is.
Rockum is offline   Reply With Quote
Old 09-09-2023, 05:21 PM   #14
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 171
Default

Can anyone help me with how I would go about assigning input CC to control the faders of this JSFX. Specifically NOT using Reapers MIDI learn control infrastructure. Rather, having the JSFX directly interpret CC input in the channel strip data stream to it's existing sliders.

Reason being: I have a grid controller that outputs a fixed array if MIDI notes. I then have a lookup table that converts these to whatever I need. So rather than having to switch settings on my control depending on which plugin I'm controlling, the whole channel strip preset loads and works right off the bat.

Thanks
mks is offline   Reply With Quote
Old 09-13-2023, 06:15 AM   #15
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 171
Default

Yes. Noticed that too. And it can’t handle note offs from something like an Osmose where Note off is transmitted with a different ‘Data byte 1’ value (ie. 8 instead of 9 I believe). Leaving all notes always hanging. That can be fixed by running it through NoteMapper (but that has a major bug that’s getting in the way of other things).
mks is offline   Reply With Quote
Old 09-13-2023, 06:30 AM   #16
robotron
Human being with feelings
 
Join Date: May 2020
Posts: 337
Default

Quote:
Originally Posted by mks View Post
Yes. Noticed that too. And it can’t handle note offs from something like an Osmose where Note off is transmitted with a different ‘Data byte 1’ value (ie. 8 instead of 9 I believe). Leaving all notes always hanging. That can be fixed by running it through NoteMapper (but that has a major bug that’s getting in the way of other things).
EDIT- I thought it was only occurring when the sequencer is stopped but after playing with it a bit more it still looks like the stuck notes are occurring very frequently when the sequencer is playing, will almost always get a stuck note after a few seconds of changing chords. When the sequencer is stopped it'll happen even more though (about 50% of the time when you play a chord).

Reposting the detail here in case it's useful to the dev or anyone else:
Playing chords frequently result in missing note off messages/hanging notes.

E.g. playing a two note chord it often repeats one of the note's on messages and then only sending a note off message for the duplicated one when both keys are released.

Reacontrol log excerpt:
0: 9F 3C 35 [Note On] chan 16 note 60 vel 53
1: 9F 43 32 [Note On] chan 16 note 67 vel 50
2: 9F 43 32 [Note On] chan 16 note 67 vel 50
3: 8F 43 00 [Note Off] chan 16 note 67
4: 8F 43 00 [Note Off] chan 16 note 67

Last edited by robotron; 09-18-2023 at 05:24 AM.
robotron 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 03:41 AM.


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