Skip to content

4.2.003 - "Georg Friedrich Händel - Sarabande" - 6th of February 2021

Compare
Choose a tag to compare
@mespotine mespotine released this 14 Feb 20:41
· 76 commits to master since this release

4.2.003 - "Georg Friedrich Händel - Sarabande" - 6th of February 2021

Has now 1385 functions, with 26 new ones

new in this release:

  • BatchConvertFiles
    Ever fancied programming the batch-converter? Now you can, with BatchConvertFiles. No more fiddling around with command-line.

  • GetProjectStateChunk
    Is now improved and finally working stable. What a difficult birth, but now you can access all your project-states available.

  • FXStateChunk-functions
    Getting and setting FXStateChunk-entries should be fully supported now. Some can't be set at runtime in Reaper, due some quirks with setting statechunks, but nevertheless.

  • GetActionCommandIDByFilename
    So here's the story: you have this nice filename of a nice ReaScript and would like to call it for a date or just by Main_OnCommand, but:
    you don't know the ActionCommandID. GetActionCommandIDByFilename will be your knight in shining armor and give you what you need.

  • M1-Mac support
    Now all scripts using Ultraschall-API run smooth on the new Arm-Macs as well. Dozens of fixes and bugreports made it possible.

  • SetUIScale
    Now you can scale your Reaper-window to planet-size, by setting its UI-scaling-factor. So if 2 isn't enough for your oldening eyes, set it to 100.

  • 2nd pass rendering
    Also added, so you can use the new 2nd-pass-rendering-feature in your scripts. Loop Loop!

  • Custom Markers/Regions
    They can now be enumerated, set, deleted and count with "" as well. This will give you all custom-marker/regions instead of a specific one.

  • GetItem_ClickState and GetTrackEnvelope_ClickState
    Stopped working due bugfix in SWS, now returned back to working due bugfix in Ultraschall-API. So getting the currently clicked/dragged item/envelope-point is available again.

  • EditReaScript
    Open a specific ReaScript with a specific window-position and size. So arranging your ReaScript-IDE-windows is now real easy.
    Under the assumption, you have a taste for a nice IDE-arrangement.

  • Bugfixes, improvements, speedups
    The usual cleanup of old functions that usually eliminate bugs and slow code.

New features in 4.2.003

  • Configuration-files: GetActionCommandIDByFilename - get the actioncommand-id of a registered script
  • Docs: misc/USDocML-Specs1_0.txt - describes the USDocML-format I use for my Reaper/Ultraschall-API documentation
  • File-Management: BatchConvertFiles - allows converting files using the batch-converter of Reaper
  • FX-Management: GetDocked_FXStateChunk - gets the docked state of an fxchain from an FXStateChunk
  • FX-Management: GetFXBypass_FXStateChunk - returns the BYPASS-entry-values of an FXStateChunk(bypass and online/offline state)
  • FX-Management: GetFXFloatPos_FXStateChunk - returns the float state and position of the fx-window of an fx in an FXStateChunk
  • FX-Management: GetFXGuid_FXStateChunk - returns the guid of an fx in an FXStateChunk
  • FX-Management: GetFXMidiPreset_FXStateChunk - returns the MIDIPRESET-entry-values of an FXStateChunk(link to midi program change)
  • FX-Management: GetFXWak_FXStateChunk - returns the WAK-entry-values of an FXStateChunk(embed and send keyboardinput to fx)
  • FX-Management: GetLastSel_FXStateChunk - returns the last selected fx of an FXStateChunk
  • FX-Management: GetShow_FXStateChunk - gets the state of visibility of the fxchain-window and a specific fx from an FXStateChunk
  • FX-Management: GetWndRect_FXStateChunk - gets the position of the fxchain-window when floating from an FXStateChunk
  • FX-Management: SetDocked_FXStateChunk - sets the docked state of an fxchain from an FXStateChunk
  • FX-Management: SetFXBypass_FXStateChunk - sets the BYPASS-entry-values of an FXStateChunk(bypass, online/offline-state)
  • FX-Management: SetFXFloatPos_FXStateChunk - sets the float state and position of the fx-window of an fx in an FXStateChunk
  • FX-Management: GetFXGuid_FXStateChunk - sets the new guid of an fx in an FXStateChunk
  • FX-Management: SetFXMidiPreset_FXStateChunk - sets the MIDIPRESET-entry-values of an FXStateChunk(link to midi program change)
  • FX-Management: SetFXWak_FXStateChunk - sets the WAK-entry-values of an FXStateChunk(embed and send keyboardinput to fx)
  • FX-Management: SetLastSel_FXStateChunk - sets the last selected fx of an FXStateChunk
  • FX-Management: SetShow_FXStateChunk - sets the SHOW-entry-values of an FXStateChunk(the currently shown fx in the fxchain)
  • FX-Management: SetWndRect_FXStateChunk - sets the position of the fxchain-window when floating from an FXStateChunk
  • ItemManagement: GetItemImage - gets the image, associated with an item in the item-notes-dialog
  • ItemManagement: SetItemImage - sets the image, associated with an item in the item-notes-dialog
  • MarkerManagement: GetAllCustomMarkerNames - returns all custom-marker-names available in the current project(requested by fernsehmuell)
  • MarkerManagement: GetAllCustomRegionNames - returns all custom-region-names available in the current project(requested by fernsehmuell)
  • Misc: Ultraschall_Api_List_Of_USDocML-Containing_Files.txt - a list of all Lua-files, that contain Ultraschall-API-related USDocBlocs(requested by gxray)
  • User Interface: GetUIScale - gets the scaling of Reaper's UI(requested by willpadgett)
  • User Interface: SetUIScale - sets the scaling of Reaper's UI(requested by willpadgett)

Changes from 4.2.002 to 4.2.003

  • Automation Items: AutomationItem_Delete - didn't work due stupid bug, completely rewritten -> fixed(thanks to XRaym)
  • Configuration-files: CountKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: CountKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: CountKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: DeleteKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: DeleteKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: DeleteKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: GetActionCommandIDByFilename - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: GetKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: GetKBIniActionsID_ByActionCommandID - setting filename_with_path=nil uses default reaper-kb.ini; rewritten and sped up by magnitudes; returns found indices as table now; didn't work with command-id-numbers -> fixed(thanks to Aaron Cendan)
  • Configuration-files: GetKBIniFilepath - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: GetKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: GetKBIniKeys_ByActionCommandID - setting filename_with_path=nil uses default reaper-kb.ini; rewritten and sped up by magnitudes; returns found indices as table now; didn't work with command-id-numbers -> fixed(thanks to Aaron Cendan)
  • Configuration-files: GetKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: GetKBIniScripts_ByActionCommandID - setting filename_with_path=nil uses default reaper-kb.ini; rewritten and sped up by magnitudes; returns found indices as table now; didn't work with command-id-numbers -> fixed(thanks to Aaron Cendan)
  • Configuration-files: QueryKeyboardShortcutByKeyID - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: SetKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: SetKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
  • Configuration-files: SetKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
  • Developer Tools: ultraschall_functions_ProjectManagement_ProjectFiles_Module.lua - uses now the project active at script-start.
  • Developer Tools: ultraschall_ShowProjectDiffs.lua - doesn't need to save the project anymore to show changes in the projectfile
  • Docs: Reaper Internals - update to Reaper 6.20, SWS 2.12.1.3; added missing retvals and params, removed duplicated ones
  • Docs: Render-presetfile-docs - added 2nd pass render-option
  • Doc-Engine: Docs_GetUSDocBloc_Params - returns now 0, when no retval is found
  • Doc-Engine: Docs_GetUSDocBloc_Retvals - returns now 0, when no retval is found
  • Developer: EditReaScript - allows now setting position and size of the to-open-IDE-window
  • EnvelopeManagement: GetTrackEnvelope_ClickState - works now again
  • File-Management: CountDirectoriesAndFilesInPath - flushes cache on Reaper 6.20+ to be more reliable
  • File-Management: DirectoryExists - flushes cache on Reaper 6.20+ to be more reliable
  • File-Management: GetAllDirectoriesInPath - flushes cache on Reaper 6.20+ to be more reliable
  • File-Management: GetAllFilenamesInPath - flushes cache on Reaper 6.20+ to be more reliable
  • File-Management: GetAllRecursiveFilesAndSubdirectories - flushes cache on Reaper 6.20+ to be more reliable
  • HelperFunctions: CheckActionCommandIDFormat - returns now true, when the command-id-number is passed over as string as well; fixes some functions(thanks to Aaron Cendan)
  • HelperFunctions: IsOS_Mac - works now on arm-macs as well(thanks to rstockm)
  • MarkerManagement: AddEditMarker - works now on arm-macs as well(thanks to rstockm)
  • MarkerManagement: AddEditRegion - works now on arm-macs as well(thanks to rstockm)
  • MarkerManagement: AddPodRangeRegion - works now on arm-macs as well(thanks to rstockm)
  • MarkerManagement: CountAllCustomMarkers - "" counts now all custom-markers, regardless of their name
  • MarkerManagement: CountAllCustomRegions - "" counts now all custom-regions, regardless of their name
  • MarkerManagement: DeleteCustomMarkers - "" deletes now over all custom-markers, regardless of their name
  • MarkerManagement: DeleteCustomRegions - "" deletes now over all custom-regions, regardless of their name
  • MarkerManagement: EnumerateCustomMarkers - "" enumerates now over all custom-markers, regardless of their name
  • MarkerManagement: EnumerateCustomRegions - "" enumerates now over all custom-regions, regardless of their name
  • MarkerManagement: GetAllCustomMarkers - "" returns now all custom-markers, regardless of their name(requested by fernsehmuell)
  • MarkerManagement: GetAllCustomRegions - "" returns now all custom-regions, regardless of their name
  • MarkerManagement: IsMarkerValidCustomMarker - "" checks now over all custom-markers, regardless of their name
  • MarkerManagement: IsRegionValidCustomRegion - "" checks now over all custom-regions, regardless of their name
  • MarkerManagement: SetCustomMarker - "" sets now over all custom-markers, regardless of their name
  • MarkerManagement: SetCustomRegion - "" sets now over all custom-regions, regardless of their name
  • MarkerManagement: SetEditRegion - works now on arm-macs as well(thanks to rstockm)
  • MediaItem Management: GetItem_ClickState - works now again
  • Miscellaneous: OpenURL - works now on arm-macs as well
  • ProjectManagement: GetProjectStateChunk - works now reliable in Reaper 6.20+; fixed some bugs that might improve stability on earlier Reaper-versions
  • ProjectManagement: GetProject_RenderStems - supports now 2nd pass rendering(Reaper 6.20+)
  • ProjectManagement: IsValidProjectStateChunk - sped up by magnitudes, which is important for checking huge ProjectStateChunks
  • ProjectManagement: SetProject_RenderStems - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: AddRenderPreset - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: ApplyRenderTable_Project - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: ApplyRenderTable_ProjectFile - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: CreateNewRenderTable - all parameters are optional and when passed nil, will be set with Reaper's factory defaults
  • RenderManagement: GetRenderCFG_Settings_AIFF - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_AVI_Video - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_AudioCD - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_FLAC - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_GIF - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_LCF - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_MKV_Video - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_MP3 - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_MP3ABR - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_MP3CBR - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_MP3MaxQuality - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_MP3VBR - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_MP4Mac_Video - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_OGG - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_OPUS - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_QTMOVMP4_Video - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_WAV - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_WAVPACK - stabilized some edgecases
  • RenderManagement: GetRenderCFG_Settings_WebMVideo - stabilized some edgecases
  • RenderManagement: GetRenderTable_Project - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: GetRenderTable_ProjectFile - supports now 2nd pass rendering(Reaper 6.20+); didn't return render-cfg and render-cfg2 as empty string when not set in project -> fixed
  • RenderManagement: GetRenderPreset_RenderTable - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: IsValidRenderTable - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: RenderProject_RenderTable - supports now 2nd pass rendering(Reaper 6.20+)
  • RenderManagement: SetRenderPreset - supports now 2nd pass rendering(Reaper 6.20+)