|
|
|
03-29-2020, 06:41 AM
|
#81
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
1.3.5
+ Fixed bug of conflict of "Toggle trim behind items when editing" option with MIDI Sampler.
+ The script can remember window position from last session
+ MIDI Sampler stops creating notes after reaching the highest (G9, 127)
+ Right click Inserts/Removes the markers immediately and without additional menus
|
|
|
03-31-2020, 11:47 AM
|
#82
|
Human being with feelings
Join Date: Mar 2009
Posts: 309
|
Great script!!
It would be awesome if it could "store/save" transient detection from another track and apply them to another.
example:
Imagine i want to quantize drums for the verse of the song
I detect all the transients on the kick track and save/store them
now go to the snare track. detect everything perfectly and them apply also the kick hit points on top of it.
so when it splices all the grouped tracks it remembers both tracks.
I really don't like the usual workflow of "render kick and snare hits on a single track" because it only works if kick and snare never hitting at the same time or doing flams or being at the same time but not exactly 100%.
Thanks for your hard work
|
|
|
04-01-2020, 09:24 AM
|
#83
|
Human being with feelings
Join Date: Mar 2011
Location: West Tennessee
Posts: 1,146
|
@cool is there a prerequiste or dependency that needs to be installed for this? I installed from Reapack today on a clean install of Reaper, and running the script does nothing. I am unable to see any output to find out why its not launching the interface.
Here's what I am seeing (may be a minute for the link to work)
https://drive.google.com/open?id=1Sg...sQKz35_JblNH2d
thanks
|
|
|
04-01-2020, 09:40 AM
|
#84
|
Human being with feelings
Join Date: Mar 2011
Location: West Tennessee
Posts: 1,146
|
okay, it looks like my issue was selecting the items first. If I select nothing but run the script, it launches without issue
Nevermind
|
|
|
04-01-2020, 09:59 AM
|
#85
|
Human being with feelings
Join Date: Oct 2017
Location: Russia
Posts: 366
|
@mykrobinson
If you select elements and run the script, the script just analyzes the material for a long time. Need to wait a little and interface will open.
|
|
|
04-01-2020, 11:35 AM
|
#86
|
Human being with feelings
Join Date: Mar 2011
Location: West Tennessee
Posts: 1,146
|
Quote:
Originally Posted by Archie
@mykrobinson
If you select elements and run the script, the script just analyzes the material for a long time. Need to wait a little and interface will open.
|
thank you.
|
|
|
04-02-2020, 05:55 PM
|
#87
|
Human being with feelings
Join Date: Jun 2019
Posts: 2
|
Good job
But why only items of 180 seconds can be processed ? Why it cant be for at least 5 minutes ?
|
|
|
04-02-2020, 07:14 PM
|
#88
|
Human being with feelings
Join Date: Nov 2018
Posts: 61
|
Awwwwwwwesome! Crazy how good the detection is.
|
|
|
04-02-2020, 08:03 PM
|
#89
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Quote:
Originally Posted by The-Zeronaut
Great script!!
It would be awesome if it could "store/save" transient detection from another track and apply them to another.
example:
Imagine i want to quantize drums for the verse of the song
I detect all the transients on the kick track and save/store them
now go to the snare track. detect everything perfectly and them apply also the kick hit points on top of it.
so when it splices all the grouped tracks it remembers both tracks.
I really don't like the usual workflow of "render kick and snare hits on a single track" because it only works if kick and snare never hitting at the same time or doing flams or being at the same time but not exactly 100%.
Thanks for your hard work
|
Interesting idea. I'll take a note. Thanks!
Quote:
Originally Posted by zandijose
But why only items of 180 seconds can be processed ? Why it cant be for at least 5 minutes ?
|
No problem, in the next update I will increase the time to 5 minutes.
But, keep in mind, with long durations, the script can start for a very long time.
|
|
|
04-03-2020, 05:03 AM
|
#90
|
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 9,901
|
@Cool
I wonder if it would be interesting to start digging Lua Coroutine,
it is a way to allow some kind of parallel processing in Lua,
this way you can have your audio analyses code not blocking the GUI (if someone analyse a 5 min sounds for eg)
Lokasenna is the guy to ask for such advanced lua things :P
|
|
|
04-03-2020, 07:19 AM
|
#91
|
Human being with feelings
Join Date: Oct 2019
Location: Sydney
Posts: 471
|
Cool - completely amazing tool!
Shall donate in the morning.
|
|
|
04-03-2020, 07:52 PM
|
#92
|
Human being with feelings
Join Date: Jan 2019
Posts: 245
|
Thank you so much, this is absolutely increible!
Docked state is not being remembered at all here though.
|
|
|
04-04-2020, 07:45 AM
|
#93
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Quote:
Originally Posted by tdc
Cool - completely amazing tool!
Shall donate in the morning.
|
Thank you!
Quote:
Originally Posted by DaniloVillanova
Thank you so much, this is absolutely increible!
Docked state is not being remembered at all here though.
|
You're welcome!
Docked is disabled by default. To enable, in the script User Area section, change
Docked = 0
to
Docked = 1
|
|
|
04-04-2020, 11:04 AM
|
#94
|
Human being with feelings
Join Date: Jan 2019
Posts: 245
|
Quote:
Originally Posted by cool
Thank you!
You're welcome!
Docked is disabled by default. To enable, in the script User Area section, change
Docked = 0
to
Docked = 1
|
hey, thanks for the response. I can't find the user area anywhere...
EDIT: Nevermind, found it!
Last edited by DaniloVillanova; 04-04-2020 at 11:11 AM.
|
|
|
04-05-2020, 11:44 PM
|
#95
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Quote:
Originally Posted by X-Raym
@Cool
I wonder if it would be interesting to start digging Lua Coroutine,
it is a way to allow some kind of parallel processing in Lua,
this way you can have your audio analyses code not blocking the GUI (if someone analyse a 5 min sounds for eg)
Lokasenna is the guy to ask for such advanced lua things :P
|
Thanks! This is a good idea, but so far it looks too complicated for me.
But, now I found a couple of other ways to increase the speed of the script.
New version:
1.4
+ Script launch and slicer actions do not reset Loop Selection.
+ Reworked and improved protection against incorrect actions or double-clicking on buttons.
+ Startup tooltip, if necessary.
+ The system of non-destructive gluing of items has been improved.
+ Now the script correctly recognizes waveform in muted items.
+ Now MIDI Sampler creates a new track.
+ MIDI Sampler copies FX (User Defined), Routing, Mute / Solo, Volume, Pan and Width from the original track to the new one.
+ Fixed incorrect behavior of Slice and Markers functions when layering items.
+ Now items do not change their position if they do not start strictly from the beginning of the measure.
+ Fixed incorrect behavior of MIDI Sampler when layering items.
+ Increased initialization speed, the window opens without delay on long items.
+ Increased the speed of calculating the waveform and related operations by about 20%.
+ Maximum audio duration increased to 5 minutes (300s).
+ Many small changes, optimization and code cleaning.
-
|
|
|
04-06-2020, 03:26 AM
|
#96
|
Human being with feelings
Join Date: Jul 2012
Location: Netherlands
Posts: 5,247
|
Real appreciation and respect for continuously updating this awesome Script.
Great work cool !
|
|
|
04-10-2020, 12:42 PM
|
#97
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
1.4.1
+ Notes in Midi Editor now have short names.
+ The script remembers the window size from the last session.
+ Added menu with User Settings.
+ Fixed incorrect track selection after MIDI Sampler.
+ Improved accuracy of setting / removing markers with a small window size: the capture area is now adaptive to window scale.
+ Simplified zooming in of the start and end of the waveform.
+ Play cursor snaps at the start of the waveform if the click is close to the left edge of the window.
+ Auto scroll view.
+ Better font scaling (Tips on the Start screen).
+ The maximum horizontal zoom on the keys now corresponds to the maximum on the mouse wheel.
+ Now the script can work with the selected area, taking the item(s) from the selected track during initialization or by Get Item button.
+ Items are cut when working with a multi-track if they have a length different from the length of the item on the script start.
User Menu:
Work with Time Selection:
|
|
|
04-11-2020, 09:57 AM
|
#98
|
Human being with feelings
Join Date: Oct 2013
Posts: 105
|
Quote:
Originally Posted by cool
1.4.1
+ Notes in Midi Editor now have short names.
+ The script remembers the window size from the last session.
+ Added menu with User Settings.
+ Fixed incorrect track selection after MIDI Sampler.
+ Improved accuracy of setting / removing markers with a small window size: the capture area is now adaptive to window scale.
+ Simplified zooming in of the start and end of the waveform.
+ Play cursor snaps at the start of the waveform if the click is close to the left edge of the window.
+ Auto scroll view.
+ Better font scaling (Tips on the Start screen).
+ The maximum horizontal zoom on the keys now corresponds to the maximum on the mouse wheel.
+ Now the script can work with the selected area, taking the item(s) from the selected track during initialization or by Get Item button.
+ Items are cut when working with a multi-track if they have a length different from the length of the item on the script start.
User Menu:
Work with Time Selection:
|
The Best!
|
|
|
04-11-2020, 12:02 PM
|
#99
|
Human being with feelings
Join Date: Feb 2006
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
|
Thank you for the update !
|
|
|
04-11-2020, 12:12 PM
|
#100
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
|
Thanks also, masters can be recognized by how finely they optimize their tool, even if it is already great! Like here, thanks a lot!
|
|
|
04-11-2020, 01:15 PM
|
#101
|
Human being with feelings
Join Date: Mar 2009
Posts: 309
|
Every update is a wonderful gift
|
|
|
04-11-2020, 01:45 PM
|
#102
|
Human being with feelings
Join Date: Jul 2012
Location: Netherlands
Posts: 5,247
|
Yes, indeed.
This script is growing more powerful with every update.
Amazing work !
|
|
|
04-11-2020, 05:18 PM
|
#103
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,067
|
I agree, a wonderful and professional tool!
|
|
|
04-15-2020, 05:17 AM
|
#104
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Thank you!
1.4.3
+ The script now has an on/off toggle status with a change in the state of the button in the toolbar.
+ Fixed: in some cases, the action of the Reset button affected the selection of items.
+ Fixed: incorrect script behavior if there were no items in the selected area.
+ Fixed: incorrect script behavior if several tracks are selected.
+ Fixed: MIDI Sampler error if no audio was loaded into the script.
+ AutoScroll: Repeated Play returns focus to the Play cursor.
+ Changed script behavior with Time Selection (Optional).
+ Fixed incorrect copying of Routing in Sampler mode.
|
|
|
04-15-2020, 02:19 PM
|
#105
|
Human being with feelings
Join Date: Jan 2015
Posts: 795
|
Hey great script! I missed your Reapack link, could you post it again?
g
|
|
|
04-15-2020, 02:33 PM
|
#106
|
Human being with feelings
Join Date: Feb 2006
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
|
Thank you !
|
|
|
04-15-2020, 02:48 PM
|
#107
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,067
|
Quote:
Originally Posted by Gianfini
Hey great script! I missed your Reapack link, could you post it again?
g
|
It's in the ReaTeam repo.
|
|
|
04-15-2020, 07:11 PM
|
#108
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Quote:
Originally Posted by Gianfini
Hey great script! I missed your Reapack link, could you post it again?
g
|
Hello! You just need to install ReaPack and find the script there. The script is published on behalf of ReaTeam, it is in ReaPack by default and without additional links.
If there is no script, or if there is an old version, you need to do Synchronize Packages to update the RePack content.
|
|
|
04-16-2020, 09:39 AM
|
#109
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,067
|
Hey cool, I found a strange behavior (possibly bug?)
When the arrange is zoomed out I get different results as with the arrange zoomed in.
Basically the shaker in the GIF is completely destroyed :P
I guess this is due to SnapToGrid() which always refers to the visual grid.
|
|
|
04-16-2020, 10:35 AM
|
#110
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Quote:
Originally Posted by _Stevie_
Hey cool, I found a strange behavior (possibly bug?)
When the arrange is zoomed out I get different results as with the arrange zoomed in.
Basically the shaker in the GIF is completely destroyed :P
I guess this is due to SnapToGrid() which always refers to the visual grid.
|
Yes exactly. I found an old topic where it was discussed. But, there we are talking about a MIDI grid, but maybe you know a solution for arrange view?
Although, perhaps there is a simple solution with forced inclusion of the grid at the time of quantization ... tomorrow I will try to investigate this issue.
Thanks for the find!
|
|
|
04-16-2020, 10:46 AM
|
#111
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,067
|
Yes, thankfully there's a solution:
BR_GetClosestGridDivision().
This will always refer to the actual grid set in the project.
Concerning the mentiond thread:
Unfortunately, there's no way to get the MIDI grid snapping.
The workaround is to set the arrange grid to the same grid value as the MIDI editor
and then use BR_GetClosestGridDivision() for the calculation.
Feel free to support my request in that regard :P
https://forums.cockos.com/showthread.php?t=234290
|
|
|
04-16-2020, 10:54 AM
|
#112
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,067
|
The issue also is, that BR_GetClosestGridDivision() doesn't return swing values. Can't recall if it's the same with SnapToGrid().
There are a whole bunch of issues there, because of missing APIs.
|
|
|
04-16-2020, 01:42 PM
|
#113
|
Human being with feelings
Join Date: Jan 2015
Posts: 795
|
Ok I tested the script. Very nice!
Some request
- please handle Grouping.. I often have 8+ mic drums to align, I have to align one guide track and all others must slice and quantise accordignly
- gap filling and cross-fading works better with other scripts, could you add an option to just quantize without xfading/fillign gaps?
rest seems to be working
g
|
|
|
04-16-2020, 06:59 PM
|
#114
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Quote:
Originally Posted by _Stevie_
The issue also is, that BR_GetClosestGridDivision() doesn't return swing values. Can't recall if it's the same with SnapToGrid().
There are a whole bunch of issues there, because of missing APIs.
|
Oh, this command really does not support swing. Poorly. It turns out, this problem becomes "known issues" for the script
Quote:
Originally Posted by Gianfini
- please handle Grouping.. I often have 8+ mic drums to align, I have to align one guide track and all others must slice and quantise accordignly
|
Thanks for the ideas!
This requires more clarity and perhaps a description of the workflow. The script already has the ability to group. Or do you need something more?
Quote:
Originally Posted by Gianfini
- gap filling and cross-fading works better with other scripts, could you add an option to just quantize without xfading/fillign gaps?
|
It may be handy, I will think about it.
|
|
|
04-16-2020, 11:27 PM
|
#115
|
Human being with feelings
Join Date: Oct 2017
Location: Russia
Posts: 366
|
Quote:
Originally Posted by cool
Oh, this command really does not support swing. Poorly. It turns out, this problem becomes "known issues" for the script
|
Yes - the function 'BR_GetClosestGridDivision' does not work with swing and moreover, it still returns values not from the installed grid in the project, but from 1/128.
And in my opinion the values are not always accurate, it’s not exact, but I remember something that I caught such a bug.
You can solve this problem like this.
Returns the nearest grid from the one set in the project. Works with swing.
Depends on the snapping and visibility of the grid.
Code:
local function Arc_GetClosestGridDivision(time_pos);
if not tonumber(time_pos)then return -1 end;
reaper.PreventUIRefresh(4573);
local st_tm, en_tm = reaper.GetSet_ArrangeView2(0,0,0,0);
reaper.GetSet_ArrangeView2(0,1,0,0,st_tm,st_tm+.1);
local Grid = reaper.SnapToGrid(0,time_pos);
reaper.GetSet_ArrangeView2(0,1,0,0,st_tm,en_tm);
reaper.PreventUIRefresh(-4573);
return Grid;
end;
Grid = Arc_GetClosestGridDivision(time_pos);
Edit:
Code:
local function Arc_GetClosestGridDivisionT(...);
reaper.PreventUIRefresh(4573);
local st_tm,en_tm = reaper.GetSet_ArrangeView2(0,0,0,0);
reaper.GetSet_ArrangeView2(0,1,0,0,st_tm,st_tm+.1);
----
local tbl,t,Grid = {...},{},nil;
for i = 1,#tbl do;
if type(tbl[i])=='table'then;
if #tbl[i]==0 then t[#t+1]=-1 end;
for i2=1,#tbl[i]do;
if tonumber(tbl[i][i2])and tonumber(tbl[i][i2])>=0 then;
Grid = reaper.SnapToGrid(0,tbl[i][i2]);
end;
if not tonumber(Grid)or Grid<0 then Grid=-1 end;
t[#t+1] = Grid;
end;
else;
if tonumber(tbl[i])and tonumber(tbl[i])>=0 then;
Grid = reaper.SnapToGrid(0,tbl[i]);
end;
if not tonumber(Grid)or Grid<0 then Grid=-1 end;
t[#t+1] = Grid;
end;
end;
----
reaper.GetSet_ArrangeView2(0,1,0,0,st_tm,en_tm);
reaper.PreventUIRefresh(-4573);
return t,load('return '..table.concat(t,','))();
end;
-- Example:
-- Пример:
local tbl = {3,4,5,6,7};
local array,val1,val2,val3,val,val4,val5,val6,val7,val8,val9 = Arc_GetClosestGridDivisionT(1,2,tbl,8,9);
Last edited by Archie; 04-17-2020 at 10:50 AM.
|
|
|
04-17-2020, 02:57 AM
|
#116
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Quote:
Originally Posted by Archie
Yes - the function 'BR_GetClosestGridDivision' does not work with swing and moreover, it still returns values not from the installed grid in the project, but from 1/128.
And in my opinion the values are not always accurate, it’s not exact, but I remember something that I caught such a bug.
You can solve this problem like this.
Returns the nearest grid from the one set in the project. Works with swing.
Depends on the snapping and visibility of the grid.
Code:
local function Arc_GetClosestGridDivision(time_pos);
reaper.PreventUIRefresh(4573);
local st_tm, en_tm = reaper.GetSet_ArrangeView2(0,0,0,0);
reaper.GetSet_ArrangeView2(0,1,0,0,st_tm,st_tm+.1);
local Grid = reaper.SnapToGrid(0,time_pos);
reaper.GetSet_ArrangeView2(0,1,0,0,st_tm,en_tm);
reaper.PreventUIRefresh(-4573);
return Grid;
end;
Grid = Arc_GetClosestGridDivision(time_pos);
|
Wow, thank you! You help out as always!
But ... Now I can not reproduce the problem even on older versions of the script. Something strange is happening, it seems that now I am missing some kind of detail (or vice versa - I was missing before).
_Stevie_, Archie, can you test this version?
Last edited by cool; 11-22-2023 at 09:24 PM.
|
|
|
04-17-2020, 03:00 AM
|
#117
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,067
|
Quote:
Originally Posted by cool
Wow, thank you! You help out as always!
But ... Now I can not reproduce the problem even on older versions of the script. Something strange is happening, it seems that now I am missing some kind of detail (or vice versa - I was missing before).
_Stevie_, Archie, can you test this version?
|
Yes will do, gimme some minutes. Will report back in a bit!
|
|
|
04-17-2020, 03:24 AM
|
#118
|
Human being with feelings
Join Date: Oct 2017
Location: Russia
Posts: 366
|
@cool
I checked, in this version everything seems to be quantized normally
beta:
previous:
|
|
|
04-17-2020, 04:10 AM
|
#119
|
Human being with feelings
Join Date: Oct 2017
Location: Black Forest
Posts: 5,067
|
That's awesome guys!
quantize on zoomed grid works as well as swinged grid!
@Archie: I haven’t tried, yet, but is this function also tempo map proof?
Meaning: does it also work with complex tempo changes?
|
|
|
04-17-2020, 04:15 AM
|
#120
|
Human being with feelings
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 962
|
Perfect
|
|
|
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 09:09 AM.
|