Old 09-14-2022, 12:42 PM   #1
sockmonkey72
Human being with feelings
 
sockmonkey72's Avatar
 
Join Date: Sep 2021
Location: Berlin
Posts: 1,935
Default v6.67+dev0914 - September 14 2022

v6.67+dev0914 - September 14 2022
  • * Includes feature branch: media item fade editing changes
  • * Includes feature branch: selected media item appearance changes
  • * Includes feature branch: track grouping manager dialog
  • * Includes feature branch: CLAP plugin support
  • * Includes feature branch: track media/razor edit grouping
  • * Includes feature branch: improve experimental silent-track CPU reduction option to include FX tail length
  • * Includes feature branch: media item fixed lanes
  • * Includes feature branch: internal pin management overhaul for future extension
  • + API: expose realloc_cmd_register_buf/realloc_cmd_clear to C/C++ API
  • + CLAP: fix UI positioning and artifacts for plugins that don't support resizing
  • + FX: fix CPU metering errors when using instance oversampling
  • + Media explorer: when creating database from folder via context menu, name the database "DB: <foldername>" by default, for consistency
  • + Render: after user-cancelled render, render statistics actions and API functions return nothing
  • # CLAP: don't send 3-byte MIDI meta-messages to plugins as regular MIDI [p=2595436]
  • # CLAP: prevent crash when passing sysex to plugins [p=2595417]
This thread is for pre-release features discussion. Use the Feature Requests forum for other requests.

Changelog - Pre-Releases

Generated by X-Raym's REAPER ChangeLog to BBCode
__________________
ReaPack Repository: right-click and copy index URL
sockmonkey72 is offline   Reply With Quote
Old 09-14-2022, 12:43 PM   #2
sockmonkey72
Human being with feelings
 
sockmonkey72's Avatar
 
Join Date: Sep 2021
Location: Berlin
Posts: 1,935
Default

Quote:
  • + API: expose realloc_cmd_register_buf/realloc_cmd_clear to C/C++ API
What's this stuff for? Thanks!
__________________
ReaPack Repository: right-click and copy index URL
sockmonkey72 is offline   Reply With Quote
Old 09-14-2022, 12:48 PM   #3
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,750
Default

Quote:
Originally Posted by sockmonkey72 View Post
What's this stuff for? Thanks!
It's for extension (not needed by reascript) callers of REAPER API functions to more cleanly handle returned buffers from functions like GetSetProjectInfo_String() without knowing the length of the returned data beforehand. Somewhat technical.

Last edited by schwa; 09-14-2022 at 01:01 PM.
schwa is offline   Reply With Quote
Old 09-14-2022, 12:59 PM   #4
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

@sockmonkey
https://forum.cockos.com/showthread....94#post2156994

Thanks @devs.
nofish is offline   Reply With Quote
Old 09-14-2022, 01:06 PM   #5
sockmonkey72
Human being with feelings
 
sockmonkey72's Avatar
 
Join Date: Sep 2021
Location: Berlin
Posts: 1,935
Default

Quote:
Originally Posted by schwa View Post
It's for extension (not needed by reascript) callers of REAPER API functions to more cleanly handle returned buffers from from functions like GetSetProjectInfo_String() without knowing the length of the returned data beforehand. Somewhat technical.
I've been known to write extensions and REAPER-extended plugins, so this is the kind of technical stuff I like to know about.

So if I were calling GetSetProjectInfo_String() from my extension, I would do something like:

Code:
char *ptr = NULL;
int size = 0;
int tok = realloc_cmd_register_buf(&ptr, &size); // allocate ptr and return initial ptr/size
GetSetProjectInfo_String(NULL, "NEEDS_BIG", ptr, false); // REAPER checks some internal table of registered pointers to see if it can realloc for the data to be returned, doing so as necessary
realloc_cmd_clear(tok); // don't need you anymore
?
__________________
ReaPack Repository: right-click and copy index URL
sockmonkey72 is offline   Reply With Quote
Old 09-14-2022, 01:10 PM   #6
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,750
Default

Quote:
Originally Posted by sockmonkey72 View Post
I've been known to write extensions and REAPER-extended plugins, so this is the kind of technical stuff I like to know about.

So if I were calling GetSetProjectInfo_String() from my extension, I would do something like:

Code:
char *ptr = NULL;
int size = 0;
int tok = realloc_cmd_register_buf(&ptr, &size); // allocate ptr and return initial ptr/size
GetSetProjectInfo_String(NULL, "NEEDS_BIG", ptr, false); // REAPER checks some internal table of registered pointers to see if it can realloc for the data to be returned, doing so as necessary
realloc_cmd_clear(tok); // don't need you anymore
?
That should work, although a more typical usage would be to have ptr/size initially point to a reasonable-sized local buffer. That way no heap allocation occurs if the returned data is small enough to fit in the provided buffer.

Code:
char buf[4096];
char *ptr = &buf;
int size = sizeof(buf);
int tok = realloc_cmd_register_buf(&ptr, &size); // allocate ptr and return initial ptr/size
GetSetProjectInfo_String(NULL, "NEEDS_BIG", ptr, false); // REAPER checks some internal table of registered pointers to see if it can realloc for the data to be returned, doing so as necessary
realloc_cmd_clear(tok); // don't need you anymore
schwa is offline   Reply With Quote
Old 09-14-2022, 01:14 PM   #7
sockmonkey72
Human being with feelings
 
sockmonkey72's Avatar
 
Join Date: Sep 2021
Location: Berlin
Posts: 1,935
Default

Quote:
Originally Posted by schwa View Post
That should work, although a more typical usage would be to have ptr/size initially point to a reasonable-sized local buffer. That way no heap allocation occurs if the returned data is small enough to fit in the provided buffer.

Code:
char buf[4096];
char *ptr = &buf;
int size = sizeof(buf);
int tok = realloc_cmd_register_buf(&ptr, &size); // allocate ptr and return initial ptr/size
GetSetProjectInfo_String(NULL, "NEEDS_BIG", ptr, false); // REAPER checks some internal table of registered pointers to see if it can realloc for the data to be returned, doing so as necessary
realloc_cmd_clear(tok); // don't need you anymore
Got it, that makes sense. Clever, thanks!
__________________
ReaPack Repository: right-click and copy index URL
sockmonkey72 is offline   Reply With Quote
Old 09-14-2022, 01:15 PM   #8
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,750
Default

Quote:
Originally Posted by sockmonkey72 View Post
Got it, that makes sense. Clever, thanks!
( this was all Justin )
schwa is offline   Reply With Quote
Old 09-14-2022, 10:59 PM   #9
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

That realloc stuff is great. I was always allocating lots of heap memory when getting track chunks, just to be sure. If I understand correctly, this can be optimized now Thanks devs!
helgoboss is online now   Reply With Quote
Old 09-15-2022, 12:50 AM   #10
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
  • + CLAP: fix UI positioning and artifacts for plugins that don't support resizing
  • # CLAP: don't send 3-byte MIDI meta-messages to plugins as regular MIDI [p=2595436]
  • # CLAP: prevent crash when passing sysex to plugins [p=2595417]
FWIW, I can confirm that these issues are fixed. Thanks!

I do have a new issue: My CLAP IPlug example effect is now listed as CLAPi instead of CLAP. Its CLAP features are "audio-effect" and "stereo".
Tale is offline   Reply With Quote
Old 09-15-2022, 04:56 AM   #11
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default CLAP_PARAM_IS_BYPASS

If I use CLAP_PARAM_IS_BYPASS on a CLAP plugin parameter, then it would seem that this parameter is omitted from the generic UI parameter list. However, it is still included in the automation list. I guess it should be omitted there as well, because else you can automate both the parameter and REAPER's own bypass, which could lead to conflicting values.

(BTW, I have no plugin to test this with, because IMHO the whole CLAP_PARAM_IS_BYPASS isn't well-defined. Also, I can't get it to play nice with Bitwig, so for now I've given up on it.)
Tale is offline   Reply With Quote
Old 09-15-2022, 09:36 AM   #12
daxliniere
Human being with feelings
 
daxliniere's Avatar
 
Join Date: Nov 2008
Location: London, UK
Posts: 2,581
Default

Quote:
Originally Posted by nofish View Post
Okay, wow, that's a big deal. Awesome. *applause*
__________________
Puzzle Factory Sound Studios, London [Website] [Instagram]
[AMD 5800X, 32Gb RAM, Win10x64, NVidia GTX1080ti, UAD2-OCTO, FireFaceUCX, REAPER x64]
[Feature request: More details in Undo History]
daxliniere is offline   Reply With Quote
Old 09-16-2022, 01:03 PM   #13
BartR
Human being with feelings
 
BartR's Avatar
 
Join Date: Oct 2014
Location: Belgium
Posts: 1,612
Default

Quote:
Originally Posted by sockmonkey72 View Post
v6.67+dev0914 - September 14 2022[*] * Includes feature branch: media item fixed lanes
2 things can be interesting.
the first: to add a lane upfront recording. It's just more clear, more intuitive as well, to the user. I mean upfront any recording even the very first. Perhaps adding a insert empty lane in grayish (since a lane has sense after the first one is recorded)

the second: it will be nice if adding a lane, the vertical amplitude of the track increases accordingly, without being constrained to do it manually.

__________________
Reaper: always the most up-to-date.
O.S.: Windows 11 Pro
ReaPack (with bilingual Tutorials): https://bit.ly/ReaPack_Repository

Last edited by BartR; 09-16-2022 at 02:06 PM.
BartR is offline   Reply With Quote
Old 09-16-2022, 10:49 PM   #14
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
Default

Quote:
Originally Posted by sockmonkey72 View Post
v6.67+dev0914 - September 14 2022
  • * Includes feature branch: internal pin management overhaul for future extension
Regarding discussions in the Feature Request forum:
I am slightly confused why here, Audio and Midi routing is presented to the user in a very different way, even though we do have Audio channels and Midi buses that follow a similar concept, and for tracks a common Routing Matrix. In theory that also could be a pin routing matrix for Midi, as well.
-Michael
mschnell is online now   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 03:11 PM.


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