4.7 - "Pearl Jam - Alive" - 16th of October 2022
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