Skip to content

4.00 Beta 2.77: - "Monkeys with Tools - Call the planet doctor" - 1st of October 2019

Compare
Choose a tag to compare
@mespotine mespotine released this 19 Dec 17:33

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.