4.00 Beta 2.77: - "Monkeys with Tools - Call the planet doctor" - 1st of October 2019
Has now 1029 functions with 44 new ones! Yes, I crossed the thousand!
New in this release:
-
Event Manager
Killer Feature Time and long requested by many of you!
The EventManager allows you to run actions, when certain states occur/statechanges occur.
That way you can automatize running actions under certain circumstances without having to run your own defer-script for that.
Kudos to @fernsehmuell, who was essential in the initial designs of it! -
ShowXXXInputMenu
Shows different Context-menus, like TrackInput, TrackPanel, TrackArea, TrackRouting, Ruler, MediaItem, Track/TakeEnvelope,
EnvelopePoint, EnvelopePoint for Automation Items, AutomationItems-contextmenu.
Reaper's own function ShowPopupMenu is quite difficult to use, so I made some, who make it easier. -
RunLuaSourceCode
Runs Luacode directly without having to create a script for it. -
Main_OnCommand_LuaCode
Runs Luacode as child-script directly without having to create a script for it. -
GetTimeByMouseXPosition
returns projecttime at x-screenposition, which can be nice for mouse-editing-specific actions. -
ReplacePatternInString
Like Lua's string.gsub(), this replaces a pattern within a string with a replacement string, but you can choose,
which one shall be replaced. And unlike string.gsub() only that one will be replaced, not the occurences after that. -
GetItem_ClickState and GetTrackEnvelope_ClickState
Return, if a MediaItem/EnvelopePoint is currently clicked and hovered by the mouse. Could be used for some nice and handy things. -
GetAllActions
Sped up and returns now more attributes, like action-type(script, native, custom, extension), termination-state of scripts, consolidate-state for custom actions. -
ConvertFunction_FromBase64String and ConvertFunction_ToBase64String
Convert a Lua-function to/from a BASE64-string. That way, you can exchange functions via extstates. Convert to Base64-string, put the string into an extstate,
read the string from the extstate and convert it back to a function. -
Bugfixes and optimzations
Optimized and bugfixed tons of other stuff, thanks to many bugreports and a lot of feedback from many of you.
Big thanks for that :)
New features in 4.00beta2.77
- Defer Management: GetDeferRunState - gets the current runstate of a ultraschall-defer-loop in the current or a specific scriptinstance(requested by rstockm)
- Docs: EventManager - added concepts docs for detailed description, on how to use and code the EventManager
- Envelope Management: GetTrackEnvelope_ClickState - returns the currently clicked TrackEnvelope-Point
- Error Messaging System: SuppressErrorMessages - suppresses and unsuppresses error-messages of the error messaging system
- EventManager: EventManager_AddEvent - registers a new event to the EvenManager-checkingqueue
- EventManager: EventManager_AddStartupEvent - adds an event into the ini-file of the EventManager, to be registered at startup of the ini-file
- EventManager: EventManager_CountRegisteredEvents - counts the number of registered events
- EventManager: EventManager_CountStartupEvents - counts the number of currently available startup-events for the EventManager
- EventManager: EventManager_EnumerateEvents - returns attributes of specific registered events
- EventManager: EventManager_EnumerateEvents2 - enumerates attributes of an event by EventIdentifier
- EventManager: EventManager_EnumerateStartupEvents - enumerates attributes of a startup-event
- EventManager: EventManager_EnumerateStartupEvents2 - enumerates attributes of a startup-event by an EventIdentifier
- EventManager: EventManager_IsValidEventIdentifier - checks, if an EventIdentifier is a valid and currently registered one
- EventManager: EventManager_PauseEvent - pauses a registered event in the EventManager
- EventManager: EventManager_RemoveAllEvents_Script - removes all events, registered by a script with a certain ScriptIdentifier
- EventManager: EventManager_RemoveEvent - removes an event from the EvenManager-checkingqueue
- EventManager: EventManager_RemoveStartupEvent - removes a registered-at-startup-event for the EventManager by EventIdentifier
- EventManager: EventManager_RemoveStartupEvent2 - removes a registered-at-startup-event for the EventManager
- EventManager: EventManager_ResumeEvent - resumes a paused and registered event in the EventManager
- EventManager: EventManager_SetEvent - sets an already existing event in the EvenManager-checkingqueue
- EventManager: EventManager_SetStartupEvent - sets an event in the ini-file of the EventManager, which will be registered at startup of the ini-file
- EventManager: EventManager_Start - starts the EventManager
- EventManager: EventManager_Stop - removes all events registered by the current script/a specific ScriptIdentifier; stops the EventManager, if all scripts who have registered events have used this function
- EventManager: Ultraschall_EventManager.lua - the backgroundscript for the EventManager
- Helper Functions: ConvertFunction_FromBase64String - loads a function from a BASE64-string
- Helper Functions: ConvertFunction_ToBase64String - converts a function into a BASE64-string
- Helper functions: Main_OnCommand_LuaCode - runs Luacode in a temporary new script, without the need to create it first
- Helper functions: ReplacePatternInString - replaces a certain occurence(and only that one) of a pattern in a string with a replacement
- Helper functions: RunLuaSourceCode - runs Lua-code directly from a string
- MediaItem Management: GetItem_ClickState - returns the currently clicked MediaItem
- MediaItem Management: GetItem_HighestRecCounter - returns the highest reccounter in the current project
- MediaItem Management: GetItem_Number - returns the itemnumber of a MediaItem within a project(requested by XRaym)
- Project Management: GetProjectFilename - returns the filename of a currently opened project
- Project Management: SetProject_GlobalAuto - sets global automation override-state a projectfile or a ProjectStateChunk
- Project Management: SetProject_Lock - sets locked-state of a projectfile or a ProjectStateChunk
- Project Management: SetProject_MasterAutomode - sets automation-mode of the mastertrack in a projectfile or a ProjectStateChunk
- Project Management: SetProject_Playrate - sets playrate-state of a projectfile or a ProjectStateChunk
- Project Management: SetProject_MasterSel - sets selection-state of the master-track in a projectfile or a ProjectStateChunk
- Project Management: SetProject_Tempo - sets the tempo settings(bpm, beat, denominator) a projectfile or a ProjectStateChunk
- Ultraschall: DeleteUSExternalState - deletes an extstate from the ultraschall.ini(requested by rstockm)
- User Interface: GetTimeByMouseXPosition - returns projecttime at x-screenposition
- User Interface: ShowTrackInputMenu - shows a TrackInput-contextmenu
- User Interface: ShowTrackPanelMenu - shows a TrackPanel-contextmenu
- User Interface: ShowTrackAreaMenu - shows a TrackArea-contextmenu
- User Interface: ShowTrackRoutingMenu - shows a TrackRouting-contextmenu
- User Interface: ShowRulerMenu - shows a Ruler-contextmenu
- User Interface: ShowMediaItemMenu - shows a MediaItem-contextmenu
- User Interface: ShowEnvelopeMenu - shows a Track/TakeEnvelope-contextmenu
- User Interface: ShowEnvelopePointMenu - shows an EnvelopePoint-contextmenu
- User Interface: ShowEnvelopePointMenu_AutomationItem - shows an EnvelopePoint-contextmenu for Automation Items
- User Interface: ShowAutomationItemMenu - shows an AutomationItems-contextmenu
Changes from Beta 2.761 to Beta 2.77
- Actions: GetAllActions - sped up by magnitudes; returns now actiontype, consolidate-state, termination-state of actions as well; supports now section 1(invisible custom actions)
- API: functions - moved all functions into modules for future modular-concept
- Configuration Files: CountIniFileExternalState_sec - had inner variable exposed -> fixed
- Configuration Files: EnumerateIniFileExternalState_sec - did return keys instead of sections -> fixed
- Configuration Files: GetKBIniKeys - enhanced description for osc
- Configuration Files: SetKBIniKeys - enhanced description for osc
- Docs: Reaper Internals - updated to Reaper 5.983 and JS-extension 0.992
- DocEngine: Docs_GetUSDocBloc_ChapterContext - returned an additional empty non-existant chapter -> fixed
- DocEngine: Docs_GetUSDocBloc_Requires - could produce a Lua-error -> fixed
- Defer Management: GetDeferIdentifier - you can optionally pass a script-identifier now, to get the defer-identifier of another scriptinstance(used to support only the current script instance)
- Helper Functions: IsValidMatchingPattern - moved to docs-index API-Helper functions -> Data Manipulation
- Helper Functions: SecondsToTime - moved to docs-index API-Helper functions -> Data Manipulation
- Helper Functions: SecondsToTimeString_hh_mm_ss_mss - moved to docs-index API-Helper functions -> Data Manipulation
- Helper Functions: SplitStringAtLineFeedToArray - didn't always return the last entry of the passed string -> fixed (thanks to Aurelien)
- Helper Functions: TimeStringToSeconds_hh_mm_ss_mss - moved to docs-index API-Helper functions -> Data Manipulation
- Helper Functions: TimeToSeconds - moved to docs-index API-Helper functions -> Data Manipulation
- HWND: GetActionsHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetBatchFileItemConverterHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetConsolidateTracksHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetExportProjectMIDIHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetPreferencesHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetProjectDirectoryCleanupHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetProjectSettingsHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetRenderQueueHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetRenderToFileHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetRenderingToFileHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetSaveLiveOutputToDiskHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- HWND: GetVideoHWND - moved to docs-index User Interface -> Reaper-Windowhandler
- Media Explorer: MediaExplorer_OnCommand - moved function in docs to index Media Explorer
- Media Explorer: UpdateMediaExplorer - moved function in docs to index Media Explorer
- Project Management: CheckForChangedProjectTabs - checks now as well, if projectfilenames have changed, by either loading a project or saving a project under a new filename(requested by lexaproductions)
- Project Management: GetProject_GlobalAuto - added description for global-automation-override_state
- Project Management: GetProject_MasterGroupFlagsState - moved to correct docsindex Project Management
- Project Management: ProjectTabs-check - initialization had a bug, which could cause CheckForChangedProjectTabs to fail at times -> fixed
- Project Management: SetProject_MasterGroupFlagsState - moved to correct docsindex Project Management
- SpectralEdit: AddItemSpectralEdit - parameter end_pos was actually length -> fixed (thanks to XRaym)
- SpectralEdit: GetItemSpectralEdit - retval end_pos was actually length -> fixed (thanks to XRaym)
- SpectralEdit: SetItemSpectralEdit - parameter end_pos was actually length -> fixed (thanks to XRaym)
- Ultraschall: EnumerateUSExternalState_sec - had problems, when ultraschall.ini was stored with CR+LF-lineendings -> fixed (thanks to rstockm)
- Ultraschall: IsTrackSoundboard - sped up execution by removing useless loop(thanks rstockm)
- Ultraschall: IsTrackStudioLink - sped up execution by removing useless loop(thanks rstockm)
- Ultraschall: IsTrackStudioLinkOnAir - sped up execution by removing useless loop; didn't work correctly on Mac -> fixed(thanks rstockm)
- Ultraschall: moved ultraschall.ini-related functions to Ultraschall Specific-index in the docs
- User Interface: GetReaperWindowPosition_Left - deprecated
- User Interface: GetReaperWindowPosition_Right - deprecated
- User Interface: GetUserInputs - only working on Windows, currently. Working on fixing it.
- User Interface: MB - only working on Windows, currently. Working on fixing it.