Old 09-01-2015, 07:24 PM   #1
Otto Tune
Human being with feelings
 
Otto Tune's Avatar
 
Join Date: Dec 2009
Location: Colorado
Posts: 138
Default v5.02pre2 - September 1 2015

v5.02pre2 - September 1 2015
+ VST2: support for note off velocities
+ VST3: REAPER Extension API made available to VST3 plug-ins
# SoundTouch: support up to 64 channels
# Track manager: fixed rows drag-drop (reorder tracks)
# VST: temporarily disabled notetrackers for diagnostic purposes

Otto Tune is offline   Reply With Quote
Old 09-01-2015, 10:07 PM   #2
jm duchenne
Human being with feelings
 
jm duchenne's Avatar
 
Join Date: Feb 2006
Location: France
Posts: 914
Default

Quote:
Originally Posted by Otto Tune View Post
v5.02pre2 - September 1 2015
# SoundTouch: support up to 64 channels
Yeah ! It was fast !
Thanks.
jm duchenne is offline   Reply With Quote
Old 09-02-2015, 02:32 AM   #3
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

+ VST2: support for note off velocities

Awesome!
__________________
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 09-02-2015, 02:37 AM   #4
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

Quote:
Originally Posted by Otto Tune View Post
v5.02pre2 - September 1 2015
+ VST3: REAPER Extension API made available to VST3 plug-ins
This is for plug-in programmers...

Here's a basic example showing how to access REAPER Extension API functions (and extras) from a VST3 plug-in. This example uses the WDL-OL framework but that doesn't really matter, you just need the IReaperHostApplication interface, its FUID and something in those lines in your Steinberg::Vst::IPlugBase::initialize() implementation:

Code:
class IReaperHostApplication : public FUnknown // publicly-visible interface
{
public:
  // Gets a REAPER Extension API function by name, returns NULL is failed
  virtual void* PLUGIN_API getReaperApi(CStringA funcname) = 0;
  
  // Gets the parent track(=1), take(=2), project(=3), fxdsp(=4), trackchan(=5)
  virtual void* PLUGIN_API getReaperParent(uint32 w) = 0;
  
  // Multi-purpose function, returns NULL if unsupported
  virtual void* PLUGIN_API reaperExtended(uint32 call, void *parm1, void *parm2, void *parm3) = 0;
  
  static const FUID iid;
};


DECLARE_CLASS_IID (IReaperHostApplication, 0x79655E36, 0x77EE4267, 0xA573FEF7, 0x4912C27C)
const ::Steinberg::FUID IReaperHostApplication::iid (IReaperHostApplication_iid);
// ^ you might need to tweak that depending on how DECLARE_CLASS_IID is #define'd in your plug-in framework 



// REAPER Extension API function pointer example
int (*IsInRealTimeAudio)();


tresult PLUGIN_API IPlugVST3::initialize(FUnknown* context)
{
  tresult result = SingleComponentEffect::initialize(context);

  
  // ...


  if (result == kResultTrue && context)
  {
    IReaperHostApplication* reaper=NULL;
    if (context->queryInterface(IReaperHostApplication::iid, (void**)&reaper) == kResultTrue && reaper)
    {
      *((void **)&(IsInRealTimeAudio)) = reaper->getReaperApi("IsInRealTimeAudio"); // done, but always make sure IsInRealTimeAudio!=NULL before using it  

      reaper->release(); // <-- do not forget to release!
                         // if you keep a pointer around, release it in your Steinberg::Vst::IPlugBase::terminate() implementation
    }
  }

  
  // ...


  return result;
}
Jeffos is offline   Reply With Quote
Old 09-02-2015, 02:44 AM   #5
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

Quote:
Originally Posted by musicbynumbers View Post
+ VST2: support for note off velocities

Awesome!
Can't look at the moment. How are they edited?
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 09-02-2015, 02:49 AM   #6
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

In the MIDI editor, see the list of CC lanes.
EvilDragon is offline   Reply With Quote
Old 09-02-2015, 03:14 AM   #7
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by EvilDragon View Post
In the MIDI editor, see the list of CC lanes.
Hey EvilDragon, you seem like the right person to ask on this

I'm I right in thinking that Reaper now supports vst3 multi note expression parameters?

So we can control each midi note individually for vst3 synths that support it?

I'm sure I saw this being noted in the last pre 5.01 but didn't have time to ask till now.
__________________
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 09-02-2015, 04:04 AM   #8
Soli Deo Gloria
Human being with feelings
 
Soli Deo Gloria's Avatar
 
Join Date: Oct 2013
Location: Argentina
Posts: 1,303
Default

Quote:
Originally Posted by Otto Tune View Post
# VST: temporarily disabled notetrackers for diagnostic purposes
Besides being interested in the answer to musicbynumbers´question, I´d like to know what does the disabling of "notetrackers" mean and if that may cause any temporary drawback for us, MIDI users, while it is suspended.

Thanks in advance...
Soli Deo Gloria is online now   Reply With Quote
Old 09-02-2015, 04:04 AM   #9
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Nope, no note expression in Reaper yet.
EvilDragon is offline   Reply With Quote
Old 09-02-2015, 06:03 AM   #10
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by EvilDragon View Post
Nope, no note expression in Reaper yet.
poosticks!

thanks for replying.. the "yet" seems promising though! I'm sure it's been mentioned a lot recently somewhere around here!
__________________
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 09-02-2015, 06:25 AM   #11
ikoliks
Human being with feelings
 
Join Date: Jun 2011
Posts: 16
Default

Waves C1 Comp VST3 x64 plugin starts to work properly only after manual adding Aux outputs.
ikoliks is offline   Reply With Quote
Old 09-02-2015, 06:25 AM   #12
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by Otto Tune View Post
+ VST3: REAPER Extension API made available to VST3 plug-ins
After some hacking, finally got it working in a Juce based VST3 plugin :



The plugin relies on the Reaper API for lots of the functionality : the pitch/time processing, importing the selected Reaper item, reading sound files and generating the peaks data...(Not sure if/when I'd be releasing this plugin to the public...)
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 09-02-2015, 07:12 AM   #13
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Xenakios View Post
After some hacking, finally got it working in a Juce based VST3 plugin :



The plugin relies on the Reaper API for lots of the functionality : the pitch/time processing, importing the selected Reaper item, reading sound files and generating the peaks data...(Not sure if/when I'd be releasing this plugin to the public...)
oooh.. that looks very useful!
__________________
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 09-02-2015, 07:59 AM   #14
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by musicbynumbers View Post
oooh.. that looks very useful!
Well, it doesn't do much else you couldn't already do by using the Reaper media item properties/processings : pitch/time processing, looping with a crossfade, reverse playback. The plugin just makes it a bit more convenient in some situations. (The plugin also has the Paul Extreme Time Stretch processing in it, but I'd need to check about the licensing hurdles whether it's possible to have that in the plugin if I publicly release it...)
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 09-02-2015, 09:06 AM   #15
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,570
Default

Sound issues with Elastique after 5.01 update. Stretch markers on grouped items and stretched grouped items are flanging.

http://youtu.be/raebX9Mlk54
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 09-02-2015, 09:11 AM   #16
mamazai
Human being with feelings
 
Join Date: Oct 2009
Posts: 357
Default what is the sound touch

Yes, what kind of feature ? Like elastique pro for stretching ?
mamazai is offline   Reply With Quote
Old 09-02-2015, 09:14 AM   #17
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,570
Default

Quote:
Originally Posted by mamazai View Post
Yes, what kind of feature ? Like elastique pro for stretching ?
its one of the older algorithms. can sound cool or nasty.
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 09-02-2015, 09:19 AM   #18
mamazai
Human being with feelings
 
Join Date: Oct 2009
Posts: 357
Default

Quote:
Originally Posted by EpicSounds View Post
its one of the older algorithms. can sound cool or nasty.
I was thinking for better stretch.
mamazai is offline   Reply With Quote
Old 09-02-2015, 11:17 AM   #19
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Xenakios View Post
Well, it doesn't do much else you couldn't already do by using the Reaper media item properties/processings : pitch/time processing, looping with a crossfade, reverse playback. The plugin just makes it a bit more convenient in some situations. (The plugin also has the Paul Extreme Time Stretch processing in it, but I'd need to check about the licensing hurdles whether it's possible to have that in the plugin if I publicly release it...)
it's the extreme timestretch plus the crossfade looping and the ease of probably pulling in rate based pitch bends on the audio in the same process that's interesting!

Wish we could get paul's algo in reaper and this seems the closest we will have for now (if you're allowed to that is)
__________________
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 09-02-2015, 11:23 AM   #20
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by musicbynumbers View Post
it's the extreme timestretch plus the crossfade looping and the ease of probably pulling in rate based pitch bends on the audio in the same process that's interesting!

Wish we could get paul's algo in reaper and this seems the closest we will have for now (if you're allowed to that is)
I am looking into implementing the Paul stretch as an external server process which would avoid the licensing issues, but of course with a CPU hit. Anyway, this is getting off topic...
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 09-02-2015, 12:44 PM   #21
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Xenakios View Post
I am looking into implementing the Paul stretch as an external server process which would avoid the licensing issues, but of course with a CPU hit. Anyway, this is getting off topic...
I don't mind a CPU hit for things like this

Anyway.. end of topic.. move along people.. nothing to see here!
__________________
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 09-02-2015, 01:10 PM   #22
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,597
Default

Regarding layout api from pre1,please see this thread:
http://forum.cockos.com/showthread.php?t=165694
The new api is hard on cpu ,sws version could do a lot of more tracks than this new one (sws version 300+ tracks,native about 50-60 tracks and you can't do anything)

Last edited by Sexan; 09-02-2015 at 01:30 PM.
Sexan is offline   Reply With Quote
Old 09-02-2015, 01:33 PM   #23
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

Quote:
Originally Posted by Sexan View Post
Regarding layout api from pre1,please see this thread:
http://forum.cockos.com/showthread.php?t=165694
The new api is hard on cpu ,sws version could do a lot of more tracks than this new one (sws version 300+ tracks,native about 50-60 tracks and you can't do anything)
If you change track layouts in a loop, you should use PreventUIRefresh(), e.g. in Lua, something like:
Code:
reaper.PreventUIRefresh(1)

for i = 0, count_tracks -1 do
  -- change track layout, etc
end

reaper.PreventUIRefresh(-1)
There will be a single UI update (instead of count_tracks UI updates).
Jeffos is offline   Reply With Quote
Old 09-02-2015, 01:47 PM   #24
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,597
Default

So I need to call it at the beginning of the function and at the end before defer?
Sexan is offline   Reply With Quote
Old 09-02-2015, 08:05 PM   #25
swiiscompos
Human being with feelings
 
swiiscompos's Avatar
 
Join Date: Mar 2011
Location: London
Posts: 1,211
Default

Quote:
Originally Posted by Jeffos View Post
If you change track layouts in a loop, you should use PreventUIRefresh(), e.g. in Lua, something like:
Code:
reaper.PreventUIRefresh(1)

for i = 0, count_tracks -1 do
  -- change track layout, etc
end

reaper.PreventUIRefresh(-1)
There will be a single UI update (instead of count_tracks UI updates).
It doesn't seem to work... In the SWS version the new layout is called only if it's different from the current layout. Is that still the case with the new function?
swiiscompos is offline   Reply With Quote
Old 09-03-2015, 04:32 AM   #26
ikoliks
Human being with feelings
 
Join Date: Jun 2011
Posts: 16
Default

Quote:
Originally Posted by ikoliks View Post
Waves C1 Comp VST3 x64 plugin starts to work properly only after manual adding Aux outputs.
The same issue in Waves SSL Comp Stereo VST3 x64.
ikoliks 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 05:10 PM.


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