|
|
|
01-29-2008, 06:38 PM
|
#1
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
MIDI note randomization, Stillwell randomizer, etc.
Hey all, I need a plugin that will output random MIDI notes on trigger from note-on. The JS Stillwell randomizer almost does it for my purposes... the problem being that as far as I can tell it will only trigger from a single input note. I need a range of possible input notes, so I can do things like play 32nd notes from two alternating fingers... and microtonal (pitch-bend) variation would also be nice (although I could probably add it with one of the IX MIDI_Tools after the fact).
I've looked all over the Internets for a VST MIDI plugin that will do the job, and installed a bunch, but they all basically crash REAPER immediately. I'm no coder... but I'm guessing the Stillwell randomizer could be modified relatively easily to take at least a range of two input notes as triggers?
Alternately will take suggestions for any external MIDI VST plug that will do the trick
Thanks.
|
|
|
01-29-2008, 06:49 PM
|
#2
|
Human being with feelings
Join Date: Dec 2007
Location: east coast of Kansas
Posts: 681
|
Have you tried this one:
http://www.thepiz.org/dl/?p=vst
Scroll down to randomid 1.0.
I think some of the other stuff on that page may align well with your aesthetic also.
|
|
|
01-29-2008, 07:50 PM
|
#3
|
Administrator
Join Date: Mar 2007
Location: NY
Posts: 15,749
|
not exactly what you're after, but JS/schwa/midi_modal_randomness will output lots of random but structured midi notes.
|
|
|
01-29-2008, 08:59 PM
|
#4
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
Quote:
Originally Posted by the all new rob
Have you tried this one:
http://www.thepiz.org/dl/?p=vst
Scroll down to randomid 1.0.
I think some of the other stuff on that page may align well with your aesthetic also.
|
Yep... tried it... getting some weird behavior (only responding to about 4 out of every 5 note-ons, no note-off messages). At least it runs, unlike most of the others. Thanks
|
|
|
01-29-2008, 09:09 PM
|
#5
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
Quote:
Originally Posted by schwa
not exactly what you're after, but JS/schwa/midi_modal_randomness will output lots of random but structured midi notes.
|
That is definitely pretty darned neat, I'll probably end up finding some use for it now, but it's not quite what I am after here. If I'm getting the controls right... it's kind of more an algorithmic-ish arpeggiator... I am going for completely random pitches across a specified gamut triggered exclusively at my non-quantized whim. Like I said, the Stillwell randomizer would be perfect, if only it would allow me to trigger with at least two keys, if not the entire keyboard / polyphonically...
edit: Totally embarrassed to share this mp3 because it was just a way of killing time while the microwave finished with my veggie burgers, and I didn't even bother with the metronome (or a consistent meter for that matter):
http://lossfoundation.com/demos/the_future_3a.mp3
...but it does *sort* of exemplify what I'm after. This is being achieved with random pitch modulation on two awful samples, but I want the actual MIDI output to be randomized so I can load up a whole keymap's worth of awful samples and unleash an unrelenting, effortless assault on... I dunno, my cats.
Last edited by lossfound; 01-29-2008 at 09:14 PM.
|
|
|
01-29-2008, 10:09 PM
|
#6
|
Human being with feelings
Join Date: Mar 2006
Posts: 928
|
do you have matlab? - there is a miditoolbox for it that, strangely enough, i am using today to generate random pitches and onset times using a variety of distributions.
if you don't have it i could probably generate some for you.
aaaargh
actually i am being stupid - i think temper will do all this and more
available at www.angryredplanet.com
Last edited by gregh; 01-30-2008 at 04:07 AM.
|
|
|
01-30-2008, 12:20 AM
|
#7
|
Human being with feelings
Join Date: Feb 2007
Posts: 107
|
I had a quick look and I think stilwell's randomiser should be easy to change, but I have to go to work!!! I'll have a look tonight.
|
|
|
01-30-2008, 05:38 AM
|
#8
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
Quote:
Originally Posted by gregh
do you have matlab? - there is a miditoolbox for it that, strangely enough, i am using today to generate random pitches and onset times using a variety of distributions.
if you don't have it i could probably generate some for you.
aaaargh
actually i am being stupid - i think temper will do all this and more
available at www.angryredplanet.com
|
I don't have Matlab-- tried to figure it out once in an effort to see if it would generate high-quality EPS captures of waveforms but I'm just a dumb musician-- and also I am just looking for random note triggering on demand rather than algorithmic composition, but... what is this Temper business?! This looks highly intriiiiiguing. Thank you for the heads up.
edit: Not clear from reading through, can Temper be used as a VSTi within REAPER a la eXT?
Last edited by lossfound; 01-30-2008 at 05:43 AM.
|
|
|
01-30-2008, 05:40 AM
|
#9
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
Quote:
Originally Posted by LateStarter
I had a quick look and I think stilwell's randomiser should be easy to change, but I have to go to work!!! I'll have a look tonight.
|
A look at the code made me think the same thing but I can't code my way out of a wet paper bag. I can't even state how grateful I'd be if someone pulled this off!
|
|
|
01-30-2008, 08:13 AM
|
#10
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
|
Waving my own flag, have you tried Variant? It should be able to do what you want.
|
|
|
01-30-2008, 10:43 AM
|
#11
|
Human being with feelings
Join Date: Feb 2007
Posts: 107
|
I commented out a couple of lines so now I think Slider1 doesn't do anything. See if it works.
An alternative that would not be hard would be to add another slider so you could choose to listen for a range of notes between Slider1 and a new Slider2 to trigger random pitches.
unzip the file into your Reaper/Effects/SStillwell folder.
|
|
|
01-30-2008, 01:29 PM
|
#12
|
Human being with feelings
Join Date: Mar 2006
Posts: 928
|
Quote:
Originally Posted by lossfound
edit: Not clear from reading through, can Temper be used as a VSTi within REAPER a la eXT?
|
nope, it's stand alone - another (stand alone) one that might be good if you are looking for live interactive random shit is USINE.
http://www.sensomusic.com/news/
Neither replace Reaper, but are great (and affordable - possibly free!) adjuncts
|
|
|
01-30-2008, 07:29 PM
|
#13
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
LateStarter - Wow, thank you sooooooooooooo much. It does in fact work really well... the only issue being that a note-on prior to a note-off on the previous note results in a stuck note... see attached. Perhaps this is why Mr. Stillwell only had it listen to one note to begin with... I thought that was a weird limitation.
The stuck notes are kind of cool, and of course they can always be edited out.
Quote:
Originally Posted by IXix
Waving my own flag, have you tried Variant? It should be able to do what you want.
|
Yes, that also does in fact seem to do what I want, thank you for the heads-up. I was digging through the JS plugins yesterday, dropped it into a track setup, wondered what it did, pressed "Edit" for more info as instructed... and didn't see much info in the comments. But yeah, this is pretty great too.
|
|
|
01-30-2008, 07:47 PM
|
#14
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
Quote:
Originally Posted by gregh
nope, it's stand alone - another (stand alone) one that might be good if you are looking for live interactive random shit is USINE.
http://www.sensomusic.com/news/
Neither replace Reaper, but are great (and affordable - possibly free!) adjuncts
|
I've been hearing a lot about Usine and was looking at it over the weekend, but haven't given it a go yet. I was hoping it would be comparable to Bidule, but it doesn't quite look as flexible or as able to do weird stuff. Still, I'll probably give it a shot soon to see if it's got some potential that's not obvious from the screenshots etc.
|
|
|
01-31-2008, 04:55 AM
|
#15
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
|
Quote:
Originally Posted by lossfound
pressed "Edit" for more info as instructed... and didn't see much info in the comments.
|
Oops! Missed that. There used to be notes in the scripts for some of my effects but I removed them and put the documentation into a seperate file and later onto the wiki. Sorry about that!
|
|
|
01-31-2008, 06:03 AM
|
#16
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
Quote:
Originally Posted by IXix
Oops! Missed that. There used to be notes in the scripts for some of my effects but I removed them and put the documentation into a seperate file and later onto the wiki. Sorry about that!
|
Heh, np. Nothing beats real-world straightening-out from the developer.
I know you're likely done with this development-wise but are you in love with the name of the plugin? It seems to me it might be more obvious what it does if you put "random[ize]" somewhere in the name, so dolts like me looking for a quick fix to a laziness problem might be able to find it more easily.
I like the option of "predictably patterned randomization" that your plug offers. I'd never thought of trying something like that. Actually makes me want to see if I *can* learn to code JS to try similar screwy things out.
|
|
|
02-01-2008, 05:18 AM
|
#17
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
|
Quote:
Originally Posted by lossfound
I know you're likely done with this development-wise but are you in love with the name of the plugin?
|
Hey! The name is the most important part of the development process.
Seriously though, now it's out and people may be using it, I can't change the name. Besides, it's more about variation than randomisation.
Quote:
I like the option of "predictably patterned randomization" that your plug offers. I'd never thought of trying something like that. Actually makes me want to see if I *can* learn to code JS to try similar screwy things out.
|
Dive right in! It's pretty easy really, once you get used to it. MIDI stuff is especially easy since there's no scary maths involved.
|
|
|
02-03-2008, 08:15 PM
|
#18
|
Human being with feelings
Join Date: Jul 2006
Posts: 284
|
Quote:
Originally Posted by IXix
Seriously though, now it's out and people may be using it, I can't change the name.
|
Yeah, jeez, I can't believe I didn't think of that. I was not by any means insulting the name-- just thought it'd be awesome if it came up when I typed "ran" in the filter.
Thanks for the encouragement... I've been using REAPER for two years now but hadn't really ever dug into the JS stuff provided with the install. I'm pretty embarrassed, especially since I've had interest in things like cSound etc. in the past. The realtime aspect of the code is really amazing (again, how did I miss this?!) and I ought to be checking into it. I'll stare long and hard at your source sometime and see what I can figure out.
|
|
|
09-27-2017, 05:52 PM
|
#19
|
Human being with feelings
Join Date: Apr 2008
Posts: 262
|
I enabled this randomizer, and it seems to do exactly what I want. However, it isn't sending note off, so the notes sustain forever. Is anyone else having this problem?
|
|
|
10-03-2017, 05:44 PM
|
#20
|
Human being with feelings
Join Date: Dec 2014
Posts: 371
|
Not in front of my machine right now but I'm pretty sure you could patch something together with available JS plugins: note remapper (many notes to one)-> stuck note killer -> stillwell random note
|
|
|
10-15-2017, 08:57 AM
|
#21
|
Human being with feelings
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
|
I love these randomizer plugins but how do you get Reaper to notate the MIDI output notes into a MIDI item so I can edit in MIDI editor?
I tried setting output to MIDI and other options but nothing worked.
These random plugins are great but I can't record the data, it only plays back.
Can you tell me how to get the output of these JS random MIDI generators to populate into a MIDI item? Thank you.
__________________
47.8% of statistics are made up.
|
|
|
10-15-2017, 09:04 AM
|
#22
|
Human being with feelings
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
|
Solved it. Had to enable merge MIDI bus in the VST plug I was using to output MIDI.
Merge MIDI bus allows the random MIDI to be written to output on track. Love this!!!!!!
__________________
47.8% of statistics are made up.
|
|
|
07-03-2022, 03:50 AM
|
#23
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
All the Stillwell randomizer that i tried are broken. The midi note off is wrong. Is there a fix somewhere?
Edit: the issue is only when played with a midi keyboard.
Last edited by STOP; 07-03-2022 at 06:15 AM.
|
|
|
07-03-2022, 08:44 PM
|
#24
|
Human being with feelings
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
|
Maybe not quite what you are after, as it's not triggered by a note-on, I have a random note generator here - https://stash.reaper.fm/v/38410/Rand...Sequencer.jsfx
From the instructions:
---------------------
Random note generator with the option of filtering the output by mode, or by a custom scale. Note value, note length, note velocity and note send probability can all be randomised within a selectable range.
To use the custom scale option, select 'Custom Scale' from the 'Mode' slider, and click the key buttons in the graphics area to toggle the notes you want to use.
The transport must be running to get output.
----------------------
The note values can be used to trigger a drum or percussion FX to create random patterns, which can be fun. I could probably modify it to be triggered by note-on, as an option. That might be a useful addition.
|
|
|
07-04-2022, 11:38 PM
|
#25
|
Human being with feelings
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
|
Regarding my post above, I have added the option to trigger by midi note.
|
|
|
07-05-2022, 03:04 AM
|
#26
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
Thanks Time W.
I tried the latest script and it didn't work.
If you look at the Midi activity log from ReaControlMidi the first 2 (0 and 1) lines was triggered by C4 on the keyboard and there is no Note OFF but instead 2 Note ON 62 and 68.
|
|
|
07-05-2022, 06:49 AM
|
#27
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
|
I haven't tried RandomModalSequencer.jsfx myself, but looking at the source code it would seem to set trig_note when status == 0x90, even if velocity is zero. Only status == 0x80 will set end_note. So if your MIDI controller sends Note Off as 90 xx 00, then the current code will not recognize it as such.
|
|
|
07-05-2022, 07:46 AM
|
#28
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
Quote:
Originally Posted by Tale
I haven't tried RandomModalSequencer.jsfx myself, but looking at the source code it would seem to set trig_note when status == 0x90, even if velocity is zero. Only status == 0x80 will set end_note. So if your MIDI controller sends Note Off as 90 xx 00, then the current code will not recognize it as such.
|
Is it the same issue with sstillwell/randomizer ?
|
|
|
07-05-2022, 07:52 AM
|
#29
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
I added the DarkStar script.
Last post here:
https://forum.cockos.com/archive/ind.../t-171197.html
... and now the sstillwell/randomizer script work with my keyboard.
@Tale Thank you for the hint.
|
|
|
07-05-2022, 08:07 AM
|
#30
|
Human being with feelings
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
|
Quote:
Originally Posted by Tale
I haven't tried RandomModalSequencer.jsfx myself, but looking at the source code it would seem to set trig_note when status == 0x90, even if velocity is zero. Only status == 0x80 will set end_note. So if your MIDI controller sends Note Off as 90 xx 00, then the current code will not recognize it as such.
|
Ah yes, I should have thought of that. I'll fix it in the next day or so.
Last edited by Time Waster; 07-05-2022 at 03:37 PM.
|
|
|
07-05-2022, 08:17 AM
|
#31
|
Human being with feelings
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
|
Quote:
Originally Posted by STOP
Is it the same issue with sstillwell/randomizer ?
|
Yeah, I think so.
Quote:
Originally Posted by STOP
|
Nice!
Should anyone want to fix this, so it works with any MIDI controller out of the box, then you could change stillwell/randomizer like this:
Code:
@block
while(
midirecv(mpos, msg1, msg2) ? (
- (msg1 & 240) == note_on ? (
+ (msg1 & 240) == note_on && (velocity = (msg2 & 65280)) ? (
((msg1 & 15) == chan) || chan==-1 ? (
(msg2 & 255) == note ? (
- velocity = msg2 & 65280;
newnote = floor(rand(end-start)) + start;
newnote == prevnote ? newnote == end ? newnote = start : newnote += 1;
midisend(mpos, msg1, velocity | newnote);
prevnote = newnote;
);
) : (
midisend(mpos, msg1, msg2);
);
- );
- (msg1 & 240) == note_off ? (
+ ) :
+ (msg1 & 240) == note_off || (msg1 & 240) == note_on ? (
((msg1 & 15) == chan) || chan==-1 ? (
(msg2 & 255) == note ? (
midisend(mpos, msg1, newnote);
prevnote = newnote;
);
) : (
midisend(mpos, msg1, msg2);
);
);
);
);
|
|
|
07-05-2022, 09:29 AM
|
#32
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
Quote:
Originally Posted by Tale
Should anyone want to fix this, so it works with any MIDI controller out of the box, then you could change stillwell/randomizer like this:
Code:
@block
while(
midirecv(mpos, msg1, msg2) ? (
- (msg1 & 240) == note_on ? (
+ (msg1 & 240) == note_on && (velocity = (msg2 & 65280)) ? (
((msg1 & 15) == chan) || chan==-1 ? (
(msg2 & 255) == note ? (
- velocity = msg2 & 65280;
newnote = floor(rand(end-start)) + start;
newnote == prevnote ? newnote == end ? newnote = start : newnote += 1;
midisend(mpos, msg1, velocity | newnote);
prevnote = newnote;
);
) : (
midisend(mpos, msg1, msg2);
);
- );
- (msg1 & 240) == note_off ? (
+ ) :
+ (msg1 & 240) == note_off || (msg1 & 240) == note_on ? (
((msg1 & 15) == chan) || chan==-1 ? (
(msg2 & 255) == note ? (
midisend(mpos, msg1, newnote);
prevnote = newnote;
);
) : (
midisend(mpos, msg1, msg2);
);
);
);
);
|
It took me a while to understand the + and - sign of your @block part script but ounce I figured it out the script work as expected with a midi keyboard.
I renamed it to randomizer_2
Thank you Tale.
|
|
|
07-05-2022, 03:39 PM
|
#33
|
Human being with feelings
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
|
I've fixed the Random Modal Sequencer for note-on with velocity 0. Not tested, but it was an easy fix, so it should work.
Last edited by Time Waster; 07-05-2022 at 03:48 PM.
|
|
|
07-05-2022, 05:25 PM
|
#34
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
Quote:
Originally Posted by Time Waster
I've fixed the Random Modal Sequencer for note-on with velocity 0. Not tested, but it was an easy fix, so it should work.
|
I very much like the idea of the scales.
There is an issue when, accidentally, more than one notes is simultaneously played on the keyboard. After a certain time no more notes is played. If I stick on one note, let's say C4, it work fine. I'm no programmer but it look/sound like a buffer issue.
|
|
|
07-05-2022, 07:03 PM
|
#35
|
Human being with feelings
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
|
Quote:
Originally Posted by STOP
I very much like the idea of the scales.
There is an issue when, accidentally, more than one notes is simultaneously played on the keyboard. After a certain time no more notes is played. If I stick on one note, let's say C4, it work fine. I'm no programmer but it look/sound like a buffer issue.
|
It's only monophonic. In sequencer mode, no note is longer than the note increment chosen. It's not looking at the note value to sort out overlapping notes or anything. I just cobbled the note trigger thing together quickly. You need to make sure to send a note-off before sending another note. I'll have a look at that later and see if it's possible to make it polyphonic.
|
|
|
07-06-2022, 02:01 AM
|
#36
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
Quote:
Originally Posted by Time Waster
It's only monophonic. In sequencer mode, no note is longer than the note increment chosen. It's not looking at the note value to sort out overlapping notes or anything. I just cobbled the note trigger thing together quickly. You need to make sure to send a note-off before sending another note. I'll have a look at that later and see if it's possible to make it polyphonic.
|
Your right, it's monophonic and this is what I need, but there's a bug when playing different notes (monophonicaly) on the keyboard.
|
|
|
07-06-2022, 08:15 AM
|
#37
|
Human being with feelings
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
|
The latest update can now handle overlapping trigger notes. I did find one small bug: if playing the same note repeatedly very quickly, you can get a stuck note, but if you play another note, the stuck note gets unstuck. I'll look at that bug later, but it shouldn't cause too much of a problem if playing sensibly.
|
|
|
07-06-2022, 09:22 AM
|
#38
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
Randomly I loose notes and at same time the red light doesn't light up on the JSFX keyboard.
|
|
|
07-06-2022, 03:18 PM
|
#39
|
Human being with feelings
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
|
Quote:
Originally Posted by STOP
Randomly I loose notes and at same time the red light doesn't light up on the JSFX keyboard.
|
Is the send probability set to 100%?
|
|
|
07-06-2022, 03:40 PM
|
#40
|
Human being with feelings
Join Date: Jul 2013
Location: Québec
Posts: 484
|
Quote:
Originally Posted by Time Waster
Is the send probability set to 100%?
|
Yes.
and I checked if the keyboard always send a note by inserting ReaControlMidi at the top of the chain. Log activity tell me that Keyboard is not the culprit.
|
|
|
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 10:11 AM.
|