Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 07-06-2019, 08:11 AM   #241
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

Works flawlessly now! Thanks a lot mespotine
reapero is offline   Reply With Quote
Old 07-11-2019, 12:30 PM   #242
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

You're welcome
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-12-2019, 08:56 AM   #243
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

Hey mespotine,

I am trying to change the number of channels in the rendering options with your API and i have a few questions. I guess they are mostly related to "ProjectStateChunk". I have been reading a lot about this in other places but i still dont understand what it is (if you have documentation about it, let me know please).

So, the easiest way to do that seems to be SetProject_RenderFreqNChans. I have tried to do something with it and i got this

Code:
dofile(reaper.GetResourcePath().."/UserPlugins/ultraschall_api.lua")

retval = ultraschall.SetProject_RenderFreqNChans(nil, 9, 1, 44100)
So, questions:

1.First parameter "projectfilename_with_path" i set it to nil with hopes that it would use the current project although the documentation says "nil to use Parameter ProjectStateChunk instead". Since i dont know what the ProjectStateChunk is, i am afraid i am pretty lost here.

2. Second paramter "unknown numer". The descriptions just says unknown number again so i have absolutely no clue what to add here. Added a random 9 there, just in case


To be completely clear about this, and in case there´s an easier way i am missing, i just want to set the rendering options to mono/stereo programatically on the project that is currently opened.

Thanks!
reapero is offline   Reply With Quote
Old 07-12-2019, 09:04 AM   #244
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

These functions are for projectfiles only, but you can work alternatively with RenderTables, who have all(!) render-related settings in them.

Introduction about RenderTables:
https://mespotin.uber.space/Ultrasch...t_RenderTables

You can get a RenderTable from the current Project with GetRenderTable_Project:
https://mespotin.uber.space/Ultrasch...rTable_Project

You can alter the the number of channels, by altering the entry:
RenderTable["Channels"]

And you can re-apply the altered RenderTable using ApplyRenderTable_Project:https://mespotin.uber.space/Ultrasch...rTable_Project


You can use the RenderTable directly with Renderfunctions as well. Just look for RenderTable in the RenderProject-functions to see, which would work for you.
Otherwise, if you just applied the altered RenderTable to the current project, you can just run the action
42230 - File: Render project, using the most recent render settings, auto-close render dialog
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-12-2019, 09:18 AM   #245
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

Yeah, i know about the render tables. It just seemed easier to me to target just the channel number parameters than go and save/recall all of the render parameters.

But hey, if you say that´s the way, here i go!
reapero is offline   Reply With Quote
Old 07-12-2019, 09:21 AM   #246
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Yeah, they are easier, as some of the settings aren't easy to access using Reaper's own API.
Afaik the Offline/Online-render-dropdownlist is only settable using a hack I added to my functions.

So RenderTables are the "no need to hack around"-comfort-solution for rendering
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-12-2019, 09:27 AM   #247
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

Nice to know!

Just out of curiosity, are RenderTables something you added to your API some time after the SetProject_RenderFreqNChans function then?
reapero is offline   Reply With Quote
Old 07-12-2019, 09:32 AM   #248
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Yes, as I found fiddling with tons of parameters too difficult and meh.
They are easier to get, easier to alter and easier to pass.

Took me a while to come up with that, as all other attempts, like 20+parameters were too difficult to use.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-12-2019, 09:35 AM   #249
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Just saw, you can alter the channels using GetSetProjectInfo:
https://mespotin.uber.space/Ultrasch...SetProjectInfo

So if that's the only thing you want to alter, this should help you as well.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-15-2019, 08:46 AM   #250
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

Thanks man! I completely skipped GetSetProjectInfo
reapero is offline   Reply With Quote
Old 07-17-2019, 01:23 AM   #251
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

After playing a bit exporting regions on my current opened project (all working perfectly!) i see it takes a while for the region to actually start rendering. Like, on an almost empty Reaper project with just one track and no audio, it takes 6 seconds for my script to actually display the rendering window. That happens on every region (6 secs before it renders) so if you are exporting a bunch of sound effects -doing sound design work here- you can easily spend some minutes waiting there.

Just wanted to ask if this was normal. If its something i can tweak here to imporve those times i´d be all for it.

I remember at some point you said you had to do some tricky stuff to make this work without having to create a copy of the project. Can you tell us whats going on under the hood in such a case?

Thanks!
reapero is offline   Reply With Quote
Old 07-17-2019, 07:56 AM   #252
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

I think(!) the problem lies in mostly setting the new render-settings, which takes a moment to do. There's nothing I can do about it.

Another thing is, that my current implementation of region-render restarts a completely new render for each region, so this might take a while too.
Maybe it's possible to improve on that, using region-rendering-matrix and such, but I need to look into that further, as I never really understood the region-render-matrix(at least back then).

There's probably potential for improvement, but it'll take some more time to make it work.

In the meantime, you can use RenderTables so set the render-settings and try to work around with the region-render-matrix. Don't know (yet) how to work them programmatically...but I think, there's a way.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-17-2019, 08:26 AM   #253
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

New release! Please update your ReaPacks.


Ultraschall Framework - Changelog

4.00 Beta 2.76: - "The Police - Walking on the Moon" - 20th of July 2019

Has now 977 functions with 42 new ones!

New in this release:
  • Parameter Learn
    You can set/get/delete parameter-learning in Statechunks.
    1) get a StateChunk
    2) get its FXStateChunk using GetFXStateChunk
    3) alter this FXStateChunk using the ParmLearn-functions
    4) set this FXStateChunk using SetFXStateChunk
    5) (re-)apply the final StateChunk to the Track/Item
  • Localize
    You can localize your scripts using an external localize-file.
    If that exists, ultraschall.Localize will convert your string into it's localized one, otherwise it uses it's original text.
  • DocEngine
    long time on my list, functions for the DocEngine. With them, you can use my Reaper-internal-sourcefiles (.USDocML) and create your own conversions of them.
  • get_action_context_MediaItemDiff
    a function, which helps you to get the diff of an MediaItem since last time calling this function. Good for RippleDrag-features.
  • AddSelectedItemsToRenderQueue
    this adds MediaItems into the Render-Queued, either as single-queued or multiqueued-project-files(requested by Travesty)
  • GetUserInputs
    allows now setting the length of the captions-fields.
    No more cutting off of longer captions!(requested by Julian Sader)
  • More functions, more bugfixes, updated Reaper-docs, speedups

New features in 4.00beta2.76
  • Actions: GetAllActions - gets all actions, actioncommandids and scriptnames of all actions in a specific section
  • DocEngine: Docs_ConvertPlainTextToHTML - converts a plaintext into html
  • DocEngine: Docs_GetAllUSDocBlocsFromString - gets all US_DocBlocs from a string
  • DocEngine: Docs_GetUSDocBloc_ChapterContext - gets the chapters of an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Description - gets the description of an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Functioncall - gets a functioncall of an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_NextChapter - gets the slug of the next chapter of the US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Params - gets the parameters of an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_PreviousChapter - gets the slug of the previous chapter of the US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Requires - gets the requires-tag from an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Retvals - gets the retvals of an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Slug - gets the slug from an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_SourceDocument - gets the source-document-entry from an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_TargetDocument - gets the target-document-entry from an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Tags - gets the tags-entry from an US_DocBloc
  • DocEngine: Docs_GetUSDocBloc_Title - gets the title from an US_DocBloc
  • DocEngine: Docs_RemoveIndent - removes indentation from a text(usually taken from an US_DocBloc)
  • Docs: Concepts: Localize_001_Introduction - Introduction to Localization
  • Docs: Concepts: Localize_002_LangPack_Fileformat - How to write the translation-file
  • Docs: Concepts: Localize_003_Localize_Functions - usage of Localization functions
  • FXManagement: AutoDetectVSTPlugins - auto-searches for the vst-plugin-folder
  • FXManagement: AddParmAlias_FXStateChunk - adds a parameter-alias-entry to an FXStateChunk
  • FXManagement: AddParmLearn_FXStateChunk - adds a parameter-learn-entry to an FXStateChunk
  • FXManagement: AddParmLFOLearn_FXStateChunk - adds a parameter-lfo-learn-entry to an FXStateChunk
  • FXManagement: CountParmAlias_FXStateChunk - counts parameter-alias-entries in an FXStateChunk
  • FXManagement: CountParmLearn_FXStateChunk - counts parameter-learn-entries in an FXStateChunk
  • FXManagement: CountParmLFOLearn_FXStateChunk - counts parameter-lfo-learn-entries in an FXStateChunk
  • FXManagement: DeleteParmAlias_FXStateChunk - deletes a parameter-alias-entry from a specific fx in an FXStateChunk
  • FXManagement: DeleteParmLFOLearn_FXStateChunk - deletes a parameter-lfo-learn-entry from a specific fx in an FXStateChunk
  • FXManagement: DeleteParmLearn_FXStateChunk - deletes a ParmLearn-entry from a specific fx in an FXStateChunk
  • FXManagement: ScanDXPlugins - rescans all DX(DirectX)-plugins, optionally scans all or just the new ones
  • FXManagement: ScanVSTPlugins - rescans all vst-plugins, optionally clears vst-plugin-cache first
  • FXManagement: SetFXStateChunk - sets an FXStateChunk into a TrackStateChunk or MediaItemStateChunk
  • FXManagement: SetParmAlias_FXStateChunk - sets a parameter-alias-entry from a specific fx in an FXStateChunk
  • FXManagement: SetParmLearn_FXStateChunk - sets a parameter-learn-entry from a specific fx in an FXStateChunk
  • FXManagement: SetParmLFOLearn_FXStateChunk - sets a parameter-lfo-learn-entry from a specific fx in an FXStateChunk
  • GFX-Management: GFX_SetFont - sets a font to be used in a gfx-window; adjust Mac-fonts to match the size of Windows-fonts(unlike Reaper's own gfx.setfont)(code by lokasenna with contributions by Justin and Schwa)
  • HelperFunctions: get_action_context_MediaItemDiff - gets the MediaItemDifference(position, start, end, length, offset) since last time calling this function. Good for ripple-drag-scripts.
  • Localize: Localize - localizes a string, using the texts from a translationfile; can be used with or without ultraschall. at the beginning
  • Localize: Localize_RefreshFile - reloads an already set translation-file, so translations can be updated at runtime
  • Localize: Localize_UseFile - sets a translationfile, that shall be used by function ultraschall.Localize
  • Localize: ultraschall_translation_file_format.USLangPack - has a description of the USLangPack-fileformat for usage with the Localize-functions(see in misc-folder)
  • Misc: Developer_Reaper5965.ReaperLangPack - a language-pack, which displays the sections, in which the caption is located in a langpack
  • ReaMote: AutoSearchReaMoteSlaves - autosearches for new ReaMote-slaves
  • Render: AddSelectedItemsToRenderQueue - adds selected MediaItems to render-queue as either one render-queued-project or individual projects(requested by Travesty)
  • Render: GetRenderingToFileHWND - gets the hwnd of the rendering-to-file-dialog, during rendering
  • Tools: LangPack2Developer_langpack_converter.lua - converts a language-pack into a developer-langpack, which displays the sections, in which every caption is located in the langpack
  • Tools: ultraschall_Add_Developertools_To_Reaper.lua - allows installing developertools into Reaper (requested by X-Raym)
  • Tools: ultraschall_developertool_CheckForNewConfigVars.lu a - checks the individual lines of a string in clipboard for valid config-vars; thought I already had added that...
  • Tools: ultraschall_Remove_Developertools_From_Reaper.lua - allows removing already installed developertools from Reaper
  • Track Management: AnyTrackMute - returns, if any track is muted; optionally includes the master-track as well
Changes from Beta 2.75 to Beta 2.76
  • API: versionscheck - had problems with pre/rc and dev-versions of Reaper -> fixed(reported by X-Raym)
  • Docs: Concepts-RenderTable - layout was totally messed up due Markdown -> fixed
  • Docs: FileType-Description - added missing info to ReaperConfigZip-Filetype-description
  • Docs: Index - index in all docs was missing chapters -> fixed
  • Docs: updated Reaper-docs to 5.980 and JS-extension 0.989
  • Helpers: GetPath - when filename has no path, it returns now "", filename
  • Helpers: GetUserInputs - allows now setting width of the captions-fields(requested by Julian Sader), allows now commas in captions and default-values as well; title is now the one defined by the title-parameter(used to have temporary title previously) (reported by X-Raym)
  • Helpers: SplitStringAtLineFeedToArray - sped up by magnitudes, should now work much faster with megabyte-strings
  • Markers: GetAllRegions - returned index in allregionsarray[index][3] wasn't 1-based, causing problems with other functions -> fixed
  • Render: RenderProject_Regions - produced Lua-error, when passing a filename without extension and if region was <1, returns error-messages now in that case
    allows now giving an optional separator between renderfilename_with_path and regionname when addregionname=true, including /
    check docs for that new feature(reported by reapero)
  • Scripts: HWND-Displayer.lua - reimplemented, much more comfortable now with a lot of more features.
  • Tools - the following scripts renamed to:
    ultraschall_developertool_ActionlistToIni-Converter.lua
    ultraschall_developertool_Display-Altered-ConfigFile-Entries.lua
    ultraschall_developertool_Display-Altered-Config-Vars.lua
    ultraschall_developertool_Env_State_Diffs_Monitor. lua
    ultraschall_developertool_findConfigVarsToggledByA ctions.lua
    ultraschall_developertool_GetPitchShiftModes.lua
    ultraschall_developertool_gfx_deltablit_displayer. lua
    ultraschall_developertool_HWND-Displayer.lua
    ultraschall_developertool_Item_State_Diffs_Monitor .lua
    ultraschall_developertool_Project_State_Diffs_Moni tor.lua
    ultraschall_developertool_StateInspector.lua
    ultraschall_developertool_Track_State_Diffs_Monito r.lua
  • Tools: ultraschall_Remove_ExampleScripts_To_Reaper.lua - renamed to ultraschall_Remove_ExampleScripts_From_Reaper.lua, better name that way
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-23-2019, 09:00 AM   #254
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Hotfix 2 - 23rd of July 2019

Changes:
- Docs: Reaper 5.980-logo missing
- Helpers: GetUserInputs - did change the tables passed as default-retvals -> fixed now

Please update your ReaPacks.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-01-2019, 10:51 AM   #255
lossius
Human being with feelings
 
Join Date: Jul 2011
Location: Bergen, Norway
Posts: 123
Default Documentation of parameter_modulation_baseline_slider range in PARAMBASE

While working on a script, I've discovered some info that you might want to add to ParmLearnDocs.txt:

https://github.com/Ultraschall/ultra...mLearnDocs.txt

Currently the parameter_modulation_baseline_slider of PARAMBASE is documented as always being in the range [0, 1]:

Code:
PARAMBASE number parameter_modulation_baseline_slider
        number parameter_modulation_baseline_slider - between 0.0000 and 1.0000; default is 0.2500
I've investigated this for VST, VST3, JS and AudioUnit on macOS. It holds true for VST and VST3, but AU and JS plugins instead have the range that is defined by the parameter itself. One consequence of this is that when using PARAMBASE with AU and JS parameters, I first have to call reaper.TrackFX_GetParamEx() in order to get minval and maxval so that I know the range of parameter_modulation_baseline_slider, and then I need to scale accordingly.

Thought I would mention this in case you want to add it to the documentation.

Thanks for maintaining this documentation, it has been immensely useful while working on a script that I have had the need for for several years, and now it is almost working.
lossius is offline   Reply With Quote
Old 08-01-2019, 03:02 PM   #256
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

I've been busy for a while, but finally got some free time to look over the new beta FX param related stuff.., and WOW!!! It's coming along pretty nicely, looking forward to the reset of the Set functions.

Reading through the docs, I thought I saw something about the possibility of being able to script a "multi-clipboard", if so maybe you could include an example/helper script?

Cheers
Anton9 is offline   Reply With Quote
Old 08-02-2019, 08:51 AM   #257
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

@lossius
Thanx, will look into it.

@Anton9
Can you point me to the part in my docs you've found? It's been a while, since I've done clipboard-stuff.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-03-2019, 06:37 PM   #258
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

mespotine,

It looks like I may have read the line wrong.., it was from the Introduction and Concepts doc.

"Clipboard-Management - get items from clipboard, put them to clipboard, even multiple ones."

Reading it a second time I see it probably refers to multiple "items" into single clipboard using array function.

Cheers
Anton9 is offline   Reply With Quote
Old 08-05-2019, 09:04 AM   #259
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Hotfix 4 available - 4th of August 2019

Changes:
  • Docs: Doc-Engine - had wrong parameters and retvals in numerous functions...fixed(ooops)
  • FXManagement: GetFXStateChunk - had layoutproblem, when the passed StateChunk was taken from a ProjectStateChunk -> fixed(thanks to Anton9?)


Please update your ReaPacks.

@lossius
This update should fix your problem you had with FXStateChunks taken from projectfiles.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-13-2019, 07:33 PM   #260
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

Quote:
Originally Posted by mespotine View Post
[*] FXManagement: GetFXStateChunk - had layoutproblem, when the passed StateChunk was taken from a ProjectStateChunk -> fixed(thanks to Anton9?)
Just to be fair to whomever helped with this one.., I can't take credit for it.., at least I don't think so?
Anton9 is offline   Reply With Quote
Old 08-14-2019, 05:08 AM   #261
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Yes, I fixed that for the next pre-release already
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-22-2019, 09:51 AM   #262
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

4.00 Beta 2.761: - "Coldplay - Fix You" - 23rd of September 2019

Has now 985 functions with 8 new ones!

IMPORTANT!: This is a massive critical bugfix release. About 60 functions returned wrong returnvalues in case of an error.
If you use any of the functions listed in [cur]Changes from Beta 2.76 to Beta 2.761[/cur], you should check, if your scripts still work.
This is totally my fault, as I had some of them wrong to begin with.
My apologies for any inconvenience.... :/


New in this release:
  • Critical Bugfixes
    In case of errors, many functions returned wrong returnvalues or had faulty returnvalues stated in the docs. All of them are fixed now.
    Please check, if your scripts use any of the functions listed in Changes for more details.
    Hope this is the last time, stuff like that happened...
  • GetProjectStateChunk
    gets a full StateChunk of the current project(finally working!)
    Now you can get all states of your project!
  • MediaExplorer
    Get the HWND(GetMediaExplorerHWND), update the listview(UpdateMediaExplorer) and run an action, associated with the MediaExplorer-section(MediaExplorer_OnCommand).
  • ConvertYCoordsMac2Win
    Y-coordinates on Mac are different from the ones in Windows/Linux, meaning, pixel 0 is at the bottom, while Windows/Linux start on top.
    This function converts the y-coordinates between these two coordinate-systems.
  • New version of Config-Vars-displayer-script
    Shows changed with doubles without a problem now, is faster, uses the config-var-docs included with the API to get the currently accepted config-vars.
    I also improved the layout a bit.
New features in 4.00beta2.761
  • Helper functions: FindPatternsInString - finds all occurrences of a matching-pattern in a string
  • Helper functions: IsWithinTimeRange - returns, if a time is within a start and endtime, takes care of the precision-problem time-positions in Lua have
  • ProjectManagement: GetProjectStateChunk - returns the ProjectStateChunk of the current project(finally working!)
  • Scripts: ultraschall_developertool_Display-Altered-Config-Vars.lua - new version, which solves the faulty-displaying-of-double-issue, faster and improved layout. Uses now ConfigVars-Docfile to read the currently supported ConfigVars.
  • Trackmanagement: IsSplitAtPosition - returns, if a split/mediaitemend/mediaitemstart exists at a certain position, within certain tracks
  • User Interface: ConvertYCoordsMac2Win - converts y-coordinates between Windows/Linux and Mac related coordinatesystems
  • User Interface: GetMediaExplorerHWND - gets the HWND-windowhandler of the Media Explorer
  • User Interface: UpdateMediaExplorer - updates the listview of the Media Explorer
  • User Interface: MediaExplorer_OnCommand - runs an Media Explorer action(just like Reaper's Main_OnCommand and Midi_OnCommand-functions); runs no scripts yet, only native/extension actions


Read next post for potentially problematic functions:
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-22-2019, 09:52 AM   #263
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

This lists all functions, who could break you script!
Changes from Beta 2.76 to Beta 2.761
  • Automation Items: GetProject_CountAutomationItems - didn't return the right retval in case of an error -> fixed
  • ColorManagement: RGB2Grayscale - didn't return the right retval in case of an error -> fixed
  • Configuration Files: CountIniFileExternalState_sec - did count keys instead of sections -> fixed(thanks to rstockm)
  • Configuration Files: CountUSExternalState_sec - did count keys instead of sections -> fixed(thanks to rstockm)
  • Configuration Files: CountUSExternalState_key - didn't return the right retval in case of an error -> fixed
  • Configuration Files: DeleteKBIniActions - didn't return the right retval in case of an error -> fixed
  • Configuration Files: DeleteKBIniScripts - didn't return the right retval in case of an error -> fixed
  • Configuration Files: DeleteKBIniKeys - didn't return the right retval in case of an error -> fixed
  • Configuration Files: EnumerateIniFileExternalState_sec - did enumerate keys instead of sections -> fixed(thanks to rstockm)
  • Configuration Files: EnumerateKeysByPattern - didn't return the right retval in case of an error -> fixed
  • Configuration Files: EnumerateSectionsByPattern - didn't return the right retval in case of an error -> fixed
  • Configuration Files: EnumerateUSExternalState_sec - didn't return the right retval in case of an error -> fixed
  • Configuration Files: EnumerateUSExternalState_key - didn't return the right retval in case of an error -> fixed
  • Configuration Files: EnumerateValuesByPattern - didn't return the right retval in case of an error -> fixed
  • Configuration Files: SetIniFileExternalState - didn't return the right retval in case of an error -> fixed
  • Docs: Api-docs - went through all of them and removed MarkDown-issues, though I should do something on this MarkDown-issue. It's a drag...
  • Docs: Doc-Engine - had wrong parameters and retvals in numerous functions...fixed(ooops)
  • Docs: Doc-Engine: Docs_ConvertPlainTextToHTML - was missing html-codes in the description due me encoding it wrong
  • Docs: GetRenderingToFileHWND - had parameters described, that don't exist -> fixed
  • Docs: Reaper Internals - updated to Reaper 5.982, JSextension 0.990 added configvars from developer-releases
  • Docs: Reaper: GetTrackSendInfo_Value - fixed Markdown-formatting-problems
  • Docs: Reaper: print-functions - all print-functions, like sprint, fprint, gfx.printf, etc include now formatting information in the description.
  • Docs: Reaper: SetTrackSendInfo_Value - fixed Markdown-formatting-problems
  • EnvelopeManagement: SetArmState_Envelope - didn't return the right retval in case of an error -> fixed
  • FileManagement: CountLinesInFile - didn't return the right retval in case of an error -> fixed
  • FileManagement: GetLengthOfFile - didn't return the right retval in case of an error -> fixed
  • FileManagement: MakeCopyOfFile_Binary - didn't return the right retval in case of an error -> fixed
  • FileManagement: ReadValueFromFile - didn't return the right retval in case of an error -> fixed
  • FileManagement: ReadBinaryFileUntilPattern - didn't return the right retval in case of an error -> fixed
  • FileManagement: ReadBinaryFileFromPattern - didn't return the right retval in case of an error -> fixed
  • FXManagement: AddParmLFOLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a LFOLEARN entry to become PARMLEARN(thanks to Justin and Schwa for helping me with that)
  • FXManagement: AddParmLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a PARMLEARN entry to become LFOLEARN(thanks to Justin and Schwa for helping me with that)
  • FXManagement: AddParmAlias_FXStateChunk - enhanced doc-description
  • FXManagement: CountParmAlias_FXStateChunk - returns now -1 in case of an errorenhanced doc-description
  • FXManagement: CountParmLearn_FXStateChunk - returns now -1 in case of an error; enhanced doc-description
  • FXManagement: CountParmLFOLearn_FXStateChunk - returns now -1 in case of an error; enhanced doc-description
  • FXManagement: DeleteParmAlias_FXStateChunk - enhanced doc-description
  • FXManagement: DeleteParmLFOLearn_FXStateChunk - enhanced doc-description
  • FXManagement: GetParmModulationChunk_FXStateChunk - enhanced doc-description
  • FXManagement: GetParmLFOLearn_MediaTrack - enhanced doc-description
  • FXManagement: GetFXStateChunk - had layoutproblem, when the passed StateChunk was taken from a ProjectStateChunk -> fixed(thanks to lossius)
  • FXManagement: SetFXStateChunk - didn't return the right retval in case of an error -> fixed
  • FXManagement: SetParmLFOLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a LFOLEARN entry to become PARMLEARN(thanks to Justin and Schwa for helping me with that)
  • FXManagement: SetParmLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a PARMLEARN entry to become LFOLEARN(thanks to Justin and Schwa for helping me with that)
  • FXManagement: SetParmAlias_FXStateChunk - enhanced doc-description
  • Helper Functions: CompareStringWithAsciiValues - returned -1 in case of an error, although boolean should be returned -> fixed
  • Helper Functions: ConvertIntegerIntoString2 - didn't return the right retval in case of an error -> fixed
  • Helper Functions: GetScriptFilenameFromActionCommandID - didn't return the right retval in case of an error -> fixed
  • Helper Functions: GetUserInputs - did change the tables passed as default-retvals -> fixed now
  • Helper Functions: IsItemInTrack - changed error-retval to nil; didn't return the right retval in case of an error -> fixed
  • Helper Functions: LoadFunctionFromExtState - didn't return the right retval in case of an error -> fixed
  • Helper Functions: SetIntConfigVar_Bitfield - didn't return the right retval in case of an error -> fixed
  • Helper Functions: ToggleStateAction - wrongly stated to return boolean instead of integer in the docs -> fixed
  • Helper Functions: ToggleStateButton - wrong retval-description in the docs -> fixed
  • Marker Management: DeleteNormalMarker - returned wrong retval in case of an error -> fixed
  • Marker Management: DeleteEditMarker - returned wrong retval in case of an error -> fixed
  • Marker Management: EnumerateEditRegion - returned wrong retval in case of an error -> fixed
  • Marker Management: SetMarkerByIndex - returned wrong retval in case of an error -> fixed
  • MediaItem Management: GetItemSpectralConfig - didn't return the right retval in case of an error -> fixed
  • MediaItem Management: GetItemSpectralVisibilityState - didn't return the right retval in case of an error -> fixed
  • MediaItem Management: GetMediaItemTake - didn't return the right retval in case of an error -> fixed
  • MediaItem Management: RippleInsert_MediaItemStateChunks - had inner variable exposed
  • MediaItem Management: SetItemLength - didn't return the right retval in case of an error -> fixed
  • MediaItem Management: SetItemPosition - didn't return the right retval in case of an error -> fixed
  • MediaItem Management: SetItemUSTrackNumber_StateChunk - didn't return in some errorcases, potentially resulting in a Lua-error -> fixed
  • MediaItem Management: SplitMediaItems_Position - didn't return the right retval in case of an error -> fixed
  • Project Management: GetProject_GetRegion - returned wrong retval in case of an error -> fixed
  • Project Management: GetProject_CountMasterHWOuts - returned wrong retval in case of an error -> fixed
  • Project Management: GetProject_MasterGroupFlagsState - returned wrong retval in case of an error -> fixed
  • Project Management: GetProject_MasterGroupFlagsHighState - returned wrong retval in case of an error -> fixed
  • Rendering: ApplyRenderTable_Project - stated nil as retval in case of an error, though it is false -> fixed
  • Rendering: ApplyRenderTable_ProjectFile - stated nil as retval in case of an error, though it is false -> fixed
  • Rendering: GetRenderPreset_RenderTable - stated false as retval in case of an error, though it is nil -> fixed
  • Track Management: RemoveMediaItem_TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
  • Track Management: RemoveMediaItemByIGUID_TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
  • Track Management: RemoveMediaItemByGUID_TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
  • Track Management: SetMediaItemStateChunk[cur]in[/cur]TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
  • User Interface: GetVideoHWND - returned wrong retval in case of an error -> fixed
  • Video: VID_Pixels2VideoUIStateCoords - returned wrong retval in case of an error -> fixed
  • Video: VID_VideoUIStateCoords2Pixels - returned wrong retval in case of an error -> fixed
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-26-2019, 10:35 AM   #264
lexaproductions
Human being with feelings
 
Join Date: Jan 2013
Posts: 1,126
Default

Hey Mespotine, I'm planning to use your "Check for changed Project Tabs" functions to know if I have to resave my RPL file upon closing Reaper.

But it seems like there are 2 cases that are not covered:
1- If we save the current project under another name
2- If we open another project over the current one.

Both of those cases don't change the project count thus it seems like the function does not flag that change. Am I not using it right?

Last edited by lexaproductions; 08-26-2019 at 11:26 AM.
lexaproductions is offline   Reply With Quote
Old 08-26-2019, 03:07 PM   #265
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

As far as I remember, the function only covers changes in the order of the projecttabs.
I could try to add checking changed projectnames as well, if that would help, as they aren't checked for right now.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-26-2019, 03:52 PM   #266
lexaproductions
Human being with feelings
 
Join Date: Jan 2013
Posts: 1,126
Default

That would be great!!!
lexaproductions is offline   Reply With Quote
Old 08-26-2019, 04:03 PM   #267
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

I'll put it on my list and hope, it works the way I have it on my mind right now
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 08-30-2019, 08:54 AM   #268
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Quote:
Originally Posted by lexaproductions View Post
Hey Mespotine, I'm planning to use your "Check for changed Project Tabs" functions to know if I have to resave my RPL file upon closing Reaper.

But it seems like there are 2 cases that are not covered:
1- If we save the current project under another name
2- If we open another project over the current one.

Both of those cases don't change the project count thus it seems like the function does not flag that change. Am I not using it right?
Will be in the next version. Only thing not covered, if you reload the a project, means, you load the same project-file again. I'm not sure, whether I could catch that and I guess it will not be covered by GetProjectStateChangeCount...
Would this edgecase be important as well to have?
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 09-01-2019, 09:21 AM   #269
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

mespotine,

I noticed that there is GetParmModulationChunk_FXStateChunk() but no
SetParmModulationChunk_FXStateChunk()? Will this be added in an upcoming version?
Anton9 is offline   Reply With Quote
Old 09-01-2019, 01:17 PM   #270
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Yeah,stll missing.
I still have problems making this easy to use and handle without creating a maintenance nightmare for me.
But it's definately planned. Hope it makes it next version...
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 09-02-2019, 08:46 PM   #271
lexaproductions
Human being with feelings
 
Join Date: Jan 2013
Posts: 1,126
Default

Quote:
Originally Posted by mespotine View Post
Will be in the next version. Only thing not covered, if you reload the a project, means, you load the same project-file again. I'm not sure, whether I could catch that and I guess it will not be covered by GetProjectStateChangeCount...
Would this edgecase be important as well to have?
No I can live without that.

You rule man!!!

Let me know when the build is up and running
lexaproductions is offline   Reply With Quote
Old 09-06-2019, 03:18 AM   #272
aurelien
Human being with feelings
 
Join Date: Apr 2014
Posts: 95
Default

Hi,
Thanks for the great work!
Noticed a bug in:
ultraschall.SplitStringAtLineFeedToArray(Markers)

We don't get the last line in the array
I've put the test code below, i've used another method to split the strings and it output three elements in the array instead of two for the marker array.
Code:
Markers = ultraschall.GetRegionByScreenCoordinates(reaper.GetMousePosition(), false)
--split the markers string to get the right region index
Count, split_string = ultraschall.SplitStringAtLineFeedToArray(Markers)
--code used to split
		  lines = {}
		   for s in Markers:gmatch("[^\r\n]+") do
			  table.insert(lines, s)
		   end

Last edited by aurelien; 09-10-2019 at 12:46 AM.
aurelien is offline   Reply With Quote
Old 09-08-2019, 06:45 AM   #273
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Thanks, will have a look at it
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 09-09-2019, 09:24 AM   #274
aurelien
Human being with feelings
 
Join Date: Apr 2014
Posts: 95
Default

Did some more work with ultrashall today.
Some bugs in RenderProjectRegions_RenderCFG, code below :
Code:
retval, renderfilecount, MediaItemStateChunkArray, Filearray = ultraschall.RenderProjectRegions_RenderCFG(nil,regionName, selectedRegion, false, true, true, false, render_cfg_string)
reaper.ShowConsoleMsg(MediaItemStateChunkArray[1])
-> Filearray + MediaItemStateChunkArray are nil
I did some debug in the ultraschall_functions_engine : if i put this line
Code:
reaper.ShowConsoleMsg(MediaItemStateChunkArray[1]) in the RenderTable function, i get the right value.
-> filenameincrease is not working.

To avoid spamming, is there a website to send bugs we find?

Last edited by aurelien; 09-10-2019 at 12:46 AM.
aurelien is offline   Reply With Quote
Old 09-09-2019, 09:29 AM   #275
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Yes, but this thread is best for me, so I have one place to look for them.

But it would be helpful, if you could add [code]-tags around your code, so it's easier for me to read.

I have a look at the bug.

Oh, and can you post the code, that fills the parameter-variables as well? So I can check, what you tried to pass to the function and see that live.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 09-10-2019, 10:45 AM   #276
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

@aurelien

Could you add the line

ultraschall.ShowLastErrorMessage()

after the renderprojectregion-function and see, whether it displays an errormessage?
And do you use the most recent version of the US-Api? I renamed the renderregions-function by taking away the _RenderCFG-part. The old name is still there but deprecated.

If you don't know, use ultraschall.GetApiVersion() to get the installed version. The most recent is 4.00beta2.761

The other bug is fixed for the next release
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 09-12-2019, 01:34 AM   #277
aurelien
Human being with feelings
 
Join Date: Apr 2014
Posts: 95
Default

Thanks mespotine, i'll get back to you today.

It's just a stupid question : how do you debug those lua script? Did not found any interesting tutorial for debug.
It feels just like 95' debugging with message box and no breakpoint
aurelien is offline   Reply With Quote
Old 09-12-2019, 08:41 AM   #278
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

With Ultraschall-API-related errors, you can check out the chapters about the error-messaging system:

https://mespotin.uber.space/Ultrasch...1_Introduction

Maybe you can do something like breakpoints with them. If not and you have an idea, what you would have as a helper function, drop me the idea and I see what I can do.


I mostly use ultraschall.ShowLastErrorMessage() to see, what error I did.
I may include a linenumber into the error-message at some point but this needs more research on my side, so for now, there's still some kind of guessing needed.

Another trick: code some lines, check if they work as expected, code the next lines, etc, etc.
This speeds up debuggin by magnitudes, as you don't need to debug hundreds of lines.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 09-12-2019, 08:43 AM   #279
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

From the Ultraschall-API-lab:

Save Project As.


Still has some issues but I'm on my way
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 09-13-2019, 01:16 AM   #280
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Hi ! I see there is some Spectral edit API, nice !


string MediaItemStateChunk = ultraschall.SetItemSpectralEdit(integer itemidx, integer spectralidx, number start_pos, number end_pos, number gain, number fade, number freq_fade, number freq_range_bottom, number freq_range_top, integer h, integer byp_solo, number gate_thres, number gate_floor, number comp_thresh, number comp_exp_ratio, number n, number o, number fade2, number freq_fade2, optional string MediaItemStateChunk)


Could we have item pointer to choose item target ?
It seems that it is only spectral edit functions which use this unsual Itemidx method (so I suppose we should use media item state instead ? I dont see any function to get item idx, and it it requires looping in all items, it does sseems that efficient in a loop)
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 09:48 AM.


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