Skip to content

4.7 - "Pearl Jam - Alive" - 16th of October 2022

Compare
Choose a tag to compare
@mespotine mespotine released this 11 Jun 12:54

Has now 1590 functions, with 58 new ones

new in this release:

  • Marker Menu
    You can code now your own left-click marker-context-menus. Add Entries with MarkerMenu_InsertEntry and MarkerMenu_InsertEntry_DefaultMarkers
    and start the menu with MarkerMenu_Start. You can add new menuentries or remove them during runtime. So if you add a new marker-menu-entry, it will
    be shown in the menu the next time the user hits left-click on a marker.
    And: you can create menus for custom markers as well. So a custom marker called _ShowNote: can have a different menu than _AliceInWonderland:
    It also includes regions.
    And action-marker.

  • ShowNote/Podcast Metadata
    Relevant for podcasting use-cases, you can now add metadata to shownote/normal-markers as well as podcast/podcast-episode metadata.
    Future versions will include export functions for putting them into the mediafile's metadata.

  • EventManager - Debug
    New features for debugging EventManager stuff, like getting additional states and execution-times. So you can check for performance.
    And if you don't want to code one yourself: there's a EventManager monitoring-script in the developer-tools, which shows you the
    execution-times for each check-function-cycle AND the time from after the end of the execution-time until the next one.
    This allows you to tweak performance for your check-functions. The monitoring-tool even gives you a hint, how low the execution-times
    must be for Reaper's UI not lagging.

  • Get Project-time by MediaSource-time and the other way round
    Get the exact project position from a given source-position or the exact source-position from a project-position.
    So inserting take-markers at project-position is now possible. Or other cool stuff, where you need to convert the
    project-position into take-position.

  • ScaleFromDPIFromScale
    You can convert now the dpi-value currently set into its corresponding scale-value vice versa. With that, you can always scale
    your script's ui properly.

  • Base64De/Encoder, ASCII2HEX2ASCII-enocders
    Used to be slow on bigger strings. Not anymore. Sped up by magnitudes...

  • Create/Get-Render-CFG-functions
    FFMPEG-support added, NONE as video/audio-format added, wmf-support added

  • Render functions
    Support now marker-rendering and fade-in/out-feature

  • Bugfixes Bugfixes Bugfixes

New features in 4.7

  • DeveloperTools: FindCurrentlyUsedExtstatesNamesInAFile - looks through a selected file and checks, whether its strings are currently used extstates
  • DeveloperTools: Monitor Eventmanager - monitors the performance and some attributes of the Eventmanager, so you can optimize the registered events(requested by rstockm)
  • DeveloperTools: MonitorRenderTable - monitors the entries of a RenderTable for the currently opened project
  • EventManager: EventManager_Debug_GetAllActionRunStates - returns a table of, if the actions of a registered event were run in the last event-check-cycle or not
  • EventManager: EventManager_Debug_GetExecutionTime - when debugmode is on, allows to get, how long the last run of checking for events did take in seconds(for benchmarking your eventcheck functions) - requested by rstockm
  • EventManager: EventManager_GetAllEventIdentifier - returns a table with all event-identifiers of all currently registered events
  • EventManager: EventManager_GetAllEventNames - returns a table with all event-names of all currently registered events
  • EventManager: EventManager_GetEventPausedState - returns the paused states of a currently registered event
  • FXManagement: GetFXByGuid - gets a fx by its guid
  • FXManagement: TrackFX_GetAllGuidsFromAllTracks - returns all guids from all tracks of the current project
  • FXManagement: TakeFX_GetAllGuidsFromAllTakes - returns all guids from all takes of the current project
  • MarkerManagement: GetMarkerType - returns the type of a marker
  • MarkerManagement: GetGuidFromCustomMarkerID - returns the guid from a custom-marker-index
  • MarkerManagement: GetGuidFromCustomRegionID - returns the guid from a custom-region-index
  • MarkerManagement: GetCustomMarkerIDFromGuid - returns the custom-marker-index and name from a guid
  • MarkerManagement: GetCustomRegionIDFromGuid - returns the custom-region-index and name from a guid
  • MarkerManagement: MarkerMenu_GetLastClickState - gets the last clickstate, when someone has clicked markers/regions with markermenu running
  • MarkerManagement: MarkerMenu_GetLastTouchedMarkerRegion - gets the last clicked marker/region with markermenu running
  • MarkerManagement: MarkerMenu_CountEntries - counts the number of entries in the markermenu for a specific custom marker/region
  • MarkerManagement: MarkerMenu_CountEntries_DefaultMarkers - counts the number of entries in the markermenu for a specific default marker/region
  • MarkerManagement: MarkerMenu_Debug - shows in the ReaScript-console debug-messages like the right-clicked-marker-type, when using the marker/region-hijack-script(see MarkerMenu_Start)
  • MarkerManagement: MarkerMenu_GetAvailableTypes - gets the marker- and region-types, that are currently added to the marker-menu
  • MarkerManagement: MarkerMenu_GetEntry - gets the action and description of a marker-entry for a certain custom-marker/region-type
  • MarkerManagement: MarkerMenu_GetEntry_DefaultMarkers - gets the action and description of a marker-entry for a certain default-marker/region-type from Ultraschall
  • MarkerManagement: MarkerMenu_GetLastClickedMenuEntry - gets the last clicked marker-menu-entry, including name, position, additional data and marker-type
  • MarkerManagement: MarkerMenu_InsertEntry - inserts a new marker-entry into the marker menu for a custom marker/region
  • MarkerManagement: MarkerMenu_InsertEntry_DefaultMarkers - inserts a new marker-entry into the marker menu for markers/regions of Ultraschall
  • MarkerManagement: MarkerMenu_RemoveEntry - removes the action and description of a marker-entry for a certain custom-marker/region-type
  • MarkerManagement: MarkerMenu_RemoveEntry_DefaultMarkers - removes the action and description of a marker-entry for a certain default-marker/region-type from Ultraschall
  • MarkerManagement: MarkerMenu_RemoveSubMenu - removes a submenu from the marker-menu of a specific custom-marker/region
  • MarkerManagement: MarkerMenu_RemoveSubMenu_DefaultMarkers - removes a submenu from the marker-menu of a specific default marker/region
  • MarkerManagement: MarkerMenu_SetEntry - gets the action and description of a marker-entry for a certain custom-marker/region-type
  • MarkerManagement: MarkerMenu_SetEntry_DefaultMarkers - sets the action and description of a marker-entry for a certain default-marker/region-type from Ultraschall
  • MarkerManagement: MarkerMenu_SetStartupAction - sets a startup-action in the markermenu for a specific custom marker/region
  • MarkerManagement: MarkerMenu_SetStartupAction_DefaultMarkers - sets a startup-action in the markermenu for a certain default-marker/region-type from Ultraschall
  • MarkerManagement: MarkerMenu_Start - starts a background-script that hijacks the marker-context-menu when rightclicking markers/regions
  • MarkerManagement: MarkerMenu_Stop - stops the background-script that hijacks the marker-context-menu when rightclicking markers/regions
  • MarkerManagement: RenumerateNormalMarkers - renumerates the shown-number of all normal-markers
  • MarkerManagement: RenumerateShownoteMarkers - renumerates the shown-number of all shownote-markers
  • MediaItem_Takes: GetProjectPosByTakeSourcePos - gets the project-position of a take's source-position, obeying stretch-markers, offset, etc
  • MediaItem_Takes: GetTakeSourcePosByProjectPos - gets the source-position of a take by the project-position, obeying stretch-markers, offset, etc
  • MediaItemManagement: ToggleCrossfadeStateForSplits - toggles/sets the option for crossfades on splits of MediaItems
  • Navigation: GetNextClosestItemEnd - gets the next closest item-end within given tracks and from a specific position(requested by Moritz Klenk)
  • Navigation: GetNextClosestItemStart - gets the next closest item-start within given tracks and from a specific position(requested by Moritz Klenk)
  • Navigation: GetPreviousClosestItemEnd - gets the previous closest item-end within given tracks and from a specific position(requested by Moritz Klenk)
  • Navigation: GetPreviousClosestItemStart - gets the previous closest item-start within given tracks and from a specific position(requested by Moritz Klenk)
  • PodcastMetadata: GetSetChapterMarker_Attributes - gets/sets metadata-attributes of a chapter-marker(using Ultraschall 4+ methods)
  • PodcastMetadata: GetSetPodcast_Attributes - gets/sets metadata-attributes of a podcast
  • PodcastMetadata: GetSetPodcastEpisode_Attributes - gets/sets metadata-attributes of a podcast-episode
  • PodcastMetadata: GetSetShownoteMarker_Attributes - gets/sets additional attributes of a shownote-marker
  • Rendering: ResolvePresetName - resolves the name of a preset into the correct case-sensitivity, as stored in reaper-render.ini
  • Ultraschall: LUFS_Metering_AddEffect - adds the Ultraschall's LUFS Loudness Metering-JSFX
  • Ultraschall: LUFS_Metering_GetValues - gets currently measured LUFS-values of Ultraschall's LUFS Loudness Metering-JSFX, when running
  • Ultraschall: LUFS_Metering_MatchGain - hits programmaticaly the "Match Gain"-button of Ultraschall's LUFS Loudness Metering-JSFX, when running
  • Ultraschall: LUFS_Metering_Reset - resets the measuring of Ultraschall's LUFS Loudness Metering-JSFX, when running
  • Ultraschall: LUFS_Metering_SetValues - sets LUFS-target/Gain-values of Ultraschall's LUFS Loudness Metering-JSFX, when running
  • Ultraschall: LUFS_Metering_ShowEffect - shows the Ultraschall's LUFS Loudness Metering-JSFX, when running
  • UserInterface: GetReaperWindow_Position - returns the Reaper-window-position and various of its elements
  • UserInterface: GetScaleRangeFromDpi - returns the scale-range a certain dpi-value has
  • UserInterface: GetDpiFromScale - returns the dpi for a specific scale

Changes from 4.6 to 4.7

  • API: cleanup - a lot of cleanup in codebase and improvements in stability for future enhancements
  • API: Modulator3000 - readded api-load-speedup after I found out how to circumvent a bug in Reaper's Lua-implementation
  • DeveloperTools: Create new script with dialog - allows now opening/adding already existing scripts; default path for scripts without path is now scripts-folder; scripts can also be copied from a different source into the scriptsfolder and then added(will only copy the chosen file, not possibly other ones!)
  • DeveloperTools: GetPitchShiftModes - improved layout; crashed in my parser due addition of Rrreeeaaa -> fixed
  • DeveloperTools: ItemStateChunk from Clipboard to item under mouse - copied statechunk into clipboard instead of setting it oooppsss -> fixed
  • DeveloperTools: LangPack2Developer_langpack_converter - shows now conversion progress in ReaScript-console
  • DeveloperTools: MonitorParmModulation - did crash, when a parameter-modulation was added after monitoring started -> fixed
  • DeveloperTools: SortLinesInClipboardText - lost the last line before sorting -> fixed
  • DeveloperTools: Theme Parameter Monitor - updates now the list immediately, when the current theme is changed
  • DeveloperTools: Trackstatechunk from clip to track under mouse - copied trackstatechunk into clipboard instead of setting it -> fixed
  • Docs: Reaper Internals - updated to Reaper 6.68 and ReaImGui 0.6.2, added the various misc-docs to a dedicated page in Reaper-Internals
  • Docs: render-strings - updated to Reaper 6.62(includes wmf now and FFMPEG-command-line-options)
  • Docs: misc_docs-folder/Reaper-Render-Strings-docs_Jul2018.txt - removed, due being outdated
  • EventManager: EventManager_GetLastCheckfunctionState2 - improved speed
  • EventManager: main script - stopping the eventmanager could have lead to an error message -> fixed(thanks to rstockm)
  • HelperFunctions: Base64_Decoder - sped up massively for longer strings(up to 94% faster)
  • HelperFunctions: Base64_Encoder - sped up massively for longer strings(up to 90% faster)
  • HelperFunctions: ConvertAscii2Hex - sped up massively for longer strings
  • HelperFunctions: ConvertHex2Ascii - sped up massively for longer strings
  • Helperfunctions: OpenURL - did return true in case of success, though the docs state integer should be returned -> fixed now, returns 1
  • MarkerManagement: AddEditMarker - added guid to name due old code forgotten to remove; some improvements on edittitle -> fixed now
  • MarkerManagement: AddNormalMarker - adds a unique guid for this marker to be used for chapters markers in export
  • MarkerManagement: AddShownoteMarker - adds a unique guid for this shownote to be used in export
  • MarkerManagement: DeleteNormalMarker - did not correctly delete the first normal marker, when it was the first one in the project -> fixed
  • MarkerManagement: EnumerateEditMarker - some improvements on edittitle
  • MarkerManagement: GetMarkerByScreenCoordinates - returns now an additional retval with the marker-number(s); takes now scale-factor into account
  • MarkerManagement: GetMarkerByTime - returns now an additional retval with the marker-number(s); takes now scale-factor into account
  • MarkerManagement: GetRegionByScreenCoordinates - returns now an additional retval with the region-number(s)
  • MarkerManagement: GetRegionByTime - returns now an additional retval with the region-number(s); takes now scale-factor into account
  • MarkerManagement: GetShownoteMarkerIDFromGuid - did add error-messages to the error-messaging system without needing this -> fixed
  • MarkerManagement: GetTemporaryMarker - marker_id should be 0-based -> fixed
  • MarkerManagement: IsMarkerShownote - returns now the shownote-index as well
  • MarkerManagement: SetEditMarker - some improvements on edittitle
  • MarkerManagement: SetShownoteMarker - allows now setting the shown_number of a shownote as well
  • MarkerManagement: StoreTemporaryMarker - supports now different positions(editcursor, play, mouse-position) to get the marker to store from; marker_id should be 0-based -> fixed
  • MediaItemManagement: InsertMediaItemFromFile - rewritten from scratch and should work properly now; supports now insertion into last touched track and setting looped/locked state
  • MediaItemManagement: RippleCut - supports now optional parameter to add crossfade to the edit(requested by NiklasM)
  • MetaData: GetGuidExtState - didn't store extstates, when not using a guid as key -> fixed
  • MetaData: SetGuidExtState - didn't store extstates, when not using a guid as key -> fixed
  • Navigation: GetClosestNextMarker - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
  • Navigation: GetClosestNextRegionEdge - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
  • Navigation: GetClosestPreviousMarker - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
  • Navigation: GetClosestPreviousRegionEdge - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
  • ProjectManagement: GetProjectStateChunk - didn't work under certain circumstances on Linux/Mac -> fixed
  • ProjectManagement: GetProject_Render_Normalize - supports now fade_in and fade_out rendering-modes
  • ProjectManagement: SetProject_Render_Normalize - supports now fade_in and fade_out rendering-modes
  • Rendering: AddRenderPreset - TailMS supported now as of Reaper 6.62+; supports now FadeIn/Out and marker-rendering
  • Rendering: ApplyRenderTable_Project - supports now marker-rendering as well as fade-in/fade-out
  • Rendering: ApplyRenderTable_ProjectFile - supports now marker-rendering as well as fade-in/fade-out
  • Rendering: CreateNewRenderTable - supports now marker-rendering as well as fade-in/fade-out
  • Rendering: CreateRenderCFG_AVI_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec; corrected docs
  • Rendering: CreateRenderCFG_FLV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: CreateRenderCFG_MKV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: CreateRenderCFG_MPEG1_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: CreateRenderCFG_MPEG2_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec; corrected docs
  • Rendering: CreateRenderCFG_QTMOVMP4_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: CreateRenderCFG_WebMVideo - renamed to CreateRenderCFG_WebM_Video(old functionname still available); supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: CreateRenderCFG_WMF_Video - renamed to CreateRenderCFG_WMF (old functionname is still available, though)
  • Rendering: GetRender_AutoIncrementFilename - always returned true, when Render to File was closed -> fixed(thnx to aurelien)
  • Rendering: GetRenderCFG_Settings_AVI_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: GetRenderCFG_Settings_FLV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: GetRenderCFG_Settings_MKV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: GetRenderCFG_Settings_MPEG1_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: GetRenderCFG_Settings_MPEG2_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: GetRenderCFG_Settings_QTMOVMP4_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: GetRenderCFG_Settings_WebMVideo - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
  • Rendering: GetRenderPreset_RenderTable - TailMS supported now as of Reaper 6.62+; marker rendering and fade in/out supported; bounds and options-name are now case-insensitive -> (thanx to Malik)
  • Rendering: GetRenderTable_ProjectDefaults - supports now marker-rendering as well as fade-in/fade-out
  • Rendering: GetRenderTable_Project - supports now marker-rendering as well as fade-in/fade-out
  • Rendering: GetRenderTable_ProjectFile - supports now marker-rendering as well as fade-in/fade-out
  • Rendering: DeleteRenderPreset_Bounds - bounds-name is now case-insensitive -> (thnx to Malik)
  • Rendering: DeleteRenderPreset_FormatOptions - options-name is now case-insensitive -> (thnx to Malik)
  • Rendering: IsValidRenderTable - supports now FadeIn/Out and marker-rendering
  • Rendering: RenderProject_RenderTable - didn't increment filename when rendering filename under certain circumstances -> fixed (thnx to aurelien)
  • Rendering: SetRenderPreset - TailMS supported now as of Reaper 6.62+; supports now FadeIn/Out and marker-rendering; bounds and options-name are now case-insensitive -> (thnx to Malik)
  • UltraschallConfigFiles: GetUSExternalState - did return nil when file did not exist, though docs claimed "" -> fixed
  • UserInterface: SetUIScale - allows now for scaling higher than 2000
  • UserInterface: ShowMenu - did only open once in a script though it should open multiple times -> fixed