|
|
|
11-15-2015, 05:04 PM
|
#1
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Retrospective Record for Reaper(MIDI and Audio)
=====================
RRAudio and RRMidi.
RRMidi is an analogue of retrospective records in Cubase.
RRAudio supports buffering audio.Such features not available in other Daw!
In addition, in both modes are available, any change in the play position, the buffer is not reset.
All recorded data will be available as individual Takes.
=====Install Info====
Just run the script.
https://stash.reaper.fm/25831/Installation.gif
When you first start you will automatically make the necessary settings.
On the next start MIDI(or Audio) data from the buffer will be added to the track.
==MIDI==
JS-utility(at a special hidden track) writes incoming data to the buffer during playback.
The buffer is refreshed only if you press the stop and start playback again(if received new data).
Script Reads MIDI-data from the JS buffer and adds them to the currently selected track.
RRMIDI supported basic data types:
NoteON-NoteOFF,PKeyPressue,ControlChange,ProgrammChange,C hanPressue,PWheel Change.
==AUDIO==
RRAudio works the same way as RRMIDI
JS-utility(at a special hidden track) writes incoming data to the buffer during playback.
The buffer is refreshed only if you press the stop and start playback again.
Script Inserts Audio-Buffer from JS to the currently selected track.
RRAudio uses Stereo-buffer.
You can specify the number of buffers in the first run of the script.
One buffer is about 380 sec at the samplerate=44100.
Ten buffers--is more than an hour,but you can set more buffers,if it allows memory.
One buffer 256MB RAM.
==Demonstaration==
Loop-playback demo
https://stash.reaper.fm/25827/RRmidi%...Rec%20demo.gif
Playback with any change of play-position
https://stash.reaper.fm/25828/RRmidi%...nge%20demo.gif
Audio demo
https://stash.reaper.fm/25826/RRaudio%20demo.gif
===Retro-Rec(MIDI)-Link(will be updated)===
Retrospective Record(MIDI)
===Retro-Rec(Audio)-Link(will be updated)===
Retrospective Record(audio)
Last edited by eugen2777; 05-24-2016 at 03:27 AM.
|
|
|
11-15-2015, 05:13 PM
|
#2
|
Human being with feelings
Join Date: Jul 2012
Location: Netherlands
Posts: 5,247
|
Awesome , thank you very much !
|
|
|
11-15-2015, 11:25 PM
|
#3
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
|
Finally elegant solution of Retrospective Record, good work
|
|
|
11-16-2015, 03:05 AM
|
#4
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 5,065
|
Indeed, it's way easier than "the other tool" - but I WANT IT NATIVELY, damn
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
|
|
|
11-16-2015, 06:30 AM
|
#5
|
Human being with feelings
Join Date: Jan 2014
Posts: 5,207
|
This demonstrates exactly how it should be done (although skipping around during playback could be handled with takes rather than clearing the buffer) and would be awesome to see natively.
Having to put plugins on the track sort of defeats the automatic-ness of retrospective record, but I suppose you could save it to default tracks.
|
|
|
11-16-2015, 08:20 AM
|
#6
|
Banned
Join Date: Sep 2015
Posts: 1,650
|
Very nice! Clever use of the JS params to access what's in the buffer too!
|
|
|
11-16-2015, 09:30 AM
|
#7
|
Human being with feelings
Join Date: Jan 2014
Location: Norway
Posts: 140
|
Thanks for this, really nice!
Easy to add the track and then hide it, and save as default template, for example.
It's probably not possible, but if you didn't have to hit play first, that would make it perfect.
|
|
|
11-19-2015, 05:39 AM
|
#8
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Updated(v2)
Link in first post.
1)The script automatically creates JS-utility when you first start it( in the folder of the effects of the program).
First Start
2)The script automatically adds the track and JS-utility in the project when you start it.Track-settings are performed automatically.The track is hidden automatically.
Start in NewProject
3)Overwrite buffer only when you press the play button (and if received new MIDI-data).The recorded data is added on Track as New-Takes.
RR2 Demonstration
Last edited by eugen2777; 11-30-2015 at 12:52 PM.
|
|
|
11-19-2015, 11:29 AM
|
#9
|
Human being with feelings
Join Date: Mar 2015
Posts: 52
|
On mac OS (10.10.5) script doesn't create JS.
Have to make it manually by copying code from script.
Code:
This JS-utility is designed for use ONLY in conjunction with a Script-RetroRec.
JS writes the incoming MIDI-data.The Script retrieves the stored MIDI-data on the sel track.
desc:ForRetroRec v.20151118
slider1:0<0,8388608,1>MSG_Count
slider2:0<0,2097151,1>MSG_Number
slider3:0<0,65536,0.001>MSG_Position
slider4:0<0,256,1>msg1
slider5:0<0,127,1>msg2
slider6:0<0,127,1>msg3
slider7:1<0,1,1{No,Yes}>Compensate Latency
slider8:0<0,1,1{Only when you press Play,At each change of Playposition}>ReWrite Buffer
in_pin:none
out_pin:none
@slider
slider1 = input_msg_count;//MSG_Count
s = slider2*4;
slider3=buf[s];//MSG_Position+offset
slider4=buf[s+1];slider5=buf[s+2];slider6=buf[s+3];//msg1,msg2,msg3
@init
ext_noinit = 1;
@block
Start_Play_Position = play_position;//When New Block is starting
//===Reset Counter===//
(play_state==0 || (slider8>0 && abs(Start_Play_Position-Last_Play_Position)>0.2) ) ?
(i = 0; buf[8388604]=samplesblock/srate;);//Reset i;buf[8388604]=sblock/srate
//===Save each position and msg1,msg2,msg3 to buf[.,.,.,.]===//
play_state == 1 || play_state == 5 ? //1=play-main mode,5=rec-only for check!
(while (midirecv(offset,msg1,msg2,msg3) )
(i==0 ? input_msg_count=0;
input_msg_count+=1; slider1 = input_msg_count;//Update Slider MSG_Count
buf[i] = Start_Play_Position + offset/srate;//Pos w offset:(1/srate)*offset
buf[i+1] = msg1;
buf[i+2] = msg2;
buf[i+3] = msg3;
i+=4;
midisend(offset,msg1,msg2,msg3);//Pass true
);
);
Last_Play_Position = Start_Play_Position;
Thank You for share this!
|
|
|
11-19-2015, 11:51 AM
|
#10
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
|
eugen2777, replace '\\' to '/', when you create JS file. It will work on OSX and on WIN.
|
|
|
11-19-2015, 03:05 PM
|
#11
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Quote:
Originally Posted by mpl
eugen2777, replace '\\' to '/', when you create JS file. It will work on OSX and on WIN.
|
Спасибо!Исправлю позже
Fixed '\\' to '/'.
Last edited by eugen2777; 11-20-2015 at 02:39 AM.
|
|
|
11-22-2015, 12:19 PM
|
#12
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Updated
Updated.
Added script for Audio(beta1)
In the future, the scripts(for Midi and for Audio) will be finalized, are corrected and combined into one universal.
Last edited by eugen2777; 11-23-2015 at 06:49 AM.
|
|
|
11-30-2015, 01:20 PM
|
#13
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
It's probably not a basic need.
Meanwhile, the updated script for the midi.Added transfer of unfinished notes to next Take.Same as in normal recording.
https://stash.reaper.fm/25830/RRmidi%20unf%20notes.gif
In general, no different from the usual recording.
Thus, the recording is made entirely in the background.
In addition, there are advantages to free navigation of the project.
Last edited by eugen2777; 11-30-2015 at 01:50 PM.
|
|
|
12-01-2015, 04:20 AM
|
#14
|
Human being with feelings
Join Date: Jan 2012
Location: Germany
Posts: 1,130
|
Wow! Thank you so much for this script, Eugen!
I just installed it. Great job! No hassling around with zip files or anything.
I still feel like in a dream... It is/was definitely my #1 feature request
EDIT:
Does it buffer during pre-roll? Would be nice to have it working there as well!
|
|
|
12-01-2015, 05:49 AM
|
#15
|
Human being with feelings
Join Date: Aug 2011
Location: Los Angeles, CA
Posts: 308
|
Great work! I had no idea it could be done like that.
|
|
|
12-03-2015, 04:58 AM
|
#16
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 5,065
|
Fantastic! I got used to it and thee best feature from me ol' Logic days is back!
Thanks, Eugen!!!
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
|
|
|
12-03-2015, 07:36 AM
|
#17
|
Human being with feelings
Join Date: Jun 2013
Location: So Florida
Posts: 1,427
|
Hi,
Omg thank you Eugen!
Quote:
Originally Posted by beingmf
Fantastic! I got used to it and thee best feature from me ol' Logic days is back!
Thanks, Eugen!!!
|
Screensets..Sws zoom ....fingers groove tool...now this? Do you think the enviourment maybe might happen? Liteon almost did it:-) I would just pass out:-)
|
|
|
12-03-2015, 08:04 AM
|
#18
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Consider in more detail,it's more fun than Logic.
There are written all the incoming MIDI,and in the process you can change the playback position as you like.
And in the end,all recorded will be placed in the form of a Take.
Planned the same with audio.
It's hard for me to speak English, but conceived full support background Audio and MIDI recording
|
|
|
12-03-2015, 08:31 AM
|
#19
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
At the moment,there is a limit 8388608*4 for audio in samples.
It is about 380 seconds at 44100 stereo.
There is a way to consistently add data and in the end you can get as much time for background recording.
===
The buffer transmits data to the next when filling, and so on.
in fact, it can be any value(depending on the available memory).
Updated.
Feature is included in the script RRAudio.
Last edited by eugen2777; 12-15-2015 at 04:53 PM.
|
|
|
12-03-2015, 10:58 AM
|
#20
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 5,065
|
One request: could you please incorporate CC64 (sustain pedal) in the script? Kind of essential when you play piano
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
|
|
|
12-03-2015, 11:09 AM
|
#21
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Answer
Last edited by eugen2777; 12-14-2015 at 06:50 AM.
|
|
|
12-03-2015, 11:37 AM
|
#22
|
Human being with feelings
Join Date: Jan 2012
Location: Germany
Posts: 1,130
|
Thanks for the further details, Eugen
What about this?
Quote:
Originally Posted by timothys_monster
Does it buffer during pre-roll? Would be nice to have it working there as well!
|
|
|
|
12-03-2015, 11:54 AM
|
#23
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
It's easy to do, but then you need to think about how to reset the buffer.
If there are two modes, it is difficult to find a compromise.
At the moment, the buffer is reset when play restarted and thus received MIDI messages.
If you make a reset only when a message is received, it will be possible to unintentionally reset.
For example, if you accidentally wounded a key, we lose the entire buffer.
This is undesirable.
However, I think about how we can implement it.
|
|
|
12-03-2015, 12:16 PM
|
#24
|
Human being with feelings
Join Date: Jun 2013
Location: So Florida
Posts: 1,427
|
Quote:
Originally Posted by eugen2777
Consider in more detail,it's more fun than Logic.
There are written all the incoming MIDI,and in the process you can change the playback position as you like.
And in the end,all recorded will be placed in the form of a Take.
Planned the same with audio.
It's hard for me to speak English, but conceived full support background Audio and MIDI recording
|
Hi,
Understood, your English is great.....its what logic had on steroids..brilliant Eugene!
Thanks again
|
|
|
12-04-2015, 09:18 AM
|
#25
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 5,065
|
Quote:
Originally Posted by eugen2777
You can
add it yourself
|
Ah! I have to enter it manually and confirm.
Those sliders do not slide, that's why I thought it was readout only!
So basically ALL midi messages that I want to record should be in there?
What if I have lots of controller data (e.g. for a synth)? Do I have to insert more than one instance of "ForRetroRec" or is it simply not possible?
Thanks!
EDIT: No, it doesn't work. As soon as I want to enter a 2nd value, the first slider returns to zero :/
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
|
|
|
12-06-2015, 05:18 AM
|
#26
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Probably, I incorrectly explained.
For example, one value of 176 already includes ALL ControlChange. (0-127).
One value 192 contains ALL ProgramChange.
And so on.
Therefore, all should work well.
Not included only specific messages, such sysex.
I specifically checked the pedal (cc64), it works.
Then I checked it on different channels and different controllers, it also works fine.
Without any changes to the code.
Last edited by eugen2777; 12-06-2015 at 07:23 AM.
|
|
|
12-06-2015, 08:27 AM
|
#27
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Still, possible that when the pedal is not working.
When the moment of pressing gets to the beginning of items.
https://stash.reaper.fm/25888/1.gif
While you can simply push the edge of items.
Later, I will correct it.
========================
Updated,This has been fixed
Last edited by eugen2777; 12-06-2015 at 10:57 AM.
|
|
|
12-07-2015, 04:01 AM
|
#28
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 5,065
|
That was it!
Downloading the fixed version now.
EDIT: is it updated? Title still says 2015/11/30 - inside the script it even says 2015/11/18?
EDIT2: yes, it is Pretty confusing, but it works! Thanks, eugen!
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
Last edited by beingmf; 12-07-2015 at 04:07 AM.
|
|
|
12-07-2015, 04:29 AM
|
#29
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 5,065
|
Ah - I see where the problem is. Input FX aren't recorded. That means if I have a CC inverter on the instruments Input FX, I may hear it correctly when I play, but it won't be recorded. Is that correct?
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
|
|
|
12-07-2015, 07:11 AM
|
#30
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Quote:
Originally Posted by beingmf
EDIT: is it updated? Title still says 2015/11/30 - inside the script it even says 2015/11/18?
|
This is only a creation date.
Quote:
Originally Posted by beingmf
That means if I have a CC inverter on the instruments Input FX, I may hear it correctly when I play, but it won't be recorded. Is that correct?
|
Yes it is.Only the original signal is recorded.
However, you can move the CC inverter from Input FX to the Main FX chain of effects before the instrument.
===
Another alternative, you can add this effect in the input FX on the hidden track with my JS-plugin.
And probably it will work correctly.
MIDI-messages will be recorded in a modified form.
But it should be checked.
Last edited by eugen2777; 12-07-2015 at 08:13 AM.
|
|
|
12-11-2015, 09:24 AM
|
#31
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Updated
Updated Script for Audio.
You can now set a great time to buffer.
The default is 2 buffers.It is about 12.5 minutes,2*256MB RAM.
It is possible to set a different value depending on the available memory.
One buffer is equivalent to 380 seconds
It works similar to RR-MIDI.
The record buffer during loop playback, any change of position, etc.
All recorded will be placed in the form of a Take.
Last edited by eugen2777; 12-15-2015 at 05:00 PM.
|
|
|
12-11-2015, 02:58 PM
|
#32
|
Human being with feelings
Join Date: Jan 2012
Location: Germany
Posts: 1,130
|
Thanks!
Have you already found a way to make it work during pre-roll as well?
|
|
|
12-11-2015, 03:25 PM
|
#33
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
Quote:
Originally Posted by timothys_monster
Thanks!
Have you already found a way to make it work during pre-roll as well?
|
So far, the need to modify some of the nuances in the current versions.
Later, I want to make an entry into the buffer without starting playback.
By then it will be possible to add other options.
I could do it right now, but better slowly but surely.
|
|
|
12-12-2015, 12:49 PM
|
#34
|
Human being with feelings
Join Date: Jan 2012
Location: Germany
Posts: 1,130
|
Quote:
Originally Posted by eugen2777
I could do it right now, but better slowly but surely.
|
Sounds good to wait. I'll be patient. Thank you!
|
|
|
12-21-2015, 02:42 PM
|
#35
|
Human being with feelings
Join Date: Dec 2015
Posts: 30
|
Sorry for the noob-ish question, but how do I install this ? I created a new script on the Action List, pasted it there, ran it (the config stuff appeared) and then nothing happened.
|
|
|
12-21-2015, 03:46 PM
|
#36
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
All right.
It is only when you first run the script.
Simply assign the button on the script.
The script will upload a track buffer at startup.
===
I understand very little English
But I think the picture may explain
==
==
Last edited by eugen2777; 12-21-2015 at 03:57 PM.
|
|
|
12-23-2015, 08:14 AM
|
#37
|
Human being with feelings
Join Date: Jun 2006
Location: UK
Posts: 3,210
|
this looks interesting!!
thank you!
Subz
|
|
|
12-29-2015, 04:27 AM
|
#38
|
Human being with feelings
Join Date: Oct 2006
Posts: 5
|
Thanks for your great effort eugen2777!
I've seen this in Tracktion and would love something similar in Reaper.
I mostly record in mono so it would be nice if it was possible to select recorded intputs.
To save memory I would also appreciate the option of a 30 sec (or a minute) buffer.
|
|
|
01-02-2016, 05:52 AM
|
#39
|
Human being with feelings
Join Date: Aug 2012
Posts: 271
|
I will try to rewrite the script on Lua.
This will add some options and settings.
As I just started to learn Lua, so I need some time to learn.
|
|
|
01-02-2016, 11:10 AM
|
#40
|
Human being with feelings
Join Date: Jun 2006
Location: UK
Posts: 3,210
|
i am only using the midi version (for now) and its really really useful!!
and has a dedicated spot on my main tool bar!
Thank You!
Subz
|
|
|
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 06:31 PM.
|