|
|
|
06-01-2020, 07:05 AM
|
#1
|
Human being with feelings
Join Date: Jul 2018
Posts: 25
|
JSFX: every note the same
Last edited by Mr.Music15; 08-07-2021 at 06:55 AM.
Reason: JSFX Update
|
|
|
06-01-2020, 10:18 AM
|
#2
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Actually you can do it in Midi editor. Choose the notes you need and View->Event properties. There just set note for selected ones.
|
|
|
06-23-2020, 01:15 AM
|
#3
|
Human being with feelings
Join Date: Jul 2018
Posts: 25
|
You're right, but this tool does it in real time
|
|
|
06-23-2020, 01:19 AM
|
#4
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by Mr.Music15
You're right, but this tool does it in real time
|
Then it may be helpful, thanks.
|
|
|
03-03-2023, 08:43 AM
|
#5
|
Human being with feelings
Join Date: Nov 2022
Location: It is season dependant.
Posts: 746
|
Quote:
Originally Posted by Mr.Music15
|
You are my hero !!!!
And it's been available from long ago !!!!
Thank you very much.
😀😀😀😀
🎹🎹🎹🎹
|
|
|
03-03-2023, 08:45 AM
|
#6
|
Human being with feelings
Join Date: Nov 2022
Location: It is season dependant.
Posts: 746
|
Quote:
Originally Posted by vitalker
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.
😀😀😀😀
🎹🎹🎹🎹
|
|
|
03-03-2023, 02:02 PM
|
#7
|
Human being with feelings
Join Date: Nov 2022
Location: It is season dependant.
Posts: 746
|
Quote:
Originally Posted by Mr.Music15
|
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.
😀😀😀😀
🎹🎹🎹🎹
|
|
|
03-08-2023, 05:27 AM
|
#8
|
Human being with feelings
Join Date: Jul 2022
Location: Japan
Posts: 765
|
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.
|
|
|
03-09-2023, 12:07 PM
|
#9
|
Human being with feelings
Join Date: Apr 2021
Posts: 298
|
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?
|
|
|
03-10-2023, 12:35 AM
|
#10
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
|
Well, the outer while loop in @block will stop looping when this expression is false:
Code:
channel == inChannel || inChannel == -1
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 01:33 PM.
|