-
-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Misc questions #39
Comments
I'll try as far as I can. I just sometimes have to refer to the REAPER devs because I don't have the time/capacity to provide REAPER API support.
Good question, I should document this. Both should be okay. It shouldn't fail because it doesn't yet try to interact with REAPER. It's just about preparing the context needed for actually interacting with REAPER. Things start to get interesting as soon as you use try to obtain a (low-level) Of course you could avoid calling
Not sure. I don't put my REAPER-only VST plug-ins in the usual VST plug-in directoy anymore but into If you find the best possible way to do this, it would be cool if you could add it to the docs.
Return something different than 0 if you handle this callback. I usually return 1. The only difference this return values makes for reaper-rs is that The difference for REAPER itself is similar:
Could be many reasons. The most likely one maybe: The medium-level
Probably same reason as above.
I do this by defering closure execution until the next main loop cycle, this works. So just execute your code next time the control surface
I don't know this function, I use |
Thanks, everything is working fine now. Btw, would it be possible to make methods like And I noticed something: |
Good to hear :)
Strange indeed.
That would be unsafe in terms of reentrancy.
There might be other callback methods except If you want to modify something synchronously (without a channel), you can use interior mutability.
|
Thanks, everything is working fine now. #[derive(Derivative)]
#[derivative(Debug)]
pub struct MyControlSurface<FC> {
#[derivative(Debug = "ignore")]
pub reaper: Reaper,
#[derivative(Debug = "ignore")]
pub tx_action: Sender<SurfaceAction>,
#[derivative(Debug = "ignore")]
pub rx_action: Receiver<SurfaceAction>,
#[derivative(Debug = "ignore")]
pub action_queue: DebounceQueue<SurfaceAction>,
#[derivative(Debug = "ignore")]
pub reload_cfg_and_apply_if_changed: Box<FC>,
#[derivative(Debug = "ignore")]
pub file_watcher: Hotwatch,
#[derivative(Debug = "ignore")]
pub host: HostCallback,
pub my_track_name: String,
} |
I added this type bound because it becomes part of Maybe it would be good to remove this requirement for On the other hand ... why does it force you to exclude so many fields? E.g. the |
Ah, makes sense. |
@Boscop FYI, I realized there's a soundness issue even with the current restriction of allowing read access only in |
A few questions came up, maybe you could answer some of them? :)
reaper_vst_plugin!()
andPluginContext::from_vst_plugin(&self.host, static_vst_plugin_context())
when running in other DAWs? Do I have to be careful about something? (Also, is it safe to have multiple instances of the same VST loaded in the same project?)ext_set_fx_change
?MyOnAudioBuffer
andMyControlSurface
from here, and modifiedrun()
to log to my logfile instead, but it's not being called, any idea why?set_track_list_change
is called twice, but if I add a new track and then rename it, it's not called. Why could that be?GetNumTracks
returns 0 when Reaper is not paused? It only seems to returns the right number when playback is paused.The text was updated successfully, but these errors were encountered: