Old 06-01-2020, 07:05 AM   #1
Mr.Music15
Human being with feelings
 
Mr.Music15's Avatar
 
Join Date: Jul 2018
Posts: 25
Default JSFX: every note the same

This script slips all MIDI notes to the same note.

Download:
https://stash.reaper.fm/v/42554/every_note_the_same

Example of use:
https://youtu.be/JelMuzelt2A

Last edited by Mr.Music15; 08-07-2021 at 06:55 AM. Reason: JSFX Update
Mr.Music15 is offline   Reply With Quote
Old 06-01-2020, 10:18 AM   #2
vitalker
Human being with feelings
 
vitalker's Avatar
 
Join Date: Dec 2012
Posts: 13,333
Default

Actually you can do it in Midi editor. Choose the notes you need and View->Event properties. There just set note for selected ones.
vitalker is offline   Reply With Quote
Old 06-23-2020, 01:15 AM   #3
Mr.Music15
Human being with feelings
 
Mr.Music15's Avatar
 
Join Date: Jul 2018
Posts: 25
Default

You're right, but this tool does it in real time
Mr.Music15 is offline   Reply With Quote
Old 06-23-2020, 01:19 AM   #4
vitalker
Human being with feelings
 
vitalker's Avatar
 
Join Date: Dec 2012
Posts: 13,333
Default

Quote:
Originally Posted by Mr.Music15 View Post
You're right, but this tool does it in real time
Then it may be helpful, thanks.
vitalker is offline   Reply With Quote
Old 03-03-2023, 08:43 AM   #5
F1308
Human being with feelings
 
F1308's Avatar
 
Join Date: Nov 2022
Location: It is season dependant.
Posts: 746
Default

Quote:
Originally Posted by Mr.Music15 View Post
This script slips all MIDI notes to the same note.

Download:
https://stash.reaper.fm/v/42554/every_note_the_same

Example of use:
https://youtu.be/JelMuzelt2A
You are my hero !!!!

And it's been available from long ago !!!!

Thank you very much.

😀😀😀😀
🎹🎹🎹🎹
F1308 is offline   Reply With Quote
Old 03-03-2023, 08:45 AM   #6
F1308
Human being with feelings
 
F1308's Avatar
 
Join Date: Nov 2022
Location: It is season dependant.
Posts: 746
Default

Quote:
Originally Posted by vitalker View Post
Actually you can do it in Midi editor. Choose the notes you need and View->Event properties. There just set note for selected ones.
We the keyboardist need this to play same patch, say a drum or castanets or a shaker in real time regardless of the key we hit.

I love it.

😀😀😀😀
🎹🎹🎹🎹
F1308 is offline   Reply With Quote
Old 03-03-2023, 02:02 PM   #7
F1308
Human being with feelings
 
F1308's Avatar
 
Join Date: Nov 2022
Location: It is season dependant.
Posts: 746
Default

Quote:
Originally Posted by Mr.Music15 View Post
This script slips all MIDI notes to the same note.

Download:
https://stash.reaper.fm/v/42554/every_note_the_same

Example of use:
https://youtu.be/JelMuzelt2A
This is truly astounding.

Congratulations and many thanks once again.

I just made a track with several instruments, delays, note lengths and your script, and I can do so many things I cannot tell you how happy I am.

Yupiiii.

😀😀😀😀
🎹🎹🎹🎹
F1308 is offline   Reply With Quote
Old 03-08-2023, 05:27 AM   #8
Suzuki
Human being with feelings
 
Suzuki's Avatar
 
Join Date: Jul 2022
Location: Japan
Posts: 765
Default

This is also useful to trigger true-grue's euclidean rhythms JSFX each time you play the chord, for example. I like to use it in combination with MIDI Gate.
Suzuki is offline   Reply With Quote
Old 03-09-2023, 12:07 PM   #9
Andreya
Human being with feelings
 
Join Date: Apr 2021
Posts: 298
Default

Anyone wanna lend a noob some help? I'm trying to modify this plug to have a MIDI channel slider, do its thing on the selected channel and leave all other channels alone. I borrowed some code from another similar plug that has such a function, and got this:

Code:
slider1:48<-0,127,1{0: C-1,1: C#-1,2: D-1,3: D#-1,4: E-1,5: F-1,6: F#-1,7: G-1,8: G#-1,9: A-1,10: Bb-1,11: B-1,12: C0,13: C#0,14: D0,15: D#0-1,16: E0,17: F0,18: F#0,19: G0,20: G#0,21: A0,22: Bb0,23: B0,24: C1,25: C#1,26: D1,27: D#1,28: E1,29: F1,30: F#1,31: G1,32: G#1,33: A1,34: Bb1,35: B1,36: C2,37: C#2,38: D2,39: D#2,40: E2,41: F2,42: F#2,43: G2,44: G#2,45: A2,46: Bb2,47: B2,48: C3,49: C#3,50: D3,51: D#3,52: E3,53: F3,54: F#3,55: G3,56: G#3,57: A3,58: Bb3,59: B3,60: C4,61: C#4,62: D4,63: D#4,64: E4,65: F4,66: F#4,67: G4,68: G#4,69: A4,70: Bb4,71: B4,72: C5,73: C#5,74: D5,75: D#5,76: E5,77: F5,78: F#5,79: G5,80: G#5,81: A5,82: Bb5,83: B5,84: C6,85: C#6,86: D6,87: D#6,88: E6,89: F6,90: F#6,91: G6,92: G#6,93: A6,94: Bb6,95: B6,96: C7,97: C#7,98: D7,99: D#7,100: E7,101: F7,102: F#7,103: G7,104: G#7,105: A7,106: Bb7,107: B7,108: C8,109: C#8,110: D8,111: D#8,112: E8,113: F8,114: F#8,115: G8,116: G#8,117: A8,118: Bb8,119: B8,120: C9,121: C#9,122: D9,123: D#9,124: E9,125: F9,126: F#9,127: G9}>Root Note
slider2:0<0,1,1{No,Yes}>Block Sustain Pedal
slider3:0<0,16,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Channel

out_pin:none
out_pin:none

@init
note_count = 0; // this turns a while loop into a for loop

// all notes are set to 0 when loading the plugin (0 = key is not pressed, 1 = key is pressed)
while ( note_count < 127 ) (
  note_array[note_count] = 0;
  note_count = note_count + 1;
);


@slider
root_note = slider1; // This MIDI note will be sent to the instrument at the end.
block_sustain_pedal = slider2; // decides whether the sustain pedal has effect (0 = Sustain pedal has an effect, 1 = has no effect)
inChannel = slider3 - 1; //decides on which MIDI channel to listen

@block

block_note_off = 0; // determines when a note-off command may be sent and when not (0 = note-off command may be sent, 1 = a no note-off command may be sent)
while 
(
     midirecv(offset,msg1,msg2,msg3)?
    (
        channel = msg1 & 15;

        channel == inChannel || inChannel == -1 ?
        (
            msg1 == $x90? note_array[msg2] = 1; // depending on which note is pressed, the note is also set in the array as pressed (1 = Note is pressed)
            msg1 == $x80? note_array[msg2] = 0; // depending on which note is released again, the note is also set to not pressed again in the array (0 = not pressed)

            note_count2 = 0; // this turns a while loop into a for loop 
  
            // goes through the array and looks if a note was pressed
            while (note_count2 < 127)
                (
                    note_array[note_count2] == 1?
                   (
                        block_note_off = 1;
                    );
                    note_count2 = note_count2 + 1;
                );
                 // If Sustian Pedal pressed
                 block_sustain_pedal == 0?  
                (
                    msg1 == $xB0 && msg2 == 64 && sustain_pedal == 0?
                    (
                        sustain_pedal = 1;
                    ):(
                        msg1 == $xB0 && msg2 == 64 && sustain_pedal == 1?
                        sustain_pedal = 0;
                    );
                ):(
                      sustain_pedal = 0;
                );
                     // When the sustain pedal is released, a note-off command is also sent
                    sustain_pedal == 0 && block_note_off == 0? midisend(offset,$x80,root_note,msg3);
                    // This if loop decides whether a note-off command is sent
                    sustain_pedal == 0 && msg1 == $x80 && block_note_off == 0?
                    (
                        midisend(offset,msg1,root_note,msg3);
                    );
                     // Allows all commands to pass that meet the conditions
                        msg1 == $x90 || msg1 !== $x80?
                    (
                        midisend(offset,msg1,root_note,msg3);
                    );
        )
        :
        midisend(offset, msg1, msg2, msg3); //Not on our channel, pass thru
    );
  
); // The end of the midi receive while-loop

@sample
(Comments not mine)
But it keeps doing its thing on all the channels. And what's worse, it's not outputting any note-offs. Anyone see any obvious causes for those problems?
Andreya is offline   Reply With Quote
Old 03-10-2023, 12:35 AM   #10
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Well, the outer while loop in @block will stop looping when this expression is false:

Code:
channel == inChannel || inChannel == -1
Tale 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 01:33 PM.


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