Go Back   Cockos Incorporated Forums > REAPER Forums > JSFX and ReaScript Discussion

Reply
 
Thread Tools Display Modes
Old 03-06-2017, 11:36 AM   #1
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default MPL PatternRack: patterns, stepsequencer, layering, drumpad

PatternRack is a Lua script for REAPER.
EDIT: the structure is buggy. Try it on your own risk. Details: bugs when blocks defining by ID (so they can be messed each other in some cases), so it needs to rebuild structure to sort them by unique internal GUID. You can find latest code here. I don`t think this implementation easy to use, so seems I leave it as is.
EDIT2: see RS5k manager in ReaPack.


It allows to quickly edit MIDI items for drums outside MIDI editor. It can also automatically route items from arrange to ReaSamplomatic5000 instances or dump/update right into arrange following linked pattern.

Structure:
> Patterns > Blocks > Samples

StepSequncer features:
  • up to 127 blocks (rows)
  • independent step size per block
  • support editing velocities
  • support swing grid
  • support SWS grooves
  • randomization
  • humanization
  • bypass groove for current block
  • copypaste steps beetween blocks/patterns
  • solo/mute linked tracks
  • support for dumping items from stored sources
  • support for import/parsing existing MIDI take
  • dynamic copy pattern after copy pattern as pooled source
  • adjust volume per block
Blocks features:
  • hold sources for ReaSamplomatic instances and dumped items
  • allow muliple sample per block
  • per block/per sample offset
  • per block/per sample picth
  • list samples
Pads features:
  • preview blocks from drumpad view


Requements: REAPER 5.40pre12+, SWS 2.7.2+

API FR`s to Cockos:
  • gfx.getsample_path. Get comma separated filepaths of objects(files) dragged into ReaScript GUI from Media Explorer. If dragging one sample, get somehow parameters of section start/end (like if you want to move into PatternRack selected part of file currently previewing in MediaExplorer)





Changelog: see source code
Install: ReaPack
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate

Last edited by mpl; 09-24-2017 at 02:54 AM.
mpl is offline   Reply With Quote
Old 03-06-2017, 11:48 AM   #2
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 4,785
Default

Very promising feature, it can be very nice to set up sequences of items with it :P

Need a bit of practice and testing, but it already looks great and versatile. Time offset, swing patern...

Small enhancement : time offset should preserve Item Snap Offset on the grid. so that it can be manually moved and stay on grid if needed. Well, a bit more difficult if time offset is positive... but for negative time offset (item goes to left), it can be intersting.

Also, anyway to set sequence resolution or size ?
X-Raym is offline   Reply With Quote
Old 03-06-2017, 11:58 AM   #3
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-06-2017, 12:30 PM   #4
Plazma
Human being with feelings
 
Join Date: May 2014
Posts: 272
Default

Wow - this will be amazing.
__________________
Reaper 64bit ~ Win 10 64bit | www.pennysound.co.za (Free & commercial Omnisphere patches)
Plazma is offline   Reply With Quote
Old 03-06-2017, 12:41 PM   #5
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,502
Default

ooh.. very cool!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 03-06-2017, 01:39 PM   #6
egoplasma
Human being with feelings
 
egoplasma's Avatar
 
Join Date: May 2009
Location: Germany
Posts: 162
Default

Wow!!!
egoplasma is offline   Reply With Quote
Old 03-06-2017, 01:43 PM   #7
Lorbakounet
Human being with feelings
 
Lorbakounet's Avatar
 
Join Date: Mar 2015
Posts: 114
Default

Awesome !!
Lorbakounet is offline   Reply With Quote
Old 03-06-2017, 02:18 PM   #8
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 350
Default

Oh, my, .....!
This is the kinda stuff I've been waiting for.

Sower started along this path, but I haven't heard much about it.

MPL, You're da MAN!

Now FL Studio will no longer be a temptation when it comes to EDM / Trap projects.
Ozman is offline   Reply With Quote
Old 03-06-2017, 09:44 PM   #9
Arthur McArthur
Human being with feelings
 
Join Date: Sep 2016
Location: Toronto
Posts: 376
Default

Looking great mpl!

Found a bug:
-my groove files are greyed out and cant be selected

A couple FRs/ideas:

-drag and drop from media explorer onto StepSeq to create new layer (not sure if this is possible)
-doube click on item resolution to input number
-ability to use "user groove" as a selected groove. So we could get a groove from media items or MIDI and then step sequence with it
-arrow buttons to switch between patterns on StepSeq and layers on the layers panel

Really anything that replicates FL Studio's step sequencer implementation is fantastic. Thanks again for making this
Arthur McArthur is offline   Reply With Quote
Old 03-06-2017, 10:17 PM   #10
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

SWS grooves not supported yet (listed for future developement).

- drag and drop: waiting an API and changing behaviour of ReaScript focus from Justin (both with API to set properly sample for ReaSamplomatic5000)
- if you mean step count by "item resolution" then added for 1.0pre4
- pretty hard to parse (need some conditions, ex. fixed number of steps, fixed notes), but I`ll take a look what can I do
- arrow buttons like next/previous, right? Seems possible.

Thanks.
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-06-2017, 10:57 PM   #11
Arthur McArthur
Human being with feelings
 
Join Date: Sep 2016
Location: Toronto
Posts: 376
Default

I'm excited for that API. Would be a game-changer.

Quote:
Originally Posted by mpl View Post
- if you mean step count by "item resolution" then added for 1.0pre4
Great. Another useful shortcut would be single click on step count to double it and right click to halve it. Most of the step count changes I would do are doubling or halving.

Quote:
Originally Posted by mpl View Post
- arrow buttons like next/previous, right? Seems possible.
I just had another idea that might be more useful:

The idea would be to separate the current menus into two: one for options/actions and the other for the patterns/layers list.
The menus could be accessed by clicking on arrows: http://imgur.com/a/4nWCC and the patterns could be switched by clicking on the main part of the pattern button (the ename). A left click selecting the next pattern and a right click selecting the previous pattern. Maybe control click could create a new pattern, and control clicking on insert would insert new pattern. Not sure if this makes sense... Just some ideas that struck me.
Arthur McArthur is offline   Reply With Quote
Old 03-06-2017, 10:57 PM   #12
Arthur McArthur
Human being with feelings
 
Join Date: Sep 2016
Location: Toronto
Posts: 376
Default

Other FR's that are coming up as I'm playing with it:
-duplicate layer from the right click menu in step sequencer
-cut, copy and paste the steps(ideally supporting shortcuts) - if this was possible we'd need a "selector" indicator to show which layer is selected
-support for undo

One bug I found while changing the step size: if my mouse goes over a layer's step while dragging the step size, it creates a step there.

Velocity implementation is already great.

I just noticed that it re-scales to the size you drag it to. That's awesome. At some point it would be cool to be able to skin it to fit in our themes. I would make a flat color Ableton-inspired one.
Arthur McArthur is offline   Reply With Quote
Old 03-07-2017, 02:41 AM   #13
Plazma
Human being with feelings
 
Join Date: May 2014
Posts: 272
Default

It would be great if it can randomize patterns, like Microtonic :-)
__________________
Reaper 64bit ~ Win 10 64bit | www.pennysound.co.za (Free & commercial Omnisphere patches)
Plazma is offline   Reply With Quote
Old 03-07-2017, 02:46 AM   #14
strachupl
Human being with feelings
 
strachupl's Avatar
 
Join Date: Jan 2013
Posts: 244
Default

Great, I'm gonna try this. It is something similiar to FL studio step seq.. also swing per step like in FL would be great to do fancy rythm patterns.

Edit-ps. Also i think that fl studio step. seq features are good to look at and implement because it is really great done.

Last edited by strachupl; 03-07-2017 at 02:53 AM.
strachupl is offline   Reply With Quote
Old 03-07-2017, 03:52 AM   #15
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,319
Default

This script is really cool!

It seems a little sluggish when adjusting the pattern step size, maybe because of the console output window running, how do I turn it off?

A few FRs:
--------------
1:A way to zoom into the pattern, maybe with a slider or even better with the mouse wheel.

2:Maybe a way to split the pattern's MIDI notes which would in turn split the dumped audio items.

3:Smaller step size then 64, perhaps 8192 or 16384 this way you could use it for sudo granular sequencing type effects.

4:What might be really cool is a way to dump a pattern into an item as stretch markers and then be able to adjust their positions by adjusting the pattern step size or swing.

Thanks for creating this!
Anton9 is offline   Reply With Quote
Old 03-07-2017, 06:25 AM   #16
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Some updates:

Quote:
1.0pre4 07.08.2017
+ Patterns: Menu/Parse selected MIDI take as new 16-step pattern
+ Patterns: Menu/Parse selected MIDI take to current 16-step pattern
+ Patterns: doubleclick on step count set step count per measure
+ Patterns: shift drag double/half current step count
+ Patterns: add controls, previous/next pattern, remove current pattern
# Patterns: prevent adding steps when changing length or step count
# Patterns: prevent erasing parent track when remove all patterns
# Patterns: remove ALL previous dumped items from tracks (previous behaviour cause lags when converting PPQ to time in some cases)
# Patterns: match dumped item lengths MIDI notes
# Patterns: prevent adding items with position < 0
# Layers: show full sample paths
# Layers: improved blocks validation
# GUI: improved knobs
edit: oops some errors with MIDI parser, fixing
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate

Last edited by mpl; 03-07-2017 at 06:52 AM.
mpl is offline   Reply With Quote
Old 03-07-2017, 07:23 AM   #17
X-Tech
Human being with feelings
 
Join Date: Apr 2015
Posts: 442
Default

I completely do not understand how to use it with any samples or synths.
Anyway it looks powerfull.
__________________
nonononononono
X-Tech is offline   Reply With Quote
Old 03-07-2017, 07:39 AM   #18
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 350
Default

I just tested it.
And I think that it is a good start to a feature that will be another integral part of Reaper. I do notice that removing layers does not remove their tracks. Maybe having it ask whether we want to remove the tracks as well before deletion of layer would be nice.
Ozman is offline   Reply With Quote
Old 03-07-2017, 07:47 AM   #19
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Loading sample into RS5k is my feature request to Justin. Fortunately he said he`ll take a look at it in near future.

Basic concept looks like this:
There is a pattern track which hold MIDI items only. Any changes with patterns will touch only MIDI items on this track. Patterns are regular MIDI items. They are also references for dumping items (moving pattern item doesn`t move dumped item yet).

Patterns count row of layers. Layer can contain multiple samples. Each sample has dedicated track with RS5K instance (if you use only MIDI send from pattern track, it creates automatically when you add sample to layer). Or another use - pattern dump MIDI notes to item with this sample as source (and mute MIDI events).

Quote:
Originally Posted by Ozman View Post
I do notice that removing layers does not remove their tracks. Maybe having it ask whether we want to remove the tracks as well before deletion of layer would be nice.
Nice catch, fixing.
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-07-2017, 01:42 PM   #20
X-Tech
Human being with feelings
 
Join Date: Apr 2015
Posts: 442
Default

Somehow i figured this little out. It works like is introduced. Good. Thing which improve this would be to load sample directly from media explorer without drag n drop them into arrange. I'm still using my solution but anyway but i keep look forward onto this.
__________________
nonononononono

Last edited by X-Tech; 03-07-2017 at 03:24 PM.
X-Tech is offline   Reply With Quote
Old 03-07-2017, 01:58 PM   #21
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 563
Default

Wow this looks really nice! Hopefully I'll have some time to try it soon. Thanks!

Quote:
Originally Posted by mpl View Post
- drag and drop: waiting an API and changing behaviour of ReaScript focus from Justin (both with API to set properly sample for ReaSamplomatic5000)
Drag/drop to/from script windows would be awesome... I've been thinking about a "sample cloud" script, which would offer an easy to access graphical representation of all kinds of samples you wanna use/re-use in the project, and quickly drag&drop from the script window to arrange and vice versa. Hopefully some day the API will allow this.
Sju is offline   Reply With Quote
Old 03-08-2017, 04:01 AM   #22
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Next update:

Quote:
1.0pre5 08.03.2017
# Rename Layers to Blocks
+ Main menu/Shortcuts and mouse modifiers
+ StepSeq: mousewheel on volume
+ StepSeq: option to follow groove per block
+ StepSeq: randomize steps
+ StepSeq: copypaste steps beetween blocks/patterns via context menu or Ctrl+C Ctrl+V
# StepSeq: doubleclick open block, LMB select block
# Patterns: update patterns on project state change
# Patterns: limit dumped pattern items to pattern edges
# Patterns: fix parse take to pattern
# Patterns: match current pattern length (in measures) when parsing
+ Blocks: mousewheel on offsets
# Blocks: removing block remove linked samples tracks
# Blocks: reset blocks blit buffers on some GUI changes
# GUI tweaks
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-08-2017, 06:46 AM   #23
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Quote:
Originally Posted by TonE View Post
There seems to be a 'bug' or misbehaviour, e.g. having two patterns, selecting second pattern item removes first pattern audio dumps.
Thanks, fixed for 1.0pre6.
Btw are you on MacOs? Script use "Calibri" font. Did you changed it manually?

Current pattern follows first selected MIDI take.
Clicking pattern in pattern list apply pattern to selected MIDI items (can be done also from context menu dedicated entry).
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate

Last edited by mpl; 03-08-2017 at 07:04 AM.
mpl is offline   Reply With Quote
Old 03-08-2017, 07:29 AM   #24
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 350
Default

I'm also noticing that some samples don't load into resamplomatic for some reason. I guess that's the limitation of not having an available API yet.
Ozman is offline   Reply With Quote
Old 03-08-2017, 07:43 AM   #25
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Exactly. Vst state in RPP is base64 coded and seems I don't have enough knowledges to encode/decode it properly.
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-08-2017, 08:14 AM   #26
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 350
Default

I truly hope that an upcoming focus of the dev team should be on the sampling side of Reaper. So much can be done, with timestretching, pitch detection, etc. Also, really looking forward to that API opening up for features like this to take flight.
Reasamplomatic is nice but it seems like a just a rough draft from years past. I really hope to see some cool things come around.
Ozman is offline   Reply With Quote
Old 03-08-2017, 08:54 AM   #27
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

I took an example from Alex Kloss. kawa`s version does same thing (and same errors).
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-08-2017, 10:03 AM   #28
Plazma
Human being with feelings
 
Join Date: May 2014
Posts: 272
Default

I get this when I run this script:

mpl_PatternRack.lua:7: unexpected symbol near '<'

Am I doing something wrong?
__________________
Reaper 64bit ~ Win 10 64bit | www.pennysound.co.za (Free & commercial Omnisphere patches)
Plazma is offline   Reply With Quote
Old 03-08-2017, 10:06 AM   #29
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Yes. You click on "Save as" instead copy code from "raw" page.
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-08-2017, 12:47 PM   #30
Plazma
Human being with feelings
 
Join Date: May 2014
Posts: 272
Default

Thanks.
__________________
Reaper 64bit ~ Win 10 64bit | www.pennysound.co.za (Free & commercial Omnisphere patches)
Plazma is offline   Reply With Quote
Old 03-08-2017, 02:59 PM   #31
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,477
Default

wonderful!
timbralzoom is offline   Reply With Quote
Old 03-08-2017, 03:16 PM   #32
Arthur McArthur
Human being with feelings
 
Join Date: Sep 2016
Location: Toronto
Posts: 376
Default

Quote:
Originally Posted by mpl View Post
Next update:
Wow huge update, thanks mpl!
Arthur McArthur is offline   Reply With Quote
Old 03-09-2017, 02:55 PM   #33
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Quote:
Originally Posted by Anton9 View Post
Maybe a way to split the pattern's MIDI notes which would in turn split the dumped audio items.
Can you explain a bit?

Quote:
3:Smaller step size then 64, perhaps 8192 or 16384 this way you could use it for sudo granular sequencing type effects.
pretty easy to do, but it can produce performance problems (storing/parsing a lot of values per pattern/block).

Quote:
What might be really cool is a way to dump a pattern into an item as stretch markers and then be able to adjust their positions by adjusting the pattern step size or swing.
hmm not sure I understood you here
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate

Last edited by mpl; 03-09-2017 at 08:44 PM.
mpl is offline   Reply With Quote
Old 03-09-2017, 06:58 PM   #34
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 350
Default

I think its pretty much more than i expected. Its about on par with FL Studio's step sequencer, the only draw back now is the sampler needing a lot of work. Thanks again, MPL. Hopefully the devs will give some attention to Reaper's sampler soon.
Ozman is offline   Reply With Quote
Old 03-09-2017, 08:49 PM   #35
Sleep opposed
Human being with feelings
 
Sleep opposed's Avatar
 
Join Date: Aug 2007
Posts: 317
Default

Quote:
Originally Posted by Ozman View Post
I truly hope that an upcoming focus of the dev team should be on the sampling side of Reaper. So much can be done, with timestretching, pitch detection, etc. Also, really looking forward to that API opening up for features like this to take flight.
Reasamplomatic is nice but it seems like a just a rough draft from years past. I really hope to see some cool things come around.
If reaper had a built in multisampler i never would have brought kontakt.
Sleep opposed is offline   Reply With Quote
Old 03-09-2017, 09:26 PM   #36
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Quote:
Originally Posted by Sleep opposed View Post
If reaper had a built in multisampler i never would have brought kontakt.
RS5K allows loading multiple samples. Does it mean RS5k is a "multisampler"?
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 03-09-2017, 11:23 PM   #37
Sleep opposed
Human being with feelings
 
Sleep opposed's Avatar
 
Join Date: Aug 2007
Posts: 317
Default

Quote:
Originally Posted by mpl View Post
RS5K allows loading multiple samples. Does it mean RS5k is a "multisampler"?
Well, without the different velocities on one note...more for resampled instruments etc
Sleep opposed is offline   Reply With Quote
Old 03-10-2017, 05:00 AM   #38
zookthespook
Human being with feelings
 
Join Date: Mar 2015
Posts: 321
Default

Hi
this is an amazing tool ! really enjoying building sequences on it.
I wanted to know ,somehow really short sounds are not being triggered somehow..
i have to glue them with a little empty on the tail to make them playable .
Am i missing something here ?
zookthespook is offline   Reply With Quote
Old 03-10-2017, 07:40 AM   #39
dazastah
Human being with feelings
 
dazastah's Avatar
 
Join Date: Sep 2009
Posts: 74
Default

Holy shit Mpl You are God level!!!
dazastah is offline   Reply With Quote
Old 03-11-2017, 11:23 PM   #40
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 1,866
Default

Hopefully fixed font size on OSX and added pitch per block/sample (primary limit is 48 semitones per block, 24 semitones per sample, so 72 semitones is internal limit respecting RS5K maximum pitchshift).

Click on block name in stepsequencer select related tracks in arrange if any.

zookthespook, I guess it was a problem with overlap checking inside loop (which might cause some problems when use offsets). I disabled any in-loop check for samples (leaved only MIDI overlap checking always enabled) and add an option to automatically check for item overlaps (one every track, enabled by default). Check it out and let me know if something doesn`t work for you:

Except new APIs related things script seems pretty stable.

upd: 1.0pre8c should properly works with pooling patterns (it unpool them automaticall and add to related pattern - was pretty complex to code this part btw).



__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate

Last edited by mpl; 03-12-2017 at 04:44 AM.
mpl 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 04:07 AM.


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