|
|
|
12-10-2021, 08:45 AM
|
#1
|
Human being with feelings
Join Date: Mar 2019
Posts: 428
|
Global Sampler (Alpha)
GLOBAL SAMPLER
Intro
Global Sampler is a script that retrospectively records audio in the background in a loop no matter what REAPER is doing.
The recorded bits can be highlighted and dragged back into the project:
The script records audio through the accompanied JSFX plugin called Global Sampler. This plugin can be placed on:
* Master track
* Monitor FX chain
* Any track in the project
By default only the last 60 seconds of audio are kept.
Currently there can be only one instance of the sampler JSFX per project, however a version that supports a multiple instances is in the works.
FEATURES
You can use ctrl/cmd + click to pause/play the sampler:
You can use alt + click to preview audio through the sampler:
The display can be pulled using middle drag, this is sometimes required if the audio you want to highlight is near the edges of the GUI:
You can use ctrl/cmd + shift + click to zoom the waveform display:
There are 5 included themes that can be loaded on the fly with the number keys 1 - 5, or alternatively by using the right click context menu in the script window:
While Windows users can directly dock the script by right clicking the titlebar of the script, Users of different operating systems can use the right click context menu to dock the script.
Settings such as dock position, selected color theme and waveform zoom level will automatically be remembered.
There are two extra scripts that let you use Global Sampler without a GUI:
BirdBird_Sample Last Playthrough.lua
This script inserts whatever the JSFX plugin has heard the last time you pressed play and stopped the project.
(eg. if you played the project for 3 seconds then stopped, the inserted media item will be 3 seconds long)
BirdBird_Sample Last X Seconds.lua
This script can insert whatever the JSFX plugin has heard in the last however many seconds (as allowed by the maximum 60 seconds) as a media item at the edit cursor.
The scripts (including the one with the GUI) require the JSFX plugin to be present in your current REAPER session to function correctly.
Having multiple instances of the JSFX plugin in a session can lead to unpredictable behaviour and should be avoided.
INSTALLATION
* Install SWS
* Install ReaPack and js_ReaScriptAPI
* Add the following repository to your ReaPack by going to Extensions -> ReaPack -> Import Repositories...
Code:
https://raw.githubusercontent.com/Bird-Bird/ReaScript_Testing/main/index.xml
* Install the script BirdBird_Global Sampler.lua
After that you can run BirdBird_Global Sampler.lua to launch the GUI.
The sampler will start recording after you insert the accompanied JSFX plugin called Global Sampler.
Extra Notes
* You can tweak any of the 5 included themes through the included script called BirdBird_Global Sampler Theme Editor.lua.
* Although there can only be one instance of the JSFX plugin in a session, switching project tabs should be fine, in the case that the script encounters multiple instances of the JSFX plugin while switching project tabs it will try to keep its cool.
* Placing the JSFX on the monitor FX chain will also let you capture things like scrubbing and media explorer previews.
Final
Note that this is an alpha version an may contain bugs.
Special thanks to daniellumertz, Arthur McArthur and Aero Soul for testing during development.
The script hasn't been tested on Linux and macOS yet, if you use any of those operating systems and try out the script let me know how it goes
As stated earlier in the post a version that supports multiple instances (and fixes some other problems) is in the works, however it is not ready to be published yet.
----Update----
Rolling Sampler
I have released a plugin version of Global Sampler called Rolling Sampler over at https://www.birdsthings.com. If you just want the free REAPER script, you can skip this part of the post.
The price for the plugin is 19$, however the script itself will stay free forever and I will keep maintaining it. Please note that the plugin version cannot be docked like the script.
The plugin has adjustable recording duration: (Up to 10 minutes)
And since it is a plugin using multiple instances also works, just insert it wherever you want.
Everything else mostly works the same, there are a few extra features, one thing missing is there is no global GUI like I have in the script. (And since it is a plugin it can't be docked)
-
Last edited by BirdBird; 02-23-2024 at 07:03 AM.
|
|
|
12-10-2021, 09:44 AM
|
#2
|
Human being with feelings
Join Date: Mar 2019
Posts: 428
|
Small teaser from the multi-instance version that is in the works:
|
|
|
12-10-2021, 10:21 AM
|
#3
|
Human being with feelings
Join Date: Jun 2020
Posts: 666
|
Ohh la lá, this looks AWESOME! Guys like you with scripts like this make Reaper the best thing out there, thank you BirdBird! I'll try it out asap.
|
|
|
12-10-2021, 10:31 AM
|
#4
|
Human being with feelings
Join Date: Jun 2019
Posts: 2,875
|
Very interesting concept!
Some things seem to not work properly on macOS (I'm on High Sierra):
- JSFX on single track or master track does record but on Monitoring FX it does not record
- The recording cursor starts moving as soon as the JSFX is inserted and keeps moving forward, recording and overwriting even when playback is stopped. Only focusing another non-Reaper app pauses it.
Some things I am not sure about:
- Is it intentional that right click on the GUI (for docking and theme switching) works only after the JSFX is loaded?
- It would be very useful to be able to drag and insert recorded audio into Samplers but that doesn't work. Only arrange works. I guess this is just not supported (yet) by the script?
|
|
|
12-10-2021, 11:02 AM
|
#5
|
Human being with feelings
Join Date: Mar 2019
Posts: 428
|
Quote:
Originally Posted by Phazma
Very interesting concept!
- JSFX on single track or master track does record but on Monitoring FX it does not record
|
That is very odd. Are there any other instances of the JSFX in the project when this happens, also is the instance on the Monitoring FX online? (The script may set it offline if there are multiple instances in the project)
The recording cursor keeping moving is intentional, the usecase is that it is recording even if you forgot to hit record, or say you were noodling on a guitar and played something cool that you wanted to record but couldn't recreate it afterwards, you can always ctrl/cmd + click the GUI if you wish to pause the recording cursor if you need to.
Quote:
Originally Posted by Phazma
- Is it intentional that right click on the GUI (for docking and theme switching) works only after the JSFX is loaded?
|
Ah, no, this will be fixed in the next update.
Quote:
- It would be very useful to be able to drag and insert recorded audio into Samplers but that doesn't work. Only arrange works. I guess this is just not supported (yet) by the script?
|
That is correct, I am not sure how to get it to work without weird workarounds currently.
Thanks a lot for the feedback!
|
|
|
12-10-2021, 11:43 AM
|
#6
|
Human being with feelings
Join Date: May 2019
Location: Berlin
Posts: 2,202
|
Wow, really fancy! Good job!
An initial nitpick: Sometimes the cursor doesn't go back to normal:
I'll return with some better feedback after I've used it bit more though
Quote:
Originally Posted by BirdBird
That is correct, I am not sure how to get it to work without weird workarounds currently.
|
Maybe the new GetThingFromPoint function could come handy here. E.g. you can detect if the user is dragging it to the TCP/MCP-fxlist.
|
|
|
12-10-2021, 11:55 AM
|
#7
|
Human being with feelings
Join Date: Dec 2017
Location: Brazil
Posts: 2,011
|
Thanks for your dedication and work BirdBird! This is a well tied script. And very useful for my work. Already added to my favorite Scripts toolbar
Thanks Thanks Thanks
|
|
|
12-10-2021, 12:11 PM
|
#8
|
Human being with feelings
Join Date: Jun 2019
Posts: 2,875
|
Quote:
Originally Posted by BirdBird
That is very odd. Are there any other instances of the JSFX in the project when this happens, also is the instance on the Monitoring FX online? (The script may set it offline if there are multiple instances in the project)
|
Yes, it was the first instance I added and it was online. I afterwards moved (not copied) it to master and normal track and it worked and back to Monitor FX and again it didn't work.
Maybe something is interfering with it in my Reaper install? I can't test a portable though.. maybe someone else who is on mac can try if it works on Monitoring FX?
Quote:
Originally Posted by BirdBird
The recording cursor keeping moving is intentional, the usecase is that it is recording even if you forgot to hit record, or say you were noodling on a guitar and played something cool that you wanted to record but couldn't recreate it afterwards, you can always ctrl/cmd + click the GUI if you wish to pause the recording cursor if you need to.
|
Oh I guess then I misunderstood this:
Quote:
Originally Posted by BirdBird
BirdBird_Sample Last Playthrough.lua
This script inserts whatever the JSFX plugin has heard the last time you pressed play and stopped the project.
(eg. if you played the project for 3 seconds then stopped, the inserted media item will be 3 seconds long)
|
It would be nice if we had an option to tie the script's recording start/stop to Reaper's playback start/stop. My use of the script would not so much be retrospective record but mostly resampling sounds or parts of the arrangement from the Reaper session for further manipulation or (if that will be supported) to easily drag recorded parts to a sampler without having to render to a folder and importing from there. The running cursor causes some kind of stress to lose the recording if I get distracted and don't stop it or if I don't drag the audio immediately into the project.
|
|
|
12-10-2021, 12:45 PM
|
#9
|
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 9,900
|
Exhaustive use of the new retrospective function, well done !
|
|
|
12-10-2021, 02:18 PM
|
#10
|
Human being with feelings
Join Date: Aug 2009
Location: NL
Posts: 1,458
|
Awesome work man!
|
|
|
12-10-2021, 03:04 PM
|
#11
|
Human being with feelings
Join Date: Sep 2012
Posts: 37
|
This looks amazing!
|
|
|
12-10-2021, 03:36 PM
|
#12
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
|
Thanks for sharing.
Any use case ideas for this? Who nees when this kind of resampling feature? Why not just dragging from the item on the track instead for example? Is its main advantage when used on stems for example?
|
|
|
12-10-2021, 04:03 PM
|
#13
|
Human being with feelings
Join Date: May 2016
Location: Kyiv, Ukraine
Posts: 545
|
just WOW! can't wait to test it!
|
|
|
12-10-2021, 04:18 PM
|
#14
|
Human being with feelings
Join Date: Jun 2019
Posts: 2,875
|
Quote:
Originally Posted by TonE
Who nees when this kind of resampling feature? Why not just dragging from the item on the track instead for example? Is its main advantage when used on stems for example?
|
That's not possible on macOS. Also you might want to not only resample an item but the audio from several tracks together. For resampling duties I also often use the Yanick_Mixdown selection script, but that works offline (which sometimes with some plugins doesn't sound as in playback).
The advantage of this Global Sampler script for resampling is that it automatically records exactly what you hear and you have it readily available to drag as a new file into the arrangement (and hopefully at some point into a sampler too). Also you no issues with reverb tail times, just wait until it vanishes and everything is recorded.
|
|
|
12-10-2021, 04:18 PM
|
#15
|
Human being with feelings
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,827
|
Looks really good! It would be pretty useful if we could store the audio from the buffer in different slots, so we could make a "lib" or backup with samples that we want to use or experiment with later on track without taking space from main tracks on arrange.
Last edited by Vagelis; 12-10-2021 at 04:26 PM.
|
|
|
12-10-2021, 04:23 PM
|
#16
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,334
|
Looks delicious! May be nice for live jams.
|
|
|
12-10-2021, 04:28 PM
|
#17
|
Human being with feelings
Join Date: Mar 2007
Posts: 4,018
|
Pretty cool
Any way to include some measure/beat info/quantization if recording was made when Reaper was playing?
Then it would be easier to select sections and insert them back onto tracks while keeping them 'synced' to original measures if you understand what I mean.
|
|
|
12-10-2021, 05:02 PM
|
#18
|
Human being with feelings
Join Date: Jun 2019
Posts: 2,875
|
Quote:
Originally Posted by akademie
Pretty cool
Any way to include some measure/beat info/quantization if recording was made when Reaper was playing?
Then it would be easier to select sections and insert them back onto tracks while keeping them 'synced' to original measures if you understand what I mean.
|
That would be cool if there is some kind of beat-snapping selection (like razor edit) for selecting audio exactly on beat before dragging it into Reaper.
|
|
|
12-11-2021, 12:48 PM
|
#19
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
|
Is this something like the beat repeat tool does, but for 60 seconds? Just mixing up related tools, which do kind of same or similar stuff, but in different forms and places.
|
|
|
12-12-2021, 07:30 AM
|
#20
|
Human being with feelings
Join Date: Jul 2020
Posts: 725
|
Could be a great option to the retrospective record scripts! At least when you're just jamming and played something that you didn't record and want to listen back to it quickly. Thanks!
|
|
|
12-12-2021, 12:26 PM
|
#21
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
|
But only for 60 seconds.
For midi it could be for 60 minutes.
For audio for 60 seconds (for example).
For midi there could be an option: record only midi notes + pitchbend + program change events (ignoring cc events). To keep the recorded data free from unnecessary clutter.
|
|
|
12-12-2021, 12:32 PM
|
#22
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
|
Quote:
Originally Posted by Phazma
The advantage of this Global Sampler script for resampling is that it automatically records exactly what you hear and you have it readily available to drag as a new file into the arrangement (and hopefully at some point into a sampler too). Also you no issues with reverb tail times, just wait until it vanishes and everything is recorded.
|
Can you give one example when you need this? One concrete scenario? Are you recording from hardware synths, this is the best case I guess. There I would see its big advantage. For soft synths, I did not get its big advantage yet.
|
|
|
12-12-2021, 01:20 PM
|
#23
|
Human being with feelings
Join Date: Jun 2019
Posts: 2,875
|
Quote:
Originally Posted by TonE
Can you give one example when you need this? One concrete scenario? Are you recording from hardware synths, this is the best case I guess. There I would see its big advantage. For soft synths, I did not get its big advantage yet.
|
Difficult to explain, I just made a video where I'm goofing around with a random sound, hoping to show the potential of this global sampler for creative sounddesign purposes: https://vimeo.com/655906448
And this is just one way of me using this. Can't think of other concrete examples right now, it arises during workflow. Also, as said, while there are ways to do similar things like I have done in the video with Mixdown scripts, a situation where only this global sampler can help is when rendering just doesn't sound like playback. The global sampler can just directly record the needed part and it sounds exactly as it should and even without messing around with rendering, it happens automatically.
Btw @BirdBird, if you too watch this video, you can see me get pretty confused at the beginning, trying to pull the audio into the empty arrange window part, expecting a new track to be created which doesn't happen. It would be nice if the script could have Reaper create a new track when dragging audio to the empty arrange part (if that is technically even possible).
|
|
|
12-12-2021, 03:59 PM
|
#24
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
|
I understand, thanks for the video examples. For sound design purposes like in your video, it can be useful indeed. I like how the limited 60s space is repeatedly overwriting itself. So we can see the entire 60s space all the time. Very practical.
|
|
|
12-12-2021, 05:03 PM
|
#25
|
Human being with feelings
Join Date: Jun 2008
Location: Whales, UK
Posts: 6,010
|
Quote:
Originally Posted by Phazma
Difficult to explain, I just made a video where I'm goofing around with a random sound, hoping to show the potential of this global sampler for creative sounddesign purposes: https://vimeo.com/655906448
And this is just one way of me using this. Can't think of other concrete examples right now, it arises during workflow. Also, as said, while there are ways to do similar things like I have done in the video with Mixdown scripts, a situation where only this global sampler can help is when rendering just doesn't sound like playback. The global sampler can just directly record the needed part and it sounds exactly as it should and even without messing around with rendering, it happens automatically.
Btw @BirdBird, if you too watch this video, you can see me get pretty confused at the beginning, trying to pull the audio into the empty arrange window part, expecting a new track to be created which doesn't happen. It would be nice if the script could have Reaper create a new track when dragging audio to the empty arrange part (if that is technically even possible).
|
Cool stuff from big bird, and I think I spotted (perhaps in part) my pitch rate sampler item envelope hack..
Nice to see in the wild.
|
|
|
12-12-2021, 05:28 PM
|
#26
|
Human being with feelings
Join Date: Jun 2019
Posts: 2,875
|
Quote:
Originally Posted by BenK-msx
Cool stuff from big bird, and I think I spotted (perhaps in part) my pitch rate sampler item envelope hack..
Nice to see in the wild.
|
Well spotted, it's a staple in my arsenal by now. As long as Reaper has no take rate envelope there is no way around it. Much recommended for all sounddesigners who like to use dynamic varispeed a lot or people searching for quick tape start/stop FX.
|
|
|
12-12-2021, 06:03 PM
|
#27
|
Human being with feelings
Join Date: Jun 2008
Location: Whales, UK
Posts: 6,010
|
Quote:
Originally Posted by Phazma
Well spotted, it's a staple in my arsenal by now. As long as Reaper has no take rate envelope there is no way around it. Much recommended for all sounddesigners who like to use dynamic varispeed a lot or people searching for quick tape start/stop FX.
|
Yeh, sweet. Pitch mangling is always fun.
|
|
|
12-13-2021, 07:25 AM
|
#28
|
Human being with feelings
Join Date: Jan 2021
Location: Paris
Posts: 255
|
Very interessting idea !
And the script is very well done, bravo !
|
|
|
12-13-2021, 01:20 PM
|
#29
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
|
If this is auto-sampling anyway, why not adding an option, auto-appending, at project end (append after marker: APPEND).
Example: 60s sampling, at the end of each 60s, auto-append after marker APPEND, then continue as now. Then while working with various synths, no matter if hardware or software, as a byproduct you could generate a sample collection. Interesting? Just saving the permanent drag and drop from top to arrange. We are in Reaper world, we can automate anything.
|
|
|
12-14-2021, 11:58 AM
|
#30
|
Human being with feelings
Join Date: Apr 2014
Posts: 398
|
It's really cool BirdBird!
On MacOS 12.0.1 though, each time we drag a part of the waveform on a track, the message "Insert the Global Sampler JSFX plugin to start recording" reappear and we need to remove the effect and re-insert it.
|
|
|
12-15-2021, 12:01 AM
|
#31
|
Human being with feelings
Join Date: Oct 2019
Posts: 14
|
Quote:
Originally Posted by Infrabass
It's really cool BirdBird!
On MacOS 12.0.1 though, each time we drag a part of the waveform on a track, the message "Insert the Global Sampler JSFX plugin to start recording" reappear and we need to remove the effect and re-insert it.
|
Having the same issue but on Windows 10. Any way we can help you debug this?
|
|
|
12-25-2021, 09:29 AM
|
#32
|
Human being with feelings
Join Date: Jan 2016
Posts: 884
|
Terrific work! I have two questions: is the constantly recording buffer kept in RAM or on disk? (I'd prefer RAM, personally ) and is there an easy way to edit this, as an end user, so that it records into a longer constant buffer than 60 seconds? I'd prefer something like 15-30 minutes. Thanks!
|
|
|
01-01-2022, 09:25 PM
|
#33
|
Human being with feelings
Join Date: Jan 2014
Posts: 5,220
|
Is it possible to instead of create new files with each drop, constantly be saving new audio to a file that is created on transport play (maybe give this it's own button in case we forget to turn it off.. ) and drop an item that is just that portion of selected audio (or audio via the 2 scripts), that could later be expanded in either direction?
|
|
|
01-02-2022, 01:00 AM
|
#34
|
Human being with feelings
Join Date: Aug 2011
Posts: 522
|
Wow this is really cool! Can't wait for the multi versión!
+1 on the sync to grid option so that its easier to drag thing "in place" from the waveform.
Thanks a lot Birdbird! This rocks
|
|
|
01-04-2022, 05:06 AM
|
#35
|
Human being with feelings
Join Date: Nov 2014
Posts: 798
|
This thing looks amazing, and exactly what I've wanted for years.
Unfortunately I can't get it to add any audio to the project, either by dragging or the right click add option.
I'm on latest reaper Win 10
|
|
|
01-04-2022, 05:08 AM
|
#36
|
Human being with feelings
Join Date: Nov 2014
Posts: 798
|
Quote:
Originally Posted by reapero
Wow this is really cool! Can't wait for the multi versión!
+1 on the sync to grid option so that its easier to drag thing "in place" from the waveform.
Thanks a lot Birdbird! This rocks
|
That would be really great, and also allow it to be used as a kind of oscilloscope if you zoomed in or reduced the range
|
|
|
01-04-2022, 05:20 AM
|
#37
|
Human being with feelings
Join Date: Nov 2014
Posts: 798
|
Quote:
Originally Posted by Phazma
Well spotted, it's a staple in my arsenal by now. As long as Reaper has no take rate envelope there is no way around it. Much recommended for all sounddesigners who like to use dynamic varispeed a lot or people searching for quick tape start/stop FX.
|
You should check out stretch marker rate envelope mode, look in mouse modifiers
|
|
|
01-04-2022, 05:40 AM
|
#38
|
Human being with feelings
Join Date: Nov 2014
Posts: 798
|
Quote:
Originally Posted by Travesty
This thing looks amazing, and exactly what I've wanted for years.
Unfortunately I can't get it to add any audio to the project, either by dragging or the right click add option.
I'm on latest reaper Win 10
|
Rookie mistake, trying to drag them into an unsaved project
|
|
|
01-04-2022, 05:50 AM
|
#39
|
Human being with feelings
Join Date: Nov 2014
Posts: 798
|
Quote:
Originally Posted by reapero
+1 on the sync to grid option so that its easier to drag thing "in place" from the waveform.
|
This is what I'm thinking of
https://schulz.audio/products/oszillos-mega-scope/
Potentially this could do the same thing with not too much adjustment, though it would be a bit of a departure from the original concept.
Maybe would be better as a fork of some sort?
|
|
|
01-16-2022, 05:01 PM
|
#40
|
Human being with feelings
Join Date: Apr 2021
Location: Brest, France
Posts: 52
|
Quote:
Originally Posted by X-Raym
Exhaustive use of the new retrospective function, well done !
|
Hello X-Raym, any links to get more information about this ?
|
|
|
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 05:35 PM.
|