|
|
|
05-07-2012, 08:00 AM
|
#241
|
Human being with feelings
Join Date: Dec 2008
Posts: 2,111
|
Quote:
Originally Posted by Jeffos
|
That solution is kind of outside the topic of this thread.
I would like to have plug-in extension API functions to save/restore clipboard contents.
I tried to search the SWS source code but I could not find a clear example of clipboard save/restore. What is the best place to look at for an example? Are those clipboard operations platform specific or cross-platform?
jnif
|
|
|
05-07-2012, 09:23 AM
|
#242
|
Code Monkey
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
|
jnif, check out the functions ClipboardToList and ListToClipboard in MarkerListClass.cpp here.
This code is cross-platform with WDL's swell, but, the OSX clipboard is "internal" to Reaper and can't be accessed from other applications. (At least last time I checked this was the case, perhaps WDL's been updated to address this.) Microsoft's SDK documentation on the clipboard functions is quite good, my code is basically a copy of their examples.
|
|
|
05-10-2012, 01:42 PM
|
#243
|
Human being with feelings
Join Date: Dec 2011
Posts: 506
|
Is this possible?
Hey everyone!
I'm not sure if I'm posting this in the right thread but here it goes.
I was wondering if this is possible. I would like to code a per-project track bank that works like this:
-It has a dedicated window that can be docked or floating.
-Individual tracks or groups of tracks from the project can be dragged and dropped into this window. When they are dragged and dropped into the window, the track or group of tracks will then be saved as a track template (after prompting for a name for the track template and preference to save envelopes and/or items within the track template) in a dedicated folder that is automatically created in the project directory (the folder would be automatically titled "Track Templates").
-The window is basically a browser that is rooted with the base being the dedicated folder in the project directory. The window displays all of the current project's track templates in this folder (with drag and drop support from the window to the project itself).
-Folders can be created within the main folder via said browser window for organizational purposes.
The reason I want to do this is because I like to render tracks to stems and remove the old track from the project so I don't mess it up. Track templates make a perfect way to back up the old track that I remove other than the fact that drag and drop is not supported, nor is the ability to define a default track template folder on a per-project basis, so storing project-specific tracks in track templates requires me to search for the project directory every single time do it (a severe workflow annoyance to me).
If this were possible (see this thread http://forum.cockos.com/showthread.php?t=101854), I would be able to utilize the media explorer in place of this track bank window that I want to code. But with the lack of support my request got it probably wont happen any time soon.
I only have basic C/C++ knowledge by the way, is this biting off more than I can chew?
Any help is appreciated!
Last edited by Alkamist; 05-10-2012 at 01:47 PM.
|
|
|
05-10-2012, 08:29 PM
|
#244
|
Human being with feelings
Join Date: Mar 2010
Location: Brazil
Posts: 42
|
How to use the function Main_OnCommandEx() On C++ or Python?
I have 2 projectTabs(project1 and project2). I want to mute the track1 on project1 but from project2. A remote mute from project2. The Main_OnCommandEx() uses the ReaProject* field, but I cant do it works!
|
|
|
06-08-2012, 08:37 AM
|
#245
|
Human being with feelings
Join Date: Nov 2011
Posts: 109
|
How do I receive MIDI in python reascript?
Hi.
I would like to receive midi events in reascript from my masterkeyboard.
Motivation:
I'd like to move currenty selected note up/down by keypress on external midi keyboard when editing.
Thx
|
|
|
08-16-2012, 05:41 PM
|
#246
|
Human being with feelings
Join Date: Nov 2010
Posts: 2,436
|
I'm using msvs - how would I perform debugging? I see [developer]: Debug console in Reaper's action list but I can`t seem to make it happen.
In ReaScript I would just use ShowConsoleMsg but in C++ it seems it is not that easy.
|
|
|
08-17-2012, 07:23 AM
|
#247
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
|
Quote:
Originally Posted by Breeder
I'm using msvs - how would I perform debugging?
|
The answer to that doesn't really belong here. Check your PMs for a quick how-to.
|
|
|
09-28-2012, 03:56 AM
|
#248
|
Human being with feelings
Join Date: Nov 2010
Posts: 2,436
|
Does anybody knows if there is a way to get currently active take envelope? I can't seem to find anything like GetSelectedTrackEnvelope that also works for take envelopes.
|
|
|
10-02-2012, 11:13 AM
|
#249
|
Mortal
Join Date: Dec 2008
Location: France
Posts: 1,969
|
[EDIT] forget that, bad advice: there is GetTakeEnvelopeByName(MediaItem_Take* take, const char* envname) in the API ![/EDIT]
there is nothing in the API to deal with take envs yet but since you are part of the sws project, you can do this (take vol env example):
Code:
#include "SnM_Chunk.h"
[...]
WDL_FastString tkState, tkEnvState;
SNM_TakeParserPatcher p(_item, CountTakes(_item));
if (p.GetTakeChunk(tkIdx, &tkState)) {
SNM_ChunkParserPatcher ptk(&tkState, false);
if (ptk.GetSubChunk("VOLENV", 1, 0, &tkEnvState) >= 0)
ShowConsoleMsg(tkEnvState.Get());
}
(as I said in private, I'll document this SNM_ChunkParserPatcher tool "at some point" as I plan export it to ReaScripters..)
Last edited by Jeffos; 01-13-2013 at 05:06 AM.
Reason: bad advice
|
|
|
10-02-2012, 01:03 PM
|
#250
|
Human being with feelings
Join Date: Nov 2010
Posts: 2,436
|
I don`t have the time to test it right now (cause I need my rightfully deserved beer! ) but I think I tried something similar. I will check it out later.
The thing is, I only need to know if the take envelope is active/selected. Not per take but globally (because only one envelope can be active - it does not matter if it`s take or track envelope)
|
|
|
10-04-2012, 01:02 PM
|
#251
|
Mortal
Join Date: Dec 2008
Location: France
Posts: 1,969
|
.. active/selected *take* env: no way get that info ATM, even in state chunks :/
|
|
|
10-08-2012, 04:58 AM
|
#252
|
Human being with feelings
Join Date: Nov 2010
Posts: 2,436
|
I have a questions that I guess only the devs can give the exact answer. So I hope they read this
I'm updating envelope chunk and in the process I'm only messing with selection token - all other values stay the same.
Spitting before/after env chunk in the console, proves that values have not changed. They are identical (except for the selection token if it changed)
However, it seems reaper redraws the envelope and it redraws it differently then it was before. As if point's value has changed.
So I guess my question is - is it only the drawing that changes and I should not be concerned or is it actually changing the envelope?
It can look kinda terrifying, for example:
User could be pretty shocked when seeing this. Before committing to SWS I would just like to know if it's only a drawing issue so when user's questions start to pop I can reassure people it does not change envelope performance in any way.
Last edited by Breeder; 10-10-2012 at 03:24 PM.
|
|
|
11-27-2012, 10:41 AM
|
#254
|
Human being with feelings
Join Date: Feb 2012
Location: Cologne, Germany
Posts: 117
|
2 Plug In Windows in 64bit on OSX
Hey Guys.
Anybody knows how I make them 1 only. As if I would be on 32bit?
JankoNor
|
|
|
11-27-2012, 11:08 AM
|
#255
|
Human being with feelings
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
|
Quote:
Originally Posted by JankoNor
Hey Guys.
Anybody knows how I make them 1 only. As if I would be on 32bit?
JankoNor
|
If you mean bridged VST/AU plugins, that's not something you could deal with Reaper extensions. IIRC Justin said he simply hasn't found a way to embed the out-of-process plugin GUIs on OS-X...So, if Justin himself hasn't been able to figure it out, the chances are not so great anyway for some 3rd party to succeed with it. (If it was possible to implement that into Reaper to begin with by a 3rd party.)
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
|
|
|
11-27-2012, 11:14 AM
|
#256
|
Human being with feelings
Join Date: Feb 2012
Location: Cologne, Germany
Posts: 117
|
Thx Xenakios...
Yes it happens with bridged 3rd Party Plugs.
Hhmm that's a shame, beause having always 2 Windows opening sucks big Time......
Thanks again for replying!
|
|
|
11-27-2012, 01:47 PM
|
#257
|
Human being with feelings
Join Date: Nov 2012
Location: Munich, Germany
Posts: 111
|
Cursor
Hi,
how can i move the cursor from a control surface?
Mike
|
|
|
04-01-2013, 01:47 PM
|
#258
|
Human being with feelings
Join Date: Mar 2013
Posts: 2
|
Play a sample?
Is there a way I could play a sample via clicking a button in reaper JS?
|
|
|
04-20-2013, 01:38 PM
|
#259
|
Human being with feelings
Join Date: Jan 2013
Location: Austria
Posts: 73
|
CSurf notification about changed input monitor
Hi,
how do I get notified in csurf about a change on an input monitor of a track?
There is no CSurf_SetMonitorChange...
Same with track automation state
Please extend the API :-)
Last edited by Celphor; 04-20-2013 at 01:44 PM.
Reason: Added automation
|
|
|
04-20-2013, 04:07 PM
|
#260
|
Human being with feelings
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
|
Quote:
Originally Posted by Celphor
Hi,
how do I get notified in csurf about a change on an input monitor of a track?
There is no CSurf_SetMonitorChange...
Same with track automation state
Please extend the API :-)
|
Look here in the csurf api section : https://code.google.com/p/sws-extens...eaper_plugin.h
Automation state seems to be already supported with a dedicated virtual method (albeit just for "current track") and input monitoring notifications appear to be possible to be received via the Extended() call.
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
|
|
|
04-20-2013, 04:51 PM
|
#261
|
Human being with feelings
Join Date: Jan 2013
Location: Austria
Posts: 73
|
Thank you, didn't know about the extened method yet. Will give it a try tomorrow...
|
|
|
08-03-2013, 10:51 AM
|
#262
|
Human being with feelings
Join Date: Jan 2009
Posts: 1,030
|
MIDI Related
Does anyone know what the following functions do (pulled from reaper_plugin_functions.h)?
REAPERAPI_DECL const char* (*GetTrackMIDINoteName)(int track, int note, int chan);
REAPERAPI_DECL const char* (*GetTrackMIDINoteNameEx)(ReaProject* proj, MediaTrack* track, int note, int chan);
REAPERAPI_DECL const char* (*SetTrackMIDINoteName)(int track, int note, int chan, const char* name);
REAPERAPI_DECL const char* (*SetTrackMIDINoteNameEx)(ReaProject* proj, MediaTrack* track, int note, int chan, const char* name);
|
|
|
12-09-2013, 11:17 PM
|
#263
|
Human being with feelings
Join Date: Dec 2006
Posts: 668
|
getting uncommonly desperate to figure out how to change selected or all-tracks to a certain SPECIFIC to my system midi input. There's several midi inputs.
I've found I_RECINPUT in the ReaScript help. and in my script am using:
RPR_SetMediaTrackInfo_Value(tr, "I_RECINPUT", 4096)
Though if I add anything after the 4096 as an attempt to specify one of the various midi imputs on my system plus perhaps a midi channel i get errors saying something about not expecting more than 3 data placements.
Here's the full bit from ReaScript help.
Can you help?
I_RECINPUT : int * : record input. <0 = no input, 0..n = mono hardware input, 512+n = rearoute input, 1024 set for stereo input pair. 4096 set for MIDI input, if set, then low 5 bits represent channel (0=all, 1-16=only chan), then next 5 bits represent physical input (31=all, 30=VKB)
NEED to have the script change tracks to a specific midi input and perhaps a specific channel.
Should be possible?
THANK YOU for thinking.
|
|
|
12-10-2013, 01:16 PM
|
#264
|
Code Monkey
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
|
Quote:
Originally Posted by tweed
Though if I add anything after the 4096 as an attempt to specify one of the various midi imputs on my system plus perhaps a midi channel i get errors
I_RECINPUT : int * : record input. <0 = no input, 0..n = mono hardware input, 512+n = rearoute input, 1024 set for stereo input pair. 4096 set for MIDI input, if set, then low 5 bits represent channel (0=all, 1-16=only chan), then next 5 bits represent physical input (31=all, 30=VKB)
|
You're close. There's only one parameter that is calculated with the following easy formula:
Input = 4096 + channel + 32 * input
Use channel = 0 for all
For example input device 2, channel 1 would be 4096 + 1 + 32 * 2 = 4161
RPR_SetMediaTrackInfo_Value(tr, "I_RECINPUT", 4161)
|
|
|
01-07-2014, 05:56 AM
|
#265
|
Human being with feelings
Join Date: Jan 2013
Posts: 52
|
TrackFX_GetParameterStepSizes()
I was so excited about the new TrackFX_GetParameterStepSizes thing, but it doesn't seem to work?
It always returns false (which I interpret as 'there's been an error') and all values stay unchanged.
I tested it with some of the Reaper Plugins (ReaEQ, ReaComp) and some freeware VSTs (I think the Nu-Tron Phaser by Mokafix, if it matters).
Am I missing something?
Or maybe I'm misunderstanding this function completely? I'm thinking it returns ideal step sizes for each parameter (like if something is a 0/1 toggle, toggle gets set to true, if something has 5 steps 0...1 it returns 0.2 or something).
I hope this is how it works, it would be really helpful for input devices with relative encoders (like the Tascam US-2400, whose encoders send MIDI messages for -4 ... +4 relative changes).
Thanks!
|
|
|
01-07-2014, 11:49 AM
|
#266
|
Human being with feelings
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
|
Quote:
Originally Posted by ---david
I tested it with some of the Reaper Plugins (ReaEQ, ReaComp) and some freeware VSTs (I think the Nu-Tron Phaser by Mokafix, if it matters).
Am I missing something?
|
VST plugins are completely free to ignore supporting that feature. You might find some plugin that implements it if you search hard enough, but my understanding is that it's very rarely implemented.
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
|
|
|
01-07-2014, 06:03 PM
|
#267
|
Human being with feelings
Join Date: Jan 2013
Posts: 52
|
Thank you Xenakios,
I was afraid of that. Meh.
|
|
|
03-29-2014, 01:36 AM
|
#268
|
Human being with feelings
Join Date: Nov 2010
Posts: 2,436
|
I see in the API that takes can have their own pan law ("D_PANLAW" and it's even in the chunk in VOLPAN)
However, I've never seen an option like that in Reaper.
Am I right to assume there exists no pan law setting for takes?
|
|
|
04-27-2014, 05:59 PM
|
#269
|
Human being with feelings
Join Date: Jan 2011
Posts: 64
|
Trying to use Main_OnCommand with 41042, 41043, 41044 and 41045. Strangely enough with all of the four commands I am getting "bad access" violation errors on Mac OS. I made sure Main_OnCommand and, just in case, Main_OnCommandEx are initialized with the IMPAPI macro. Are there any other API functions that need to be initialized for making Main_OnCommand* calls to work? O, BTW, I am calling these functions from the CommandSelector hook.
Thanks for any help.
|
|
|
07-30-2014, 10:20 AM
|
#270
|
Human being with feelings
Join Date: Nov 2010
Posts: 2,436
|
It seems there's no way to get global automation override?
Actions related to this don't report state and there doesn't seem to be a valid config key to retrieve it. Any ideas?
|
|
|
03-13-2015, 09:46 AM
|
#271
|
Human being with feelings
Join Date: Jan 2015
Posts: 43
|
Forgive me if I ask a question in the wrong topic. I searched the forum but could not find the suitable information.
How do I access or activate the built-in R5 LUA scripting? More would like to clarify about allows built-in R5 LUA develop plug-ins for processing audio/MIDI (just like JSFX) or it is suited only to develop extensions as a built-in Python scripting?
|
|
|
04-22-2015, 07:20 AM
|
#272
|
Human being with feelings
Join Date: Apr 2015
Posts: 10
|
Extending a Controller as Surface
Hi,
I would like to write an extension to support the Arturia KeyLab series for Reaper - specifically:
1) Ensure bi-directional midi-cc messages for changes to FX parameters, and
2) Send midi messages to update the Keylab's LCD display to reflect the name of the FX parameter being edited.
What API can I use to achieve this? It seems as though the control surface API only supports feedback for track changes (volume, mute, pan)... so how do I go about detecting the bindings between a controller and an FX parameter, and to get notifications on changes to the FX parameter?
|
|
|
04-22-2015, 07:26 AM
|
#273
|
Human being with feelings
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
|
Quote:
Originally Posted by maranite
Hi,
I would like to write an extension to support the Arturia KeyLab series for Reaper - specifically:
1) Ensure bi-directional midi-cc messages for changes to FX parameters, and
2) Send midi messages to update the Keylab's LCD display to reflect the name of the FX parameter being edited.
What API can I use to achieve this? It seems as though the control surface API only supports feedback for track changes (volume, mute, pan)... so how do I go about detecting the bindings between a controller and an FX parameter, and to get notifications on changes to the FX parameter?
|
The reaper_plugin.h header file in the official extension SDK is very old. There's a newer header file that tells that the Extended() method in the IReaperControlSurface class does support fx parameter changes too.
#define CSURF_EXT_SETFXPARAM 0x00010008 // parm1=(MediaTrack*)track, parm2=(int*)(fxidx<<16|paramidx), parm3=(double*)normalized value
I uploaded the more up to date reaper_plugin.h file here :
http://ge.tt/4NimWzE2/v/0?c
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
|
|
|
05-06-2015, 10:05 PM
|
#274
|
Human being with feelings
Join Date: Jan 2014
Posts: 2
|
Possible to add functionality (tagging) to media explorer
I am willing to dig through the API and experiment for details, but before i dig too far, I would like to know if my digging would be fruitless :-)
I would like to know if enough of the innards of Reaper are exposed to allow extending the functionality of the Media Explorer - specifically I would like to add an ability to add metadata (tag) to files, either in file or in a separate db (not a reaper function), and then make that navigable via Media Explorer - so i would need one of two things
a - The ability to extend the "search" function to search the metadata store (or metadata in the files)
b - The ability to add items to the navigation (folder/shortcut/database) portion of Media Explorer and associate those items to the tag lookup capability
Can you let me know if there is the right level of access for something like this to be possible and point me in the general direction?
Thx in advance!
|
|
|
05-07-2015, 01:56 AM
|
#275
|
Human being with feelings
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
|
Quote:
Originally Posted by jrussell
allow extending the functionality of the Media Explorer
|
The media explorer has no public API.
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
|
|
|
05-07-2015, 10:53 PM
|
#276
|
Human being with feelings
Join Date: Jan 2014
Posts: 2
|
Quote:
Originally Posted by Xenakios
The media explorer has no public API.
|
Hmmm.. bummer. But thank you, saved me a ton of time looking! Guess i will file a feature request instead.
|
|
|
05-25-2015, 09:18 PM
|
#277
|
Human being with feelings
Join Date: Sep 2010
Location: San Diego, CA
Posts: 42
|
batch rendering a large number of files which include a small fade in the begining.
Quote:
Originally Posted by Justin
If anybody wants to know how to do a particular task using the plug-in extension API, ask it here and we will either tell you, or interpret it as a request for that particular API!
-Justin
|
Is there a way to add a small fade in to a large number of regions & batch render?
|
|
|
10-29-2015, 01:21 AM
|
#278
|
Human being with feelings
Join Date: Apr 2014
Posts: 96
|
I'd like to create a very simple GUI for my plugin action, is there a simple way to do it?
I'm not coding my plugin in SWS, just with Xenakios example code for plugins.
Thanks!
|
|
|
10-29-2015, 03:08 AM
|
#279
|
Human being with feelings
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
|
Quote:
Originally Posted by aurelien
I'd like to create a very simple GUI for my plugin action, is there a simple way to do it?
I'm not coding my plugin in SWS, just with Xenakios example code for plugins.
Thanks!
|
To put it shortly : there is no simple way if using GetUserInputs() in the Reaper API isn't enough for your purposes. (GetUserInputs just shows a modal dialog that has rows of text input fields in it.)
"Simple" is of course a very relative concept. What would you think is simple?
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
|
|
|
10-29-2015, 03:54 AM
|
#280
|
Human being with feelings
Join Date: Apr 2014
Posts: 96
|
Well i guess it should do the trick, i have simple needs.
Is there some sample code in C ?
Last edited by aurelien; 10-29-2015 at 04:00 AM.
|
|
|
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 01:02 AM.
|