View Single Post
Old 12-22-2009, 01:54 PM   #1
MikeLacey
Human being with feelings
 
Join Date: Dec 2006
Location: UK
Posts: 789
Default ReaScript: API: Wish List

Hello all,

Here's the start of a ReaScript wish list. What have I missed? What shouldn't be on the list? What should and shouldn't be in red? (No matter what anyone says I'm not taking the Wiki items off the list.) There aren't many Python items. (can't think why...)

These are the top ten things in the Wish List. Positions are set by +1 or -1 votes, so make sure you vote for what you need and un-vote for what you don't...
  • Numbers in () are item nums in big list below.
  • Items get into top ten with first +1, at bottom of list
  • Items go up list with each +1
  • Items go down in the list with each -1 (usually)
  1. (8) Add a return value for named notes to MIDIEditor_GetMode()
  2. (9) File dialogue, returning OK/Cancel & Filename (Expected v3.21 or thereabouts)
  3. (13) GetSet*State() chunk size limit is currently 16k, too small. (Expected v3.21 or thereabouts)
  4. (10) MIDIEditor_Get|SetView, returning (see big list)
  5. (12) Resizable console window
  6. (23) Get/SetMidiItemInfo_Value() - (see big list)
  7. (25) GetSetProjectState()
  1. ReaPerl. To be able to call RPR_* functions from a module.
  2. For functions that take a named parameter - Get/SetMediaTrackInfo_Value() - to not fail silently when you give them a parameter they don't know about.
  3. ReaPerl. Compile & Runtime Error messages for Perl scripts.(becoming an issue, scripts are getting longer)
  4. ReaPerl. To be able to call RPR_* functions as standard Perl functions, multiple line calls and calls in if statements, e.g.
    PHP Code:
    if(RPR_CountSelectedItems()==0
    and
    PHP Code:
    $var=RPR_FuncWithVeryLongNameAndParamList(
           
    MediaTrack,    # the selected track
           
    MediaItem,     # the item that will be edited
           
    p3,            # etc.
           
    p4,
           
    p5,
           
    p6,            # some random pointer or other...
           
    p7,
           
    p8
         
    ); 
    The solution to this one's related to the "RPR_ from a module wish" (above) I suspect.
  5. To (magically, not with work) know about Python as well as Perl (please).*
  6. A Wiki batch edit facility (please God).*
  7. A Wiki template that is not just a #include by another name.*
  8. Add a return value for named notes to MIDIEditor_GetMode()
  9. File dialogue, returning OK/Cancel & Filename (Expected v3.21 or thereabouts)
  10. MIDIEditor_Get|SetView, returning rectangles, diamonds, triangles, all notes, Hide unused, Hide unused/unnamed
  11. Support for Tk (GUI used by Python & Perl) in Perl as well as in Python.
  12. Resizable console window
  13. GetSet*State() chunk size limit is currently 16k, too small. (Expected v3.21 or thereabouts)
  14. "Possible Infinite Loop" message currently triggered at 16000 API calls in a ReaScript, sfzgeek hitting that limit.
  15. A command to close the console output window from within the script.
  16. API A means to obtain the Actions List contents -- particularly the name strings and the corresponding numeric ID's.
  17. something to get a valid reaper_plugin_info_t *rec (or any alternative other way to register to Reaper's notif)
  18. LICE_IBitmap * b = GetPNGFromCurrentTheme("mcp_volthumb.png", NULL); getting the user's current theme in a cross-plateform way would be cool for VSTs extension plugins
  19. something to work within FX chains in a FX type independent way (VST, JS, Dx) main first needs: trigering reaper's preset (then, FX's one) but also pin connection processing
  20. SWS's plugin_register("hookcommandex", hookCommandProcEx) FR: http://forum.cockos.com/project.php?issueid=1465
  21. padre, klinke & yves: enhanced csurf notif, http://forum.cockos.com/showthread.php?t=44152
  22. Something to validate chunk updates in a reliable way - GetSet*State() funcs bool vals sometimes fib a bit...
  23. Get/SetMidiItemInfo_Value() - perhaps not this API exactly, but something a more ReaScripter friendly than chunks. (Some aspects of friendlier could be user-contributed if we could call RPR_* functions from a module)
  24. GetFuncAddress() call. Not needed now include() is implemented.
  25. Jeffos would like to be able to say GetSetObjectState(ReaProject*), personally I would prefer to see a GetSetProjectState() to allow access to project-wide parameters using chunkish editing.

Oh, and just to be clear. I'm not complaining, I think ReaScript (yes, yes & the C++ API) is the best thing since sliced bread.

Mike

(* Some items may stretch the capabilities of the development team, but we shouldn't let that stop us asking. Remember - hard work is good for them. )
__________________
Mike Lacey, Leicestershire, UK

Last edited by MikeLacey; 01-27-2010 at 09:07 AM.
MikeLacey is offline   Reply With Quote