Old 10-09-2015, 05:41 PM   #161
snooks
Banned
 
Join Date: Sep 2015
Posts: 1,650
Default

Quote:
Originally Posted by mpl View Post
GFX feature requests:
1. gfx.init() with x, y parameters to show in specified area of screen when running. Get screen resolution for make this relative would be good also.
2. Get scaling (REAPER and OS). Sometimes gfx fonts is scaled from OS (or Reaper) on OSX, while Windpws instances is ok.
3. Frameless mode.
+1 on these (plus transparent background on the frameless for full screen fun).

Get and set window pos for storing on exit and moving around.
snooks is offline   Reply With Quote
Old 10-11-2015, 11:26 PM   #162
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,924
Default

It would be good to read the gfx position as well as set it, so that commonly used persistent scripts can save their window position in the project state.

Many thanks.



>
__________________
Nathan, Lincoln, UK. | Item Marker Tool. (happily retired) | Source Time Position Tool. | CD Track Marker Tool. | Timer Recording Tool. | dB marks on MCP faders FR.
planetnine is offline   Reply With Quote
Old 10-18-2015, 09:12 AM   #163
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default Item Source Properties as Text

Hi,

with all the new (5.05 pre) metadas support in Item Source Properties,
it would be nice if we could retrieve this info as text (in order to be able to parse it and make custom actions according to non-standards metadatas name).

Legend: Being able to return the content of this in text would be nice !


Thanks !
X-Raym is offline   Reply With Quote
Old 10-18-2015, 11:50 AM   #164
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Quote:
Originally Posted by IXix View Post
API for manipulating monitor FX
*cough*

Last edited by IXix; 02-26-2016 at 03:20 AM.
IXix is offline   Reply With Quote
Old 10-19-2015, 12:23 PM   #165
matthewjumpsoffbuildings
Human being with feelings
 
Join Date: Mar 2013
Posts: 463
Default

Please oh please can we have a flexible API version of the "propagate take to items" action? One that allows you to choose which properties of the source take are used (wav source, reverse, gain, pan etc), and also has the option to affect all items with the matching name, or just selected items with the matching name.

Something like propogateTake(sourceTake, Bool limitToSelected, Bool copyWav, Bool copyReverse, Bool copyGain... etc)

Pretty please?
__________________
[sun sprites] spotify facebook

Last edited by matthewjumpsoffbuildings; 10-19-2015 at 12:45 PM.
matthewjumpsoffbuildings is offline   Reply With Quote
Old 10-19-2015, 01:31 PM   #166
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Quote:
Originally Posted by mpl View Post
I draw RMS envelopes inside script. Often it takes a lot of cpu, if I use gfx.update. So it would be extremely useful if I can update area of gfx window, like

gfx.update(x,y,w,h)

Another solution: write area of script gfx window to temporary file (png or bmp or something) and have access to this file.
Thanks.
You can already do this. Draw into an offscreen buffer and blit it to the main display. Have a look at the docs for the gfx_blit functions: http://reaper.fm/sdk/js/gfx.php#js_gfx

edit: Forgot to mention you need to use the gfx_dest variable to set the target buffer.

Last edited by IXix; 10-20-2015 at 02:04 AM.
IXix is offline   Reply With Quote
Old 10-23-2015, 02:28 AM   #167
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

API to tell reaper to make a backup, so just incase your action causes a crash (when you know the action may have some potential to crash) you could have have reaper make a backup for the user.
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template

Last edited by Argitoth; 10-23-2015 at 02:38 AM.
Argitoth is offline   Reply With Quote
Old 10-29-2015, 04:47 AM   #168
kenz
Human being with feelings
 
Join Date: Aug 2013
Posts: 339
Default

Working with envelope scripts I found an irritating lacking functionality.

Testing for GetSelectedEnvelope and GetSelectedTrackEnvelope allows you to see if you have a Take Envelope selected (first is non-zero, second must be 0). This is needed because take envelopes have position relative to their items, so if you use position in any way in the script you need to compensate for this.

AFAIK there's no API to get the take of the specific take envelope (i.e which take it belongs to), which I need to get the item's position... so, API request I guess?
kenz is offline   Reply With Quote
Old 11-05-2015, 06:19 AM   #169
kenz
Human being with feelings
 
Join Date: Aug 2013
Posts: 339
Default

The VST Chunk is stored as base64 in the track chunk. I assume if you look at the track chunk you'll have to decode it manually... The format of the binary blob (once decoded from base64) is like this:

4 bytes <VSTID>
4 bytes <magic value?>
4 bytes <Number of Inputs>
* after that, a bitmask array of 8 bytes each, for the input routings (bit 0 = input channel 1 is set; bit 63 = input channel 64 is set; etc)
* the length of the above array is defined by the number of inputs (so total size is 8*NumInputs bytes)

4 bytes <Number of Outputs>
* again bitmask array 8 bytes each for outputs this time...

Then follows the VST stuff (which you aren't interested in).


I guess this is far from ideal and an API would be much helpful here but, a complicated workaround if you really must have it before then...
kenz is offline   Reply With Quote
Old 11-05-2015, 11:19 AM   #170
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

I have just tried to discover some base64 decoder examples (or even online decoders), but with no luck. I get just characters, but can`t use it for routing check. Unfortunately this is out of my knowledge at this moment. Could you help me with that some more deeply (decoding/encoding only routing part)?

Last edited by mpl; 11-05-2015 at 01:00 PM.
mpl is offline   Reply With Quote
Old 11-05-2015, 04:02 PM   #171
kenz
Human being with feelings
 
Join Date: Aug 2013
Posts: 339
Default

To be honest it might be quite a pain in the ass in scripting languages like EEL or Lua (it's easy in C or C++ I guess) because of accessing bytes... basically you just treat the incoming characters as "6 bits" of data each. And then use an array map to map them to those 6 bits (i.e each input character maps to a 6-bit value) and shift it around, you take 4 inputs, make 3 bytes of output. (3*8 = 6*4)

Actually I'm not really sure how to make a decoding table without C array easily... (maybe a string in EEL? but I can't help with Lua sorry), here's the table I use for decoding in C:

Code:
unsigned char b64decode[] = {~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,62,~0,~0,~0,63,52,53,54,55,56,57,58,59,60,61,~0,~0,~1,~0,~0,~0,~0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,~0,~0,~0,~0,~0,~0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0,~0};
each input is the character you read, the output is a 6-bit value (0-63) that you merge to the decoded output. (~0 means 255, which is invalid character)

Then you could use something like the following to decode 4 input chars into 3 output bytes: (EEL code)

Code:
s = 1; out = 0;
while(s < 16777216)
(
  // get next input_char here on this comment (depends on your script)

  c = b64decode[input_char];
  c < 64 ? (
    out += c*s;
    s *= 64;
  );
);
// out now is 3 bytes of output (24 bits), to get the 3 bytes separately for example

byte1 = out & $xFF;
byte2 = (out >> 8) & $xFF;
byte3 = (out >> 16);

// you decoded 4 input characters in base64 to 3 bytes now, loop etc...
By the way this code will break if the base64 ends too early but... that should NOT be an issue with any VST since their data will follow the routing matrix. Anyway, adding more safety things should be up to you

Oh note that the "format" I explained in the previous post, the "number of channels" is in little endian. EEL can handle this with str_getchar but I'm not sure if Lua allows you to choose little or big endian when reading 4 binary bytes as integer. (basically the bytes are swapped)

Last edited by kenz; 11-05-2015 at 04:13 PM.
kenz is offline   Reply With Quote
Old 11-05-2015, 05:35 PM   #172
cereboso
Human being with feelings
 
Join Date: Jul 2011
Location: Denton, TX
Posts: 201
Default

It would be great to have access to the Media Buffer Size, Thread Priority and Behavior as well as the Render-ahead. (Well, all options on the Preferences > Buffering page ideally.)
Is this currently available and I'm missing it?
Thanks!
cereboso is offline   Reply With Quote
Old 11-05-2015, 10:24 PM   #173
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

I already find a decoder.
The question is how use returned string like

Code:
mcerï^íþ
Online decoders return same thing.
This is how I decoding:

Quote:
<VST "VST: ReaComp (Cockos)" reacomp.dll 0 "" 1919247213
bWNlcu9e7f4EAAAA...
Code:
 function lsh(value,shift)
    return (value*(2^shift)) % 256
  end
  
  -- shift right
  function rsh(value,shift)
    return math.floor(value/2^shift) % 256
  end
  
  -- return single bit (for OR)
  function bit(x,b)
    return (x % 2^b - x % 2^(b-1) > 0)
  end
  
  -- logic OR for number values
  function lor(x,y)
    result = 0
    for p=1,8 do result = result + (((bit(x,p) or bit(y,p)) == true) and 2^(p-1) or 0) end
    return result
  end
  
  -- encryption table
  local base64chars = {[0]='A',[1]='B',[2]='C',[3]='D',[4]='E',[5]='F',[6]='G',[7]='H',[8]='I',[9]='J',[10]='K',[11]='L',[12]='M',[13]='N',[14]='O',[15]='P',[16]='Q',[17]='R',[18]='S',[19]='T',[20]='U',[21]='V',[22]='W',[23]='X',[24]='Y',[25]='Z',[26]='a',[27]='b',[28]='c',[29]='d',[30]='e',[31]='f',[32]='g',[33]='h',[34]='i',[35]='j',[36]='k',[37]='l',[38]='m',[39]='n',[40]='o',[41]='p',[42]='q',[43]='r',[44]='s',[45]='t',[46]='u',[47]='v',[48]='w',[49]='x',[50]='y',[51]='z',[52]='0',[53]='1',[54]='2',[55]='3',[56]='4',[57]='5',[58]='6',[59]='7',[60]='8',[61]='9',[62]='-',[63]='_'}
  
 
  -- decryption table
  local base64bytes = {['A']=0,['B']=1,['C']=2,['D']=3,['E']=4,['F']=5,['G']=6,['H']=7,['I']=8,['J']=9,['K']=10,['L']=11,['M']=12,['N']=13,['O']=14,['P']=15,['Q']=16,['R']=17,['S']=18,['T']=19,['U']=20,['V']=21,['W']=22,['X']=23,['Y']=24,['Z']=25,['a']=26,['b']=27,['c']=28,['d']=29,['e']=30,['f']=31,['g']=32,['h']=33,['i']=34,['j']=35,['k']=36,['l']=37,['m']=38,['n']=39,['o']=40,['p']=41,['q']=42,['r']=43,['s']=44,['t']=45,['u']=46,['v']=47,['w']=48,['x']=49,['y']=50,['z']=51,['0']=52,['1']=53,['2']=54,['3']=55,['4']=56,['5']=57,['6']=58,['7']=59,['8']=60,['9']=61,['-']=62,['_']=63,['=']=nil}
  
  -- function decode
  -- decode base64 input to string
  function dec(data)
    local chars = {}
    local result=""
    for dpos=0,string.len(data)-1,4 do
      for char=1,4 do chars[char] = base64bytes[(string.sub(data,(dpos+char),(dpos+char)) or "=")] end
      result = string.format('%s%s%s%s',result,string.char(lor(lsh(chars[1],2), rsh(chars[2],4))),(chars[3] ~= nil) and string.char(lor(lsh(chars[2],4), rsh(chars[3],2))) or "",(chars[4] ~= nil) and string.char(lor(lsh(chars[3],6) % 192, (chars[4]))) or "")
    end
    return result
  end
  
  test = dec('bWNl')..dec('cu9e')..dec('7f4E')

Last edited by mpl; 11-05-2015 at 10:47 PM.
mpl is offline   Reply With Quote
Old 11-06-2015, 04:37 PM   #174
snooks
Banned
 
Join Date: Sep 2015
Posts: 1,650
Default

Quote:
Originally Posted by mpl View Post
I already find a decoder.
The question is how use returned string like

Code:
mcerï^íþ
You can iterate through the string and convert it to bytes...
Code:
for i=1,#test,1 do
  print(string.byte(test,i))
end
Btw, Lua 5.3 has bitwise operators so you don't need any of those functions that were necessary in earlier versions....
Code:
result=string.format('%s%s%s%s',result,string.char(
        chars[1]<<2|chars[2]>>4), 
        chars[3] ~= nil and string.char((chars[2]<<4)&0xFF | (chars[3]>>2)) or "",
        chars[4] ~= nil and string.char((((chars[3]<<6))&192) | chars[4]) or "")
You'll notice that there's an extra &0xFF - that's because we aren't technically using 8 bit bytes and shifting alone just makes a bigger number, which we don't want. So we need to truncate with an &.
snooks is offline   Reply With Quote
Old 11-07-2015, 12:39 AM   #175
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

snooks, kenz,

I moved idea to this thread. If it is not bother you, please help.
Note I`m new to programming and scripting, but I try to learn somehow. Here is a situation I cant deal with, alone.
Anyway thanks, you already helped a lot and put me to the right direction!

Last edited by mpl; 01-27-2016 at 05:02 AM.
mpl is offline   Reply With Quote
Old 11-15-2015, 04:35 PM   #176
kenz
Human being with feelings
 
Join Date: Aug 2013
Posts: 339
Default API To get a FX Type

Need API to get the type of a FX. TrackFX_GetFXName does not work because it's based on the name, and the FX can be renamed. I need an API to affect ALL fx of a given type no matter how they are called...

bool TrackFX_GetFXType(MediaTrack* track, int fx, char* buf, int buf_sz)

identical to GetFXName except the "buf" string is the FX's actual default name not what is renamed in the FX Chain. For JS plugins it would simply return their path/filename. i.e from chunk it's the string after <VST or <JS

Please?
kenz is offline   Reply With Quote
Old 11-15-2015, 09:56 PM   #177
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

BR_TrackFX_GetFXModuleName() do that, I guess
mpl is offline   Reply With Quote
Old 11-16-2015, 07:37 AM   #178
kenz
Human being with feelings
 
Join Date: Aug 2013
Posts: 339
Default

Damn I don't have that in the API list, I guess I need to update my SWS extension. Thank you.
kenz is offline   Reply With Quote
Old 11-16-2015, 12:45 PM   #179
amagalma
Human being with feelings
 
amagalma's Avatar
 
Join Date: Apr 2011
Posts: 3,451
Default

I would like an API to get the index id number of selected FXs of a Track. Something like GetSelectedFX
__________________
Most of my scripts can be found in ReaPack.
If you find them useful, a donation would be greatly appreciated! Thank you! :)
amagalma is offline   Reply With Quote
Old 11-16-2015, 01:01 PM   #180
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

AFAIK there isn`t any chunk definition for selected fx, but you can use
reaper.TrackFX_GetChainVisible(MediaTrack track) though, this returnes selected fx(=opened in chain) id also
mpl is offline   Reply With Quote
Old 11-16-2015, 01:11 PM   #181
kenz
Human being with feelings
 
Join Date: Aug 2013
Posts: 339
Default

Quote:
Originally Posted by amagalma View Post
I would like an API to get the index id number of selected FXs of a Track. Something like GetSelectedFX
Actually you can't even get the selection with the chunk either, so here an API request is the only way (if that's even possible from Reaper?)

The only thing related to selection you can get with the chunk is AFAIK the "last selected FX" (or last touched, whatever the term is) and that's only one.

EDIT: Interesting mpl I had no idea about ChainVisible, going to test it. :P
kenz is offline   Reply With Quote
Old 11-16-2015, 02:48 PM   #182
amagalma
Human being with feelings
 
amagalma's Avatar
 
Join Date: Apr 2011
Posts: 3,451
Default

Quote:
Originally Posted by mpl View Post
AFAIK there isn`t any chunk definition for selected fx, but you can use
reaper.TrackFX_GetChainVisible(MediaTrack track) though, this returnes selected fx(=opened in chain) id also
Only one FX can be visible but many can be selected. What if there are more than one FX selected? How could I get each one's ID?
__________________
Most of my scripts can be found in ReaPack.
If you find them useful, a donation would be greatly appreciated! Thank you! :)
amagalma is offline   Reply With Quote
Old 11-19-2015, 07:00 PM   #183
soundminer
Human being with feelings
 
Join Date: Nov 2015
Posts: 4
Default I've got a dangerous one

Allow c++ extensions to access the lua_State so functions can be added to it.

I.e I could add sqlite functions to lua in my own name space. So allow extension developers to extend lua for scriptors.

Other than database stuff, beat analysis and key detection could be added this way.
soundminer is offline   Reply With Quote
Old 11-20-2015, 04:18 AM   #184
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

Quote:
Originally Posted by soundminer View Post
Allow c++ extensions to access the lua_State so functions can be added to it.

I.e I could add sqlite functions to lua in my own name space. So allow extension developers to extend lua for scriptors.

Other than database stuff, beat analysis and key detection could be added this way.
Directly accessing the lua_State won't probably happen. However, from a C++ extension plug-in, you can export your own functions to other extension plugins and/or Lua, EEL, Python scripts.

To register and define function prototypes to be exported, see the plugin_register() documentation in reaper_plugin_functions.h.
For specific function export to Lua/EEL, see http://forum.cockos.com/showthread.php?t=155079.

The SWS open source might help you too, it also offers some scripts to ease/automate function export at build time: https://github.com/jeff0S/sws
Jeffos is offline   Reply With Quote
Old 12-04-2015, 08:25 AM   #185
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

message, OSCstring, timestamp = GetLastIncomingControlMIDIOSC() which return last touched MIDI or OSC from control path, for using with script like ReaPack/mpl_Export selected items to RS5k instances on selected track.lua
so I can listen incoming MIDI message to know which note should I assign in RS5k for the first RS5k instance

Last edited by mpl; 06-12-2019 at 01:24 PM.
mpl is offline   Reply With Quote
Old 12-11-2015, 01:13 PM   #186
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

reascript command to run a lua, eel, or python script file, or possibly just a function to interpret a string


Code:
RunReascript(path)

OR

RunReascript(string, extension) // eel lua or py for extension
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template
Argitoth is offline   Reply With Quote
Old 12-17-2015, 03:08 PM   #187
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

So we have
Code:
GetUserFileNameForRead
It would be nice to have

Code:
SetUserFileNameForWrite
It will allows us to choose a destination for exporting some files from ReaScript.
Currently, we have to use the simple GetUserInputs to let the user enter a path, but it is nos as convenient as a OS native browser window.

Thanks !
X-Raym is offline   Reply With Quote
Old 12-18-2015, 05:21 PM   #188
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Posts: 3,669
Default

FR: API function to call that would report which screen has user focus.
goal: script: if screen X is focused, do Y

use cases driving the request:

1. run a script or action whenever the midi editor is focused (hide all unused note rows, change controller mode from "main screen control" to "midi editor control")

2. change action controller bank (on something like a launchpad) to different modes when in different screen (example: main screen mode, midi editor mode, etc)
mccrabney is offline   Reply With Quote
Old 12-20-2015, 01:41 PM   #189
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

I really need a place for extensions to store take information in the RPP XML item/take chunk. We already have one for project state, we need one for take state!
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template

Last edited by Argitoth; 01-19-2016 at 07:39 AM.
Argitoth is offline   Reply With Quote
Old 12-20-2015, 05:26 PM   #190
FnA
Human being with feelings
 
FnA's Avatar
 
Join Date: Jun 2012
Posts: 2,173
Default

Made a deferred script that acted kind of like a mouse modifier, and two things came to mind. Number 1 would also make time selection undo ext state script slicker.

1. Get mouse button states, to suspend script functions when... not in the right state. Modifiers might be nice too.



2. Means to terminate function/script on its discovering certain conditions. Break, I guess. Already exist? edit - yes, it does.

Last edited by FnA; 04-23-2016 at 06:37 PM.
FnA is offline   Reply With Quote
Old 12-22-2015, 12:44 PM   #191
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

enable/disable/remove/set visible/etc Take Pitch Volume Pan and Mute envelopes. I hate chunking..........
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template
Argitoth is offline   Reply With Quote
Old 01-06-2016, 02:46 AM   #192
ortner
Human being with feelings
 
Join Date: Aug 2015
Location: Sweden
Posts: 3
Default

Ability to fetch rendered files and fetch files while re-rendering them.
ortner is offline   Reply With Quote
Old 01-15-2016, 01:47 AM   #193
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

SetItemStartTrim or however you want to call it.

Nudge dialog is bad because you have to have only said item selected.

SplitItem is a bad workaround because it deletes envelope points before/after the split for the item respectively.

Setting position/length/source time is bad because it does not move stretch markers/envelope points. This is what BR_SetItemEdges does (from the SWS function-export API).
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template
Argitoth is offline   Reply With Quote
Old 01-19-2016, 03:21 AM   #194
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default FX Param value related function

Hi,

Two FR:

-----------------
Context
Se we have TrackFX_FormatParamValueNormalized, to get value to a human readable way.
For exemple with ReaSurround Gain :

0.00099744636099786 -> -48.0

Feature Request:
It would be nice to have the opposite.
A way to get regular values from a human readable written form.

From -48.0 to 00099744636099786

Sure, some param valuse can be found that way differently (like log in this case),
but on all purposes function will really help,
to prevent writing tons of conditions in the scripts.

Q: wasn't that the purpose of TrackFX_GetFormattedParamValue() ?


-----------------
Context
I have a envelope.
I need to get the formatted value.



Currently, I need to loop in all FX and all params to see if they have an envelope with GetFXEnvelope, and see if this envelope matches my current envelope, before calling the Formated value, which make the code quite heavy.

Feature Request
It would be really nice to have:
  • An equivalent of TrackFX_FormatParamValueNormalized but with envelope instead of track + fx + param
  • A function to get parent TRACK + FX + PARAM (three variables)
Thanks for listening !
X-Raym is offline   Reply With Quote
Old 01-21-2016, 10:19 AM   #195
Intek
Human being with feelings
 
Intek's Avatar
 
Join Date: Dec 2015
Location: Russia
Posts: 35
Default

It would be cool to able to move gfx windows to the midi editor (where the midi toolbar), scripters might add buttons and control of parameters of vst instrument for e.g
__________________
:: iTool ::
Intek is offline   Reply With Quote
Old 01-21-2016, 10:58 AM   #196
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

Render Dialog API:

essentially set render dialog settings and then call a render function as if pressing the "render" button in the render dialog.
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template
Argitoth is offline   Reply With Quote
Old 02-12-2016, 02:31 AM   #197
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Quote:
Originally Posted by IXix View Post
API for manipulating monitor FX
Could the existing TrackFX_DoWhatever(MediaTrack* track, ...) functions be adjusted so that you can access the monitor FX chain?
edit: Coming in 5.20

Last edited by IXix; 02-26-2016 at 03:21 AM. Reason: Triumph of the whine!
IXix is offline   Reply With Quote
Old 02-14-2016, 11:17 PM   #198
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default GetMediaSourceCues

GetMediaSourceCues

there is no available function in ReaScript to get File Cue Points infos.
There is just no way we can from ReaScript know what are the cue points positions, in a file what are the names of the cue points etc...
MusoBob is offline   Reply With Quote
Old 02-15-2016, 04:43 AM   #199
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@MusoBob
+1, Already requested here : Cockos Confederated Forums - View Single Post - ReaScript: API: Wish List
X-Raym is offline   Reply With Quote
Old 02-25-2016, 04:03 PM   #200
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Feature Request:

new_item = reaper.CopyMeditaItem( item, track, position )

I know we can ApplyNudge, but this doesn't return the copied item and works with the edit cursor... not very handy...
This one would work more like the SplitMediaItem function.

Thanks for listening !

Last edited by X-Raym; 02-29-2016 at 01:13 PM.
X-Raym 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 11:38 AM.


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