Old 03-26-2009, 03:49 AM   #1
Human being with feelings
DarkStar's Avatar
Join Date: May 2006
Location: Surrey, UK
Posts: 18,028
Default Third-Party JS FX Library

*** Please do not reply to this thread, send me a PM instead ***

As I love (most of) you guys so much I have put together this JS FX Library, with summary descriptions of the JS FX published by Reaper users, and links to the original threads.

I have organised them into categories, with the recent threads first. Please let me know, via PM, about any new JS FX, errors or omissions.

Shortcut links to the FX categories:
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 11-23-2015 at 02:55 AM. Reason: added MIDI FX section
DarkStar is online now   Reply With Quote
Old 03-26-2009, 03:50 AM   #2
Human being with feelings
DarkStar's Avatar
Join Date: May 2006
Location: Surrey, UK
Posts: 18,028
Default Audio Editing / Recording

Retrospective Record

JS-utility Records incoming data to the buffer during playback.
The buffer is refreshed when you start playback(if received new data).
Script Reads MIDI-data from the JS buffer and adds them to the currently selected track.
Supported basic data types:
NoteON-NoteOFF,PKeyPressue,ControlChange,ProgrammChange,C hanPressue,PWheel Change.

JS-utility Records incoming data to the buffer during playback.
The buffer is refreshed when you start playback.
Script Inserts Audio-Buffer from JS to the currently selected track.

- THE free drum replacing solution

- Velocity sensitive drum replacer
- Force variation-slider to avoid the machine gun-effect in for example snare fills (Round robin *beyond* layers)
- built-in sampler that supports any samplerate
- Dynamics-slider to control how hard the drummer beats those things
Put DrumReaplacer on any track where you want to replace a drum, lower the threshold until you hear it in action.
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 11-23-2015 at 02:57 AM.
DarkStar is online now   Reply With Quote
Old 03-26-2009, 03:51 AM   #3
Human being with feelings
DarkStar's Avatar
Join Date: May 2006
Location: Surrey, UK
Posts: 18,028
Default Audio Analysis

v1.1a: http://forum.cockos.com/showthread.php?t=134869
v1.0: http://forum.cockos.com/showthread.php?t=133801
James HE

Multi-receive spectrum analyzer

JS-multifreaq is a tool that lets you see your mixing problems. You insert it into a track with up to 14 channels and route the tracks you want to observe instant frequency distributions of to the channels 1/2, 3/4... etc. For example: bass drum is sent to 1/2 and the bass to 3/4... and lead vocal to 5/6... in this case (if you only have 6 channels on the track) you'll see 3 different spectrums for each source.

Liteon's JS plugins pack

VUMeterGFX / VUMeterGFXSum (vumetergfx/vumetergfxsum)
- Vintage-style VU meter with response and release controls. Uses the GFX section to draw all graphics in real-time. Summed (L+R) and stereo versions.
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 02-05-2014 at 02:54 AM. Reason: Added Oscope+
DarkStar is online now   Reply With Quote
Old 03-26-2009, 03:52 AM   #4
Human being with feelings
DarkStar's Avatar
Join Date: May 2006
Location: Surrey, UK
Posts: 18,028
Default Synths


* Waveform design with variable harmonic width
* Filter (2nd-order lowpass) with envelope
* LFO (can modulate filters, note freq/amp, or other LFOs)
* MIDI Controllers (can modulate filters, note freq/amp, LFOs)

a brand new JS Synthesizer and More



syn_binauralbeats, as the name says, binaural beats, brainwave synchronization, alpha waves...
syn_kick, very simple kick drum synth, ala/inspired by the ones in FL and lmms.
syn_plucked, plucked string synth, karplus strong, waveguide, ...
syn_reatalker, speech/phoneme synth, shaping up, but more work to do here

Liteon's JS plugins pack

* LorenzAttractor (lorenzattractor) - Synthesizer based on Lorenz Attractor formulas. Has two oscillators: one sine wave, one square wave. There are various parameters that control both the sound and the plotted graphics. Can be used to produce ambient sounds.
* Pink Noise Generator (filename: pinknoisegen)


* generates sine, noise or square wave based on triggered by track input
* gate has attack/release
* wet/dry mix
* noise and square wave can be low-pass filtered
* dynamic pitch
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 09-05-2016 at 03:45 AM. Reason: added geraintluff's PadSynth
DarkStar is online now   Reply With Quote
Old 03-26-2009, 03:53 AM   #5
Human being with feelings
DarkStar's Avatar
Join Date: May 2006
Location: Surrey, UK
Posts: 18,028
Default MIDI Generators


A MIDI sequencer that allows random selection of some (or all) notes in the sequence.

CC Injector

>>> https://i.imgur.com/yusgv.png

"Inject" the desired CC message from another track into the Automation path, via Jeffos' MIDItoReaControlPath:

VI Sculpt - to shape virtual instruments

VI Sculpt performs multiple tasks to help automate the sculpting of pre-recorded MIDI data for more organic playback, especially for virtual instruments that offer many articulations and/or CC automation, such as VSL and Spitfire Audio libraries.

arp!0 - groovy MIDI arp

arp!0 notable features:
  • independent length for each control sequence. parameter polyrhythms!
  • all real-time controls visible at once. change anything immediately.
  • expandable control grids for even more immediacy!
  • accent and offset sequences can create cool rhythmic grooves.
  • step length and voices sequences for uneven, chordal arpeggios.
  • variants for quick change arps with mouse or midi programs changes.
  • user definable sort transforms rearrange input notes in unique ways.
  • syncs to the beat when the host is playing or recording.
  • plays in time as settings change, and through variant & preset changes!
  • all arp parameters are saved in Reaper presets.
  • real-time display of active notes, played notes, and current steps.
  • pronounced "arp!-oh" (the bang is silent :^)


  • normal mode & trigger on note mode (optional restart)
  • 2 trigger note ranges
  • freerun without "gaps" when changing frequency
  • simple LFO-stuff like pulsewidth & phase
  • trigger on CC (first CC toggles on, next CC toggles off, next on, ...), CC# definable
  • LFO fade in & fade out in trigger mode (various fade shapes)
  • CC support for every slider

Nova Two - generative sequencer

It is an evolution of Nova One and has enough new features that it's out there as a separate plugin. The main upgrades are:
- resizable matrix, up to 17x17
- user selectable scale, lots of predefined scales
- scale transposition
- triggers for rover deletion

Nova One, (inspired by Otomata http://www.earslap.com/), that generates MIDI sequences based on rovers moving through a matrix. Rovers that collide with walls make sound, rovers that collide with each other change direction, and rovers that strike obstacles have their direction and position affected in various ways. The end result is a sequence of notes that evolves and changes in (usually) pleasant and unpredictable ways.

Stepsequencer for Battery and other Drummies
  • JS sequencer baby modification
  • changed the size, so that it fits nicely on my second screen together with Battery
  • the Screen has a resolution of 1290x1024 pixels. I have Reaper running on my other screen.
  • If you have a larger screen, you can modify the size of it of course.

New Improved JS Super Arp!

Here's the new, improved version of whatsup's Super Arpeggiator (GUI version) which features:
  • New play modes
  • Chords
  • Multiple Patterns (up to 32)
  • New Slice options
  • New GUI (again!)
  • A help screen (click the question mark)

a brand new JS Synthesizer and More (Super Arp)



My original idea is/was that whenever one of these coloured squares light up, a MIDI note-on is sent out, pitch/note number defined by vertical/y-position, like a piano grid or normal step sequencer, and the x axis (horizontal) something else, perhaps some MIDI CC. and there can be three separate sets of these triggers (r,g,b).

Or, there can be three different 'output types', one for each colour. Red could be MIDI note, green control change and blue something else...

JS MIDI Note Preview

A plugin I made so that I can preview the drum sounds already loaded when I load my drum template tracks.

To be able to draw automation envelopes for external MIDI gear (or internal). Simply automate the plugin's parameters as needed.

El Chordero - js chords sequencer / micro arranger

MIDI Chord Splitter

Say you have a cool monophonic-synth (like FXpansion's free Orca) but you want to be able to play chords with it.
Solution: schedule the incoming polyphonic-MIDI-notes to individual Reaper-tracks. Each such track is embedding an instance of the monophonic-synth.
Endless possibilities: Adjust each channel separately (sound, panning, etc...)

1. create a track for MIDI-input
2. insert an instance of the MIDI Chord Splitter Effect
3. Set the number of voices to use
4. for each voice create another track and insert a VSTi of your choice
5. route the MIDI-output of the first track to each instrument track (1:n)

-- Track1: MIDI IN -> MIDI Chord Splitter (parameter Voices = 3)
-- Track2: VSTI Synth1a, Receive MIDI from Track1 to MIDI-Channel1
-- Track3: VSTI Synth1b, Receive MIDI from Track1 to MIDI-Channel2
-- Track4: VSTI Synth1c, Receive MIDI from Track1 to MIDI-Channel3

Sendo - JS Graphic, MIDI CC timed sender

This sends Controller changes based on a timed sequence, with randomization.

VeloCycle - MIDI Velocity Sequencer - Randomizer

FrAr - the free pattern arpeggiator

FrAr <Free Pattern Arpeggiator> is an arpeggiator which doesn't generate any sequence itself but uses an arbitrary melody as a pattern. When you play some chord, the melody becomes played by the notes of this chord preserving its timing and dynamics.

LaRa - MIDI drum layerer/randomizer

LaRa is a MIDI-plugin for drum sounds layering/randomization. Using it with any (even the simplest) multichannel sampler you can build drumkits with up to 16 'drumpads', each having up to 4 layers with individual velocity curves and 16-to-1 sound variation randomization.

Pianolla Micro Keyboard

Sequencer Baby Modification

This modification slows down the steps from 1/4 to 4 measures. I can use it to drive groove agent and boomstick bassist where variations are triggered by notes. In this manner the making of a varied pattern of multiples measures is easy as pie.
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 09-05-2016 at 04:06 AM. Reason: added DarkStar's CC Injector
DarkStar is online now   Reply With Quote
Old 03-26-2009, 03:55 AM   #6
Human being with feelings
DarkStar's Avatar
Join Date: May 2006
Location: Surrey, UK
Posts: 18,028
Default MIDI Editing II

MIDI Routing Matrix
This FX allows arbitrary routing of MIDI channels.


-- detects redundant CC messages (same CC number, MIDI channel and value) and deletes them
-- Match menu choices:
Ignore MIDI channel, match only on CC number and value
For each channel, match on CC number and value
For the selected channel only, match on CC number and value
-- Match CC# choices:
check all CC message numbers
check the selected CC number only
MIDI Nudge

*** Derived from the Reaper time_adjustment JSFX **
Moves MIDI messages forwards or backwards.

Set either of the top two sliders (960 ticks per beat). Set the third slider, if desired. The net resulting delay is shown on the 4th and 5th sliders.

It should do negative nudges too - by passing a PDC value back to Reaper.


MIDI Transposer and Compressor

You'll recognise the problem: you've got a Kontakt instrument with articulations selected by key switches. So you set your MIDI keyboard up so you can trigger the articulations, probably with keys on the left-hand side of the keyboard. So far, so good.

But you've only got a small keyboard. So if you change it up an octave you can play higher notes, but all the key-switch keys are no longer available.

-- the range of keys for the key switches can be defined
-- the other (playable) keys can be transposed by an octave at a time
-- the octave transpose can be changed from 2 buttons (sending CC value of 127) on the MIDI keyboard
-- the range of keys (above the highest key switch) is displayed, as a reminder
-- many of the controls can be automated / controlled from the keyboard

Also, there is a MIDI velocity "compressor" to alter the velocities of the notes played.
-- it has 4 draggable nodes to set the compression curve.
-- different curves can be saved as Reaper presets

PC Channelizer
On receipt on any Program Change message, the channel of future MIDI notes / CC messages is increased / decreased. PC message, value 0, resets the MIDI channel to 01.


Uploaded with **************

-- the top track is 3 MIDI clips with various notes and Program Changes in them,
-- higher PC number increases the MIDI channel number (cycles round),
-- lower PC number decreases the MIDI channel number (cycles round),
-- the middle clip has a single Program Change - with a value of 0 (to reset the channel),
-- the lower track is the result after the MIDI has gone through the JS FX.

-- it will not handle SYSEX messages,
-- I left the Bank Change messages in to indicate where the Program Changes were.

Download the attachment, remove the .txt extension and put it in (a sub-folder in) your App Data \ Effects folder. Then start Reaper (v.xx upwards) and load it on the track as an Input FX.
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 04-10-2015 at 08:25 AM. Reason: Added boreg's MIDI Routing Matrix
DarkStar is online now   Reply With Quote

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 10:54 AM.

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