Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 02-27-2019, 10:07 AM   #121
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

New features in 4.00beta2.72
  • API: ultraschall.hotfixdate - holds the release-date of the currently installed hotfix, returned by GetApiVersion now
  • ArrangeView: GetVerticalScroll - gets the current vertical-scroll-factor of the arrangeview
  • ArrangeView: SetVerticalScroll - sets a new vertical-scroll-factor of the arrangeview
  • BackgroundScripts: new background-script - ultraschall_track_old_playstate.lua - stores old playstate into extstate ultraschall->last_playstate
  • BackgroundScripts: GetLastPlayState - returns the last playstate before the current one
  • ChildScripts: Main_OnCommandByFilename - runs a command by its filename instead of the ActionCommandID/command-id;
    returns a unique script-identifier for the started script-instance, that you can use as
    extstate to communicate with that script;
    allows passing of parameters to the started script!
  • ChildScripts: MIDI_OnCommandByFilename - runs a command in the MIDI-Editor context by its filename instead of the ActionCommandID/command-id;
    returns a unique script-identifier for the started script-instance, that you can use as
    extstate to communicate with that script
    allows passing of parameters to the started script!
  • Child-Scripts: SetScriptParameters - sets parameters for a child-script, as started by Main_OnCommandByFilename and MIDI_OnCommandByFilename
  • Child-Scripts: GetScriptParameters - gets parameters for a child-script, as started by Main_OnCommandByFilename and MIDI_OnCommandByFilename
  • Child-Scripts: GetScriptReturnvalues - gets returnvalues, that a script-instance with a specific scriptidentifier sent to the current script
  • Child-Scripts: SetScriptReturnvalues - sends returnvalues to a script-instance with a specific scriptidentifier
  • Child-Scripts: GetScriptReturnvalues_Sender - gets, which child-scripts(and their corresponding ScriptIdentifier) have sent return-values to the current script
  • Config: GetSetIntConfigVar - gets/sets a configuration-variable of the type integer-bitfield
  • Config: GetIniFileValue - gets an ini-value from an ini-file; unlike SWS's own functions for that(2.9.7 and earlier), this has no problems with Umlauts in the path
  • Config: SetIniFileValue - sets an ini-value into an ini-file; unlike SWS's own functions for that(2.9.7 and earlier), this has no problems with Umlauts in the path
  • Docs: US_Api_AUD.html - added
  • Docs: US_Api_Concepts_AUD.html - added
  • Docs: US_Api_Concepts_DOC.html - added
  • Docs: US_Api_Concepts_GFX.html - added
  • Docs: US_Api_Concepts_GUI.html - added
  • Docs: US_Api_Concepts_VID.html - added
  • Docs: US_Api_DOC.html - added
  • Docs: US_Api_GFX.html - added
  • Docs: US_Api_GUI.html - added
  • Docs: US_Api_VID.html - added
  • Docs: US_Api-AUD.USDocML - added
  • Docs: US_Api-DOC.USDocML - added
  • Docs: US_Api-GFX.USDocML - added
  • Docs: US_Api-GUI.USDocML - added
  • Docs: US_Api-VID.USDocML - added
  • Docs: NewUltraschallDoc_VID_Converter.lua - added
  • Docs: NewUltraschallDoc_GUI_Converter.lua - added
  • Docs: NewUltraschallDoc_DOC_Converter.lua - added
  • Docs: NewUltraschallDoc_AUD_Converter.lua - added
  • Docs: NewUltraschallConceptsDocConverter_AUD.lua - added
  • Docs: NewUltraschallConceptsDocConverter_DOC.lua - added
  • Docs: NewUltraschallConceptsDocConverter_GFX.lua - added
  • Docs: NewUltraschallConceptsDocConverter_GUI.lua - added
  • Docs: NewUltraschallConceptsDocConverter_VID.lua - added
  • Docs: Child Scripts: Introduction - added chapter
  • Docs: Child Scripts: The unique ScriptIdentifier - added chapter
  • Docs: Child Scripts: Running Childscripts - added chapter
  • Docs: Child Scripts: Passing Parameters and Returnvalues - added chapter
  • Docs: DeferScripts: Introduction to Ultraschall's Defer-functions - added chapter
  • Docs: DeferScripts: Special Defer-loops in the Ultraschall-API - added chapter
  • Docs: DeferScripts: Stopping Defer-loops from in- and outside of scripts - added chapter
  • Docs: Concepts: Error Messaging System: Other helpers for Error-Messaging-system - added chapter
  • Docs: Concepts: Installation - added instructions on how to install the Ultraschall-API using ReaPack-package-managerhttps://reapack.com/
  • Docs: Concepts: Markers and Regions: Custom-Markers and Custom-Regions
  • ReaperDocs: added new SWS2.10.0.1-functions
  • ReaperDocs: updated new JS-extension-plugin-functions, up to 0.971
  • ReaperDocs: added new Video-Processor-Api-functions, as of Reaper 5.971
  • ReaPack: ReaPack-functions - added ReaPack-functions to Reaper-Internals docs
  • Defer: GetDeferIdentifier - gets the identifier of a Defer1 to Defer20-cycle of the current script
  • Defer: Defer1 to Defer20 - run a customized defer-cycle, in which you can decide, how often it should be run. You can also stop such a defer-cycle from in/outside the script using StopDeferCycle.
    For that, Defer1 to Defer20 will return an identifier, which can be used to stop this specific defer-cycle.
    You should only use each DeferXX-cycle once in a script-instance, or the timing will become corrupt!
  • Defer: StopDeferCycle - stops a Defer1 to Defer20-defer-instance from a script-instance
  • Dialogs: GetUserInputs - gets the user-input. Like Reaper's own GetUserInputs but a different parameter-scheme, that should be easier to handle.
  • Dialogs: BrowseForOpenFiles - utilizes JS_Dialog_BrowseForOpenFiles-function, but returns the files and paths in a more comfortable way
  • Editing: RippleCut_Regions - ripple-cuts all regions between startposition and endposition and moves all regions after endposition toward projectstart by difference between startposition and endposition
  • ErrorMessages: ShowErrorMessagesInReascriptConsole - toggles, if errormessages shall be shown in the ReaConsole immediately, when they happen
  • ExampleScript: A_Simple_EventManager_with_Backgroundhelpers_and_D efer01.lua - a simple demo-eventmanager, that employs the background-helper-scripts and the Defer01-function
  • FileIO: GetAllRecursiveFilesAndSubdirectories - returns all subdirectories with all their files with full path of a directory
  • GFX: GFX_DrawThickRoundRect - draws a round-rectangle with variable thickness
  • GFX: GFX_BlitFramebuffer - blits the content of a framebuffer into the drawing-buffer; will resize, if necessary and retains aspect-ratio
  • Helpers: SplitStringAtNULLBytes - splits a string at NULL-bytes ( \0 )
  • Helpers: Base64_Encoder - encodes a string into a Base64-encoded string
  • Helpers: CreateTemporaryFileOfProjectfile - creates a valid temporary-copy of an rpp-projectfile; use nil for the currently opened one(must be saved first)
  • Helpers: Base64_Decoder - decodes a Base64-encoded string
  • Helpers: StateChunkLayouter - layouts statechunks according the layouting rules of rpp-projectfiles; makes parsing them much easier
  • Helpers: print - replacement for Lua's own print-function(which is quite useless in Reaper); displays the printed parameters in the ReaScript-console
  • Helpers: print2 - like print, but displays the parameters as a messagebox instead
  • Helpers: ConvertIntegerToBits - converts an integer-value into its individual bitvalues
  • Helpers: ReverseEndianess_Byte - changes endianess of a byte-value
  • Helpers: ConvertIntegerIntoString - converts the individual bytes of an integer into a string
  • Helpers: ReplacePartOfString - replaces a part of a string, beginning from an offset and up to a length; can be used for easy string insertion as well
  • HWND: IsValidHWND - checks, if a HWND is a valid one
  • HWND: GFX_Init - opens a new gfx-window. Like gfx.init, but this returns its HWND-windowhandler-object as well
  • HWND: GFX_GetWindowHWND - gets the HWND of a opened gfx-window, opened with ultraschall.GFX_Init
  • HWND: GetReaperWindowAttributes - returns several attributes of the Reaper-window, like size/position, active-state, childwindows, etc
  • HWND: GetTopmostHWND - returns the topmost hwnd(window-handler) of a child-hwnd; returns also all the parent-hwnds
  • HWND: Windows_Find - finds Reaper-windows by title and returns their HWNDs
  • HWND: GetAllReaScriptIDEWindows - returns the HWNDs of all opened ReaperIDE-windows
  • HWND: GetReaScriptConsoleWindow - returns the HWND of the ReaScript-console, if open at all.
  • HWND: HasHWNDChildWindowNames - allows to check, if a certain HWND has child-hwnds of certain name(s). Good to make probability-checks for the right Reaper-windows-check.
  • HWND: GetRenderToFileHWND - returns the HWND of the Render to File-dialog
  • HWND: GetActionsHWND - returns the HWND of the Actions-dialog
  • HWND: GetVideoHWND - returns the HWND of the Video Window
  • HWND: GetHWND_ArrangeViewAndTimeLine - returns the HWND-window-handler for the tracklist- and timeline-area of the arrangeview
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635

Last edited by mespotine; 04-03-2019 at 09:06 AM.
mespotine is offline   Reply With Quote
Old 02-27-2019, 10:08 AM   #122
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

  • Markers: GetAllCustomMarkers - gets all custom-markers of a certain name, as table
  • Markers: GetAllCustomRegions - gets all custom-regions of a certain name, as table
  • Markers: CountAllCustomMarkers - counts all custom-markers of a certain name
  • Markers: CountAllCustomRegions - counts all custom-regions of a certain name
  • Markers: EnumerateCustomMarkers - enumerates a custom-marker of a certain name
  • Markers: EnumerateCustomRegions - enumerates a custom-region of a certain name
  • Markers: DeleteCustomMarkers - deletes a custom-marker of a certain name
  • Markers: DeleteCustomRegions - deletes a custom-region of a certain name
  • Markers: AddCustomMarker - adds a custom-marker of a certain name
  • Markers: AddCustomRegion - adds a custom-region of a certain name
  • Markers: SetCustomMarker - sets a custom-marker of a certain name
  • Markers: SetCustomRegion - sets a custom-region of a certain name
  • Markers: GetNextFreeRegionIndex - gets the next free region-shown-indexnumber
  • Markers: IsMarkerValidCustomMarker - checks a marker, if it's a valid custom-marker
  • Markers: IsRegionValidCustomRegion - checks a marker, if it's a valid custom-region
  • MediaItems: EnumerateMediaItemsInTrack - readded, got lost in earlier versions somehow, leading to GetTrackLength being useless
  • Render: IsReaperRendering - returns, if Reaper is currently rendering a file
  • Render: GetProject_RenderOutputPath - returns the output-directories for rendered files from a projectfile
  • Script-Identifier: GetScriptIdentifier - returns a unique identifier-string for the current script-instance, that can be used to send command/string to this scriptinstance
  • Trackstates: GetTrackSelection_TrackStateChunk - gets, if a track in a StateChunk is selected; works only with TrackStateChunks from ProjectStateChunks
  • Trackstates: SetTrackSelection_TrackStateChunk - sets a track in a StateChunk selected; works only with TrackStateChunks from ProjectStateChunks
  • Transport: SetLoopState - sets the current loop-state(button)
  • Transport: GetLoopState - gets the current state of loop
  • Transport: GetLastLoopState - gets the last loop-state, needs RunBackgroundHelperFeatures to be run first
  • Ultraschall: CountUltraschallEffectPlugins - counts number of instances of StudioLink, StudioLinkOnAir, Ultraschall-Soundboard and Ultraschall_Dynamics-plugins in a track. Also returns a table with all bypass/offline-states
  • Video: VID_VideoUIStateCoords2Pixels - converts the coordinates, returned by the video-processor-function ui_get_state into pixels
  • Video: VID_Pixels2VideoUIStateCoords - converts back the coordinates from pixels into the coordinates returned by the video-processor-function ui_get_state
Changes from 4.00beta2.7 to 4.00beta2.72
  • Api: GetApiVersion - updated versionsnumbering; returns now the release-date of the currently installed hotfixes
  • Api: hotfixes are now loaded before beta-functions
  • Api: requires now version 0.963 of Julian Sader's plugin
  • Api: ultraschall_api.lua - checks now, if it is run within the beta-engine-parts of this API and prevents including it if necessary. This prevents duplicate execution of functions, when coding within the beta-functions-engine-scripts.
  • ArrangeView: IsValidArrangeviewSnapshot - checks now vertical-scrollfactor as well
  • ArrangeView: IsValidArrangeviewSnapshot - improved checking for validity of parameters
  • ArrangeView: RestoreArrangeviewSnapshot - improved checking for validity of parameters
  • ArrangeView: RestoreArrangeviewSnapshot - restores now vertical-scrollfactor as well
  • ArrangeView: RetrieveArrangeviewSnapshot - improved checking for validity of parameters
  • ArrangeView: RetrieveArrangeviewSnapshot - retrieves now vertical-scrollfactor as well
  • ArrangeView: StoreArrangeviewSnapshot - improved checking for validity of parameters
  • ArrangeView: StoreArrangeviewSnapshot - stores now vertical-scrollfactor as well
  • Colors: RGB2Grayscale - improved checking for validity of parameters
  • Config: GetIniFileExternalState - using now the SetIniFileValue-function for getting the ini-file-value
  • Config: GetReaperWorkDir - using now the SetIniFileValue-function for getting the ini-file-value
  • Config: GetUSExternalState - using now the SetIniFileValue-function for getting the ini-file-value
  • Config: SetIniFileExternalState - using now the SetIniFileValue-function for setting the ini-file-value
  • Config: SetPlayCursorWidth - using now the SetIniFileValue-function for setting the ini-file-value
  • Config: SetReaperWorkDir - using now the SetIniFileValue-function for setting the ini-file-value
  • Config: SetStartNewFileRecSizeState - using now the SetIniFileValue-function for setting the ini-file-value
  • Config: SetUSExternalState - converts now all passed parameters to string, regardless of their type
  • Config: SetUSExternalState - using now the SetIniFileValue-function for setting the ini-file-value
  • Dialogs: CloseReaConsole - renamed to CloseReaScriptConsole, as the ReaConsole is something different; added plausability-checks and localization to get the right ReaScript-Console-window
  • Dialogs: ultraschall.MB - converts now all passed data into string, no matter what type it is
  • Docs: Changelog - fixed Markdown-formatting-issues
  • Docs: Docgenerator - reworked the docengine-creator for more fluffy working of it
  • Docs: docs generate and include now beta-functions as well
  • Docs: docs use now GetApiVersion for displaying version-numbering
  • Docs: Introduction/Concepts: Datatypes: Checking Datatypes - fixed Markdown-issues
  • Docs: MB - moved to User Interface -> Dialogs in the docs
  • Envelopes: CountEnvelopePoints - improved checking for validity of parameters
  • Envelopes: CountMuteEnvelopePoints - improved checking for validity of parameters
  • Envelopes: GetClosestEnvelopePointIDX_ByTime - improved checking for validity of parameters
  • Envelopes: GetEnvelopePoint - improved checking for validity of parameters
  • Envelopes: GetEnvelopePointIDX_Between - improved checking for validity of parameters
  • Envelopes: SetEnvelopeHeight - improved checking for validity of parameters
  • ErrorMessages: AddErrorMessage - when set with ShowErrorMessagesInReascriptConsole, it shows now errormessages immediately in the ReaScriptConsole
  • ErrorMessages: ReadErrorMessage - accepted a string for the integer-parameter errornumber which rendered the function useless -> fixed
  • ErrorMessages: ReadErrorMessage - improved error-message, errornumber now checks, if being an integer
  • FileIO: CreateValidTempFile - added info about the path of the created tempfile/tempfilename
  • FileIO: GetAllFilesnamesInPath renamed to GetAllFilenamesInPath - stupid typo in functionname...sorry for any inconveniences
  • FileIO: GetLengthOfFile - improved checking for validity of parameters
  • FileIO: MakeCopyOfFile_Binary - added check, if a file is already in use and can't be read
  • FileIO: ReadBinaryFileFromPattern - added check, if a file is already in use and can't be read
  • FileIO: ReadBinaryFileUntilPattern - added check, if a file is already in use and can't be read
  • FileIO: ReadFullFile - added check, if a file is already in use and can't be read
  • FileIO: ReadFullFile - produced Lua-error, when passing a boolean as filename_with_path -> fixed
  • FileIO: ReadValueFromFile - produced Lua-error, when passing a boolean as filename_with_path -> fixed
  • FileIO: WriteValueToFile - converts now the parameter value to a string, regardless of it's original datatype
  • FileIO: WriteValueToFile_Insert - converts now the parameter value to a string, regardless of it's original datatype
  • FileIO: WriteValueToFile_InsertBinary - converts now the parameter value to a string, regardless of it's original datatype
  • FileIO: WriteValueToFile_Replace - converts now the parameter value to a string, regardless of it's original datatype
  • FileIO: WriteValueToFile_ReplaceBinary - converts now the parameter value to a string, regardless of it's original datatype
  • Fun: WinterlySnowflakes - preparation of the snowflakes produced wrong default-values of gfx.x, gfx.y, gfx.r, gfx.g, gfx.g -> fixed
  • Helpers: CloseReaConsole - updated to behavior of version 0.963 of the JS-plugin
  • Helpers: GetPath - when sep is nil, it returns now the path until the last useful separator, either \ or /
  • Helpers: RunBackgroundHelperFeatures - allows now switching off the background-scripts
  • Helpers: SearchStringInString - dropped nested searchstring-functionality as it was useless; recoded from scratch for more stability
  • Markers: GetAllRegionsBetween - didn't return regions, that began before startposition and ended after endposition -> fixed
  • Markers: GetClosestNextMarker - improved checking for validity of parameters
  • Markers: GetClosestNextRegionEdge - improved checking for validity of parameters
  • Markers: GetMarkerByScreenCoordinates - returned useless newlines -> fixed now
  • Markers: GetMarkerByTime - returned useless newlines -> fixed now
  • Markers: GetMarkerByTime - using now the SetIniFileValue-function for getting the ini-file-value
  • Markers: GetRegionByScreenCoordinates - returned useless newlines -> fixed now
  • Markers: GetRegionByTime - returned useless newlines -> fixed now
  • Markers: GetRegionByTime - using now the SetIniFileValue-function for getting the ini-file-value
  • Markers: GetTimeSignaturesByTime - using now the SetIniFileValue-function for getting the ini-file-value
  • Markers:IsMarkerEdit, Markers:IsMarkerNormal,Markers:IsRegionEditRegion-improved checking for validity of parameters
  • Markers:IsRegionPodrange-improved checking for validity of parameters
  • Markers:MoveMarkersBy-did move regions as well, though I claimed the opposite..oops -> fixed

Last edited by mespotine; 04-03-2019 at 09:12 AM.
mespotine is offline   Reply With Quote
Old 02-27-2019, 10:33 AM   #123
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

  • MediaItem:GetMediafileAttributes-added info into the docs about rpp-projects, which will create a proxy file, when getting the mediafile-attributes
  • MediaItem:InsertMediaItemFromFile-added MediaTrack and the new editcursorposition as retvals; the latter used to be third retval without being documented as such -> moved to the end of the retvals sorry for that inconvenience
  • MediaItems:GetNextClosestItemEdge-improved checking for validity of parameters
  • MediaItems:GetPreviousClosestItemEdge-improved checking for validity of parameters
  • MuteButtons:GetNextMuteState-improved checking for validity of parameters
  • MuteButtons:GetPreviousMuteState-improved checking for validity of parameters
  • MuteButtons:ToggleMute-improved checking for validity of parameters
  • MuteButtons:ToggleMute_TrackObject-improved checking for validity of parameters
  • Navigation:JumpBackwardBy-improved checking for validity of parameters
  • Navigation:JumpBackwardBy_Recording-improved checking for validity of parameters
  • Navigation:JumpForwardBy-improved checking for validity of parameters
  • Navigation:JumpForwardBy_Recording-improved checking for validity of parameters
  • ProjectManagement:GetAllLockedTracks-improved checking for validity of parameters
  • ProjectManagement:GetAllSelectedTracks-improved checking for validity of parameters
  • ProjectManagement:GetProject_GetMarker-could produce a Lua-error, when filename was nil -> fixed
  • ProjectManagement:GetProject_GetRegion-could produce a Lua-error, when filename was nil -> fixed
  • ProjectManagement:GetProject_Length-fixed issue with projectfiles smaller than 1000 bytes, which couldn't be parsed
  • ProjectManagement:GetProject_MasterGroupFlagsHighS tate-improved checking for validity of parameters
  • ProjectManagement:GetProject_MasterGroupFlagsState-improved checking for validity of parameters
  • ProjectManagement:SetProject_RenderPattern-didn't save render-patterns with spaces in them properly
  • ReaperDocs:fixed tons of MarkDown-layout errors.
  • ReaperDocs:Functionnames-titles in the individual entries are not linked anymore, but rather the > at the left side of the title now
  • ReaperDocs:JS-extension-updated to 0.964
  • ReaperDocs:OscLocalMessageToHost-didn't show title -> fixed
  • ReaperDocs:SWS-updated to 2.10.1
  • ReaperDocs:updated to 5.97
  • Render:CreateRenderCFG_AIFF-returned the wrong render-cfg-string due a stupid typo -> fixed
  • Render:GetProject_RenderFilename-sometimes returned one " at the end -> fixed
  • Render:RenderProject_RenderCFG-if you use nil as renderfilename_with_path, it will render as renderfilename using the filename/renderpattern already set in the project didn't return correct filecount if rendering was canceled, leading to possible error-message -> fixed
  • Render:RenderProjectRegions_RenderCFG-if you use nil as renderfilename_with_path, it will render as renderfilename using the filename/renderpattern already set in the project
  • TrackStates:GetTrackAutomodeState-improved checking for validity of parameters
  • TrackStates:GetTrackAutoRecArmState-improved checking for validity of parameters
  • TrackStates:GetTrackBeatState-improved checking for validity of parameters
  • TrackStates:GetTrackBusCompState-improved checking for validity of parameters
  • TrackStates:GetTrackBypFXState-improved checking for validity of parameters
  • TrackStates:GetTrackFreeModeState-improved checking for validity of parameters
  • TrackStates:GetTrackGroupFlags_HighState-improved checking for validity of parameters
  • TrackStates:GetTrackGroupFlagsState-improved checking for validity of parameters
  • TrackStates:GetTrackHeightState-improved checking for validity of parameters
  • TrackStates:GetTrackIcon_Filename-improved checking for validity of parameters
  • TrackStates:GetTrackID-improved checking for validity of parameters
  • TrackStates:GetTrackINQState-improved checking for validity of parameters
  • TrackStates:GetTrackIPhaseState-improved checking for validity of parameters
  • TrackStates:GetTrackIsBusState-improved checking for validity of parameters
  • TrackStates:GetTrackLayoutNames-improved checking for validity of parameters when no layout available made a Lua-error -> fixed now
  • TrackStates:GetTrackLength-improved checking for validity of parameters
  • TrackStates:GetTrackLockState-improved checking for validity of parameters
  • TrackStates:GetTrackMainSendState-improved checking for validity of parameters
  • TrackStates:GetTrackMidiBankProgFn-improved checking for validity of parameters
  • TrackStates:GetTrackMidiColorMapFn-improved checking for validity of parameters
  • TrackStates:GetTrackMidiCTL-improved checking for validity of parameters
  • TrackStates:GetTrackMidiInputChanMap-improved checking for validity of parameters
  • TrackStates:GetTrackMIDIOutState-improved checking for validity of parameters
  • TrackStates:GetTrackMidiTextStrFn-improved checking for validity of parameters
  • TrackStates:GetTrackMuteSoloState-improved checking for validity of parameters
  • TrackStates:GetTrackName-improved checking for validity of parameters
  • TrackStates:GetTrackNChansState-improved checking for validity of parameters
  • TrackStates:GetTrackPanMode-improved checking for validity of parameters
  • TrackStates:GetTrackPeakColorState-improved checking for validity of parameters
  • TrackStates:GetTrackPerfState-improved checking for validity of parameters
  • TrackStates:GetTrackRecCFG-improved checking for validity of parameters
  • TrackStates:GetTrackRecState-improved checking for validity of parameters
  • TrackStates:GetTrackScore-improved checking for validity of parameters
  • TrackStates:GetTrackShowInMixState-improved checking for validity of parameters
  • TrackStates:GetTrackStateChunk_Tracknumber-improved checking for validity of parameters
  • TrackStates:GetTrackVolPan-improved checking for validity of parameters
  • TrackStates:GetTrackVUState-improved checking for validity of parameters
  • TrackStates:GetTrackWidth-improved checking for validity of parameters
  • TrackStates:SetTrackAutomodeState-improved checking for validity of parameters
  • TrackStates:SetTrackAutoRecArmState-improved checking for validity of parameters
  • TrackStates:SetTrackBeatState-improved checking for validity of parameters
  • TrackStates:SetTrackBusCompState-improved checking for validity of parameters
  • TrackStates:SetTrackBypFXState-improved checking for validity of parameters
  • TrackStates:SetTrackFreeModeState-improved checking for validity of parameters
  • TrackStates:SetTrackGroupFlags_HighState-improved checking for validity of parameters
  • TrackStates:SetTrackGroupFlagsState-improved checking for validity of parameters
  • TrackStates:SetTrackHeightState-improved checking for validity of parameters
  • TrackStates:SetTrackIcon_Filename-improved checking for validity of parameters; didn't add trackicon, when no image was set already -> fixed; when Iconfilename_with_path=nil, removes trackicon now
  • TrackStates:SetTrackID-improved checking for validity of parameters
  • TrackStates:SetTrackINQState-improved checking for validity of parameters
  • TrackStates:SetTrackIPhaseState-improved checking for validity of parameters
  • TrackStates:SetTrackIsBusState-improved checking for validity of parameters
  • TrackStates:SetTrackLayoutNames-improved checking for validity of parameters
  • TrackStates:SetTrackLockState-improved checking for validity of parameters
  • TrackStates:SetTrackMainSendState-improved checking for validity of parameters
  • TrackStates:SetTrackMidiBankProgFn-improved checking for validity of parameters
  • TrackStates:SetTrackMidiColorMapFn-improved checking for validity of parameters, setting filename to "" removes the MidiColorMap, now
  • TrackStates:SetTrackMidiCTL-improved checking for validity of parameters
  • TrackStates:SetTrackMidiInputChanMap-improved checking for validity of parameters; didn't set MidiInputChanMap -> fixed; removes now MidiInputChanMap, when InputChanMap=nil
  • TrackStates:SetTrackMIDIOutState-improved checking for validity of parameters
  • TrackStates:SetTrackMidiTextStrFn-improved checking for validity of parameters
  • TrackStates:SetTrackMuteSoloState-improved checking for validity of parameters
  • TrackStates:SetTrackName-improved checking for validity of parameters
  • TrackStates:SetTrackNChansState-improved checking for validity of parameters
  • TrackStates:SetTrackPanMode-improved checking for validity of parameters
  • TrackStates:SetTrackPeakColorState-improved checking for validity of parameters
  • TrackStates:SetTrackPerfState-improved checking for validity of parameters
  • TrackStates:SetTrackRecCFG-improved checking for validity of parameters
  • TrackStates:SetTrackRecState-improved checking for validity of parameters
  • TrackStates:SetTrackScore-improved checking for validity of parameters
  • TrackStates:SetTrackShowInMixState-improved checking for validity of parameters
  • TrackStates:SetTrackVolPan-improved checking for validity of parameters
  • TrackStates:SetTrackVUState-improved checking for validity of parameters
  • TrackStates:SetTrackWidth-improved checking for validity of parameters
  • Ultraschall Docs:functiontitles aren't links anymore, added a clickable symbol at the beginning of the title line of each function now
  • Ultraschall Docsrint, print2 and toboolean as well as all API-variables are now written in bold, as all other functions are
  • Windows:GetReaperWindowPosition_Left-using now the SetIniFileValue-function for getting the ini-file-value
  • Windows:GetReaperWindowPosition_Right-using now the SetIniFileValue-function for getting the ini-file-value
  • Windows:SetReaperWindowToSize-using now the SetIniFileValue-function for setting the ini-file-value

(More Cowbell)

Last edited by mespotine; 04-03-2019 at 09:11 AM.
mespotine is offline   Reply With Quote
Old 02-28-2019, 01:51 AM   #124
Ivannn Bennnettt
Human being with feelings
 
Join Date: Feb 2017
Posts: 275
Default

What a massive work! :O
Ivannn Bennnettt is offline   Reply With Quote
Old 02-28-2019, 05:03 AM   #125
doppelganger
Human being with feelings
 
Join Date: Feb 2017
Posts: 382
Default

omg, so much data processed, when should we wait for your own DAW? =)))
doppelganger is offline   Reply With Quote
Old 02-28-2019, 07:51 AM   #126
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

We at Ultraschall even thought about that to gain control over the hard to access-parts of Reaper, which would be easier with our own DAW for podcasting.

But we came up with the conclusion: everything we would love to have, is what Reaper already is

(and it's faster to write a workaround for hard to access stuff in Reaper, than doing the whole audio-stuff again, which is a nightmare to code, if it shall be cross-platform.)
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 02-28-2019, 07:52 AM   #127
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

For those, who have already installed this version 4.00beta 2.72, there's a hotfix available, that fixes a stupid bug I added in the last few minutes of preparing the release.

Synchronize it with your most favorite ReaPack

@cfillion
Thanks for ReaPack, it is great
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 03-09-2019, 05:07 AM   #128
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Updated Ultraschall-API 4.00 to beta 2.73

Get it using ReaPack: https://github.com/Ultraschall/ultra..._api_index.xml


[small]4.00 Beta 2.73: - "Radiohead - Bangers'n'Mash" - 9th of March 2019[/small]

Has now 800 functions, with 20 new ones
  • New HWNDs to get, like Render Queue, Preferences, Project Settings and more
  • Routing-Convenience Features to work better with Routing-stuff. Includes now MKVOL from/to DB-converter for that!
  • print3 outputs it's parameters to the Clipboard.
New features in 4.00beta2.73
  • Config: GetSetConfigAutoMute - gets/sets the automute-config-variable
  • Config: GetSetConfigAutoMuteFlags - gets/sets the automuteflags-config-variable
  • Config: GetSetConfigAutoSaveInt - gets/sets the autosaveint-config-variable
  • Config: GetSetConfigAutoSaveMode - gets/sets the autosavemode-config-variable
  • Helper: DB2MKVOL - converts a dB-value into its MKVOL-representation, which can be used by routing-functions for the volume
  • Helper: MKVOL2DB - converts a MKVOL-value(as used by volume in routing-settings) into its dB-representation
  • Helper: print3 - like print and print2, but puts the parameters into the clipboard instead
  • HWND: GetRenderQueueHWND - gets the HWND of the Render-Queue-window, if opened
  • HWND: GetProjectSettingsHWND - gets the HWND of the Project Settings-window, if opened
  • HWND: GetSaveLiveOutputToDiskHWND - gets the HWND of the Save Live Output To Disk-window, if opened
  • HWND: GetConsolidateTracksHWND - gets the HWND of the Consolidate Tracks-window, if opened
  • HWND: GetExportProjectMIDIHWND - gets the HWND of the Export Project MIDI-window, if opened
  • HWND: GetProjectDirectoryCleanupHWND - gets the HWND of the Project Directory Cleanup-window, if opened
  • HWND: GetBatchFileItemConverterHWND - gets the HWND of the Batch File/Item Converter-window, if opened
  • Routing: ClearRoutingMatrix - clears the routing-matrix, either completely or just parts of it(Send/Receive, HWOuts, MasterSends) including or excluding the Master-Track
  • Routing: GetAllHWOuts - returns a table with all HWOut-settings of all tracks of the current project
  • Routing: GetAllAUXSendReceive - returns a table with all Send/Receive-settings of all tracks of the current project
  • Routing: GetAllMainSendStates - returns a table with all MainSend(Master Send)-settings of all tracks of the current project
  • Routing: ApplyAllHWOuts - applies a table, as returned by GetAllHWOuts to all tracks. That way, you can easily alter HWOuts of multiple tracks in that table, before passing it to ApplyAllHWOuts
  • Routing: ApplyAllAUXSendReceives - applies a table, as returned by GetAllAUXSendReceive to all tracks. That way, you can easily alter AUXSendReceives of multiple tracks in that table, before passing it to ApplyAllAUXSendReceives
  • Routing: ApplyAllMainSendStates - applies a table, as returned by GetAllMainSendStates to all tracks. That way, you can easily alter MainSend(Master-Send)-states of multiple tracks in that table, before passing it to ApplyAllMainSendStates
Changes from 4.00beta2.72 to 4.00beta2.73
  • ChildScripts: Main_OnCommandByFilename - fixed bug with Scriptidentifier-creation
  • ChildScripts:MIDI_OnCommandByFilename - fixed bug with Scriptidentifier-creation
  • Config: GetIniFileValue - improved code
  • Config: SetIniFileValue - fixed bug that caused inifiles to explode in size
  • Docs: Reaper Api docs: Video Processor: corrected YET ANOTHER Markdown-f....p in the example code of chapter Coding Introduction
  • Docs: Reaper-Docs: updated to Reaper 5.972
  • Docs: Reaper-Api-docs: fixed further layout-problems with Markdown in some descriptions
    I really, really, really, really, really, really, really need to write my own MarkDown-dialect.
    It makes me nuts, having to deal with Markdown's ambiguities...
  • Routing: CountTrackAUXSendReceives - when track isn't found, it returns now an error-message
  • Routing: DeleteTrackAUXSendReceives - allows now to delete all AuxSendReceives of a track at once, when idx=-1
  • Routing: DeleteTrackHWOut - allows now to delete all HWOuts of a track at once, when idx=-1
  • Routing: GetTrackAUXSendReceives - had internal variable exposed -> fixed now
  • Routing: SetTrackHWOut - fixed bug with an incorrect idx-numbering
  • Routing: SetTrackAUXSendReceives - fixed bug with an incorrect idx-numbering
  • Script-Identifier: Ultraschall.ScriptIdentifier - fixed bugs with Scriptidentifier-creation
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635

Last edited by mespotine; 04-03-2019 at 09:02 AM.
mespotine is offline   Reply With Quote
Old 03-09-2019, 08:10 AM   #129
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,830
Default

Quote:
Originally Posted by mespotine View Post
Anyone in need of helper functions for every day Reaper-programming?
Now it's time for such feature-requests, as I'm working on the next Ultraschall-Api-update.
Do these exist?
PHP Code:
-getMidiMapping()  <- parameter,value,mode
-setMidiMapping      (parameter,value,mode
TonE is offline   Reply With Quote
Old 03-09-2019, 08:17 AM   #130
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Do you know, where the Midi-Mappings are stored? StateChunks, functions to access MidiMappings or something?

Edit: Oh and could you point me to the place in Reaper, where I can set the MidiMappings, dialog, ui-element, etc? I'm not using Midi that much, so I'm not experienced with that.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 03-09-2019, 09:42 AM   #131
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,830
Default

Yes, I know, I hope this link helps.
https://forum.cockos.com/showthread.php?t=218108
which leads to
https://github.com/JoepVanlier/Hacke...ines/issues/17

In short it is using this:
PHP Code:
PARMLEARN 0 19376 1 for your VST(iparameter
-- the 0 is the parameter number
-- the 19376 is the CC number and message type
-- the 1 is the Mode

now 19376 is 4bb0 in hexadecimal
,
4b is 75 in decimal (which was the CC number that I Learned),
Let us say that I want to change it to CC number 72,
72 in decimal is 48 in hexadecimal,
So the full hexadecimal number is 48b0,
48b0 in hexadecimal is 18608 in decimal.

FXID {...
<
PARMENV...

PARMLEARN 4 2960 0
WAK 0
BYPASS 0 0 
If you take a new project, add a new track, save as project1 without any midi mapping.
Then same project, map a single parameter, save as project2. Diff and you should see the added PARMLEARN with those three numbers, their meanings were explained above.
TonE is offline   Reply With Quote
Old 03-10-2019, 09:49 AM   #132
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Hmm..does that mean, the MIDI-Mapping is part of ReaMachines or is it part of Reaper itself?

And how do I map a parameter? A gif would be sufficient, that shows, where to click.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 03-10-2019, 10:50 AM   #133
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,830
Default

Quote:
Originally Posted by mespotine View Post
Hmm..does that mean, the MIDI-Mapping is part of ReaMachines or is it part of Reaper itself?

And how do I map a parameter? A gif would be sufficient, that shows, where to click.
Midi mapping is written into the .rpp file, so it is in the project file. How to map? Param, FX Parameter list, Learn, Wet (for example), then a window appears with the title MIDI/OSC Learn, if you turn a knob/slider or push a button in your midi controller, you will see its triggering value under Command. You can set further options via those checkboxes.
Added two new images here: https://github.com/JoepVanlier/Hacke...ines/issues/17

If you never used midi mapping or osc mapping, then you are not using most important part of Reaper, which allows converting a software to a hardware, at least for those controls which you mapped. The more the better, that is why this feature would help a lot.

Last edited by TonE; 03-10-2019 at 10:58 AM.
TonE is offline   Reply With Quote
Old 03-10-2019, 11:32 AM   #134
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Ok, looks promising. I see, what I can do. Will need some time to do it right, though.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 03-10-2019, 12:59 PM   #135
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,830
Default

Thanks a lot, sounds good.

As an example how to use those midi mappings, you could design track templates or project templates with ready mappings, keeping things simple, e.g. a project template containing 7 stem folders. kick, bass, snare, loops, chords, melody, fx. Those 7 stems you would design properly, which stem influencing which other, hierarchically, then adding 4 send fx on separate tracks A,B,C,D. Now you have 7 folders, plus 4 effects, from each folder you have a send to A,B,C,D. In those folders you could add as many midi mappings as you want, to all kind of stuff. The goal would be controling those 7 stems plus 4 send effects as good as possible, depending on what you want. This would be first half of the story. This you would design once and reuse multiple times, as long as you like this setup.

Second part would be having a set of tracks or recording or audio files, e.g. 50 wav files. Now you only would need to drag those tracks into the correct stem folder from above, then you could immediately have all your above mapped controls on those tracks. More detail is not needed, ok for editing maybe, but not for having fun, using hardware feel. The first part of this story would give you the fun side. Mutes, fade in, fade out, gate effects, reverb, delay, distort, filther

Last edited by TonE; 03-10-2019 at 01:05 PM.
TonE is offline   Reply With Quote
Old 03-20-2019, 10:12 AM   #136
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

A small teaser for the next version, which is due in mid-April:

ultraschall.GFX_GetMouseCap(), which allows you to get clickstates, including doubleclick and dragging in gfx-windows, without having to fiddle around with gfx.mouse_cap.

This will make doing gfx-stuff much much easier.

The following is a simple drawing tool, based upon that:

__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 03-30-2019, 02:26 PM   #137
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Another teaser for the next version. Maybe only useful for some, but I need that and thought, I'll add that for you too.

What am I talking about?

Well, a simple progress-bar for the ReaScript-console.

(the flickering in the image is due the screen-recording-process and isn't as bad in reality)

__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 03-31-2019, 05:42 AM   #138
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Posts: 2,724
Default

Thank you mespo!
__________________
My Reascripts forum thread | My Reascripts on GitHub | Stephan Römer - film composer
If you wish to donate for my scripts: please consider an organization like: animal shelter, doctors without borders, UNICEF, etc...
_Stevie_ is offline   Reply With Quote
Old 03-31-2019, 05:53 AM   #139
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,327
Default

You on fire mespotine !!!
deeb is offline   Reply With Quote
Old 04-02-2019, 10:04 AM   #140
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Another teaser:

Different font-styles for the ReaScript-console, including fixed-lengthstyle, underlined, bold, small, etc.

Haven't tested yet on Linux and Mac, but I hope it will work there as well.

__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-02-2019, 11:37 PM   #141
woodslanding
Human being with feelings
 
woodslanding's Avatar
 
Join Date: Mar 2007
Location: Denver, CO
Posts: 391
Default

Okay, I've started using some of your functions and so far they are working well! Thanks!!!

I am having a problem with GetUserInputs though. It does not scale the window to fit my strings. So a FR would be to look at the size of the strings, and scale the window accordingly! Or at least allow it to be resized.

Fr nw I cn jst abrv th txt so it wl ft n th wndw!

Well no, even that doesn't work, because only the first 4 items fit in the window.

EDIT: USER ERROR!!! So abrev wl wrk!

And (getting super nit-picky) why not have a default size for the last parameter, so's not to require one? I really thought that parameter would be optional.... (thanks to ShowLastErrorMessage for helping me figure that out!)

Code:
    local BANK_NAME,NEW_BANK,BANK_COLOR,MSB,
            PRESET_TYPE,FILTER,SORT = 1,2,3,4,5,6,7
    local captions = {}
    captions[BANK_NAME] = "Bank Name"
    captions[NEW_BANK] = "New Bank? yes or no ('no' replaces existing bank)"
    captions[BANK_COLOR] = "Bank Color (#0x0x0x) leave blank for unchanged"
    captions[MSB] = "MSB (Kontakt:1,Reaktor:2,Instrument:3,Effect:4)"
    captions[PRESET_TYPE] = "Preset Type (rpl or vst)"
    captions[FILTER] = "Include only presetWindow containing:"
    captions[SORT] = "Alphabetize? yes or no"
    local defaults = {} 
    for i = 1,7 do  
        defaults[i] = " " 
    end
    local found,count,userInput = ultraschall.GetUserInputs("Bank Settings",captions,defaults,120)
    --ultraschall.ShowLastErrorMessage()
__________________
eric moon
Very Stable Genius
https://gogolab.com/
woodslanding is offline   Reply With Quote
Old 04-03-2019, 09:01 AM   #142
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Thanks, I'll look into your remarks and they'll help very much.

I'm currently also looking into getting rid of the comma-separator-problem, that GetUserInputs imposes upon us, but this will probably not be in the next release.

By the way, there's an alternative in the API for printing stuff into the console:

print("myText", "optional further text", "I can print as much as I like")

Edit: I should read posts more in detail, as my last comment regarding print didn't relate to your post at all
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635

Last edited by mespotine; 04-04-2019 at 09:11 AM.
mespotine is offline   Reply With Quote
Old 04-03-2019, 09:13 AM   #143
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

By the way, I improved formatting of the last two ChangeLogs, as far as they fitted into the 10k-characterlimit in posts

It should be far better to digest now.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-04-2019, 09:13 AM   #144
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

@woodslanding

Default-length will be in the next release. Regarding a longer window for the caption, I'm not sure, if I can do that at all, as I try to fiddle around with Reaper's own GetUserInputs-function.

But I'll look into that, I may come up with something...
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-04-2019, 11:33 AM   #145
woodslanding
Human being with feelings
 
woodslanding's Avatar
 
Join Date: Mar 2007
Location: Denver, CO
Posts: 391
Default

Quote:
Originally Posted by mespotine View Post
@woodslanding

Default-length will be in the next release. Regarding a longer window for the caption, I'm not sure, if I can do that at all, as I try to fiddle around with Reaper's own GetUserInputs-function.

But I'll look into that, I may come up with something...
Hey, I was trying to put the owner's manual into the title strings It will just need to be a separate document. If I ever really get serious, I could make a real gui for it.

Thanks anyway, lots of other stuff working great!!

Is the reaper console font change available yet? I just find it extremely unhelpful that the default font is not monospaced...
__________________
eric moon
Very Stable Genius
https://gogolab.com/
woodslanding is offline   Reply With Quote
Old 04-05-2019, 05:19 AM   #146
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

I'll release the next version next week, if everything works according to plan.
Just need to add a last fix and check, whether certain functions behave properly on Mac too.
Especially the Console-Fontstyle-function needs that check, but I think, it'll work.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-06-2019, 08:59 PM   #147
woodslanding
Human being with feelings
 
woodslanding's Avatar
 
Join Date: Mar 2007
Location: Denver, CO
Posts: 391
Default

Once again great work on this!!

One big reason I use these methods rather than their reaper counterparts is that the documentation is so much better. A lot of hard work on that, thanks!!!

One suggestion to further improve them:

I'm using all the sendReceive methods, and I've had to do a bit of trial and error to figure out which values are zero based, and which are 1- based. That would be helpful information to have, anywhere you have a count of things, given that Reaper is generally zero-based, and Lua is generally 1-based.... Reaper itself is inconsistent on track numbers. Sometimes the master track is zero, other times it's the first track...

Thanks again!

cheers,
-eric
__________________
eric moon
Very Stable Genius
https://gogolab.com/
woodslanding is offline   Reply With Quote
Old 04-07-2019, 11:35 AM   #148
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Yeah, consistency is my big goal. Usually 0 is master-track and 1+ is track 1+

Same goes for projects: 0 for currently opened project, 1 to n is for the first to n'th project.

The next release will be a huge update on Routing in general, so things might become much easier to do

Quote:
I'm using all the sendReceive methods, and I've had to do a bit of trial and error to figure out which values are zero based, and which are 1- based.
Do you have one such example on that, like which function does not feature that information? I usually try to add such things to make stuf clearer, but I may have forgotten it in some places.
With the Ultraschall-API-functions at least, it should be described in detail, whereas it still is with gaps in my Reaper-API-docs.
I would love to add that before releasing the next version if it's missing in the US-API-docs, as I have mostly documented that stuff anyway.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-08-2019, 02:45 AM   #149
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 203
Default

Hi there,

Thank you Mespotine for your amazing work!

Some time ago i remember we talked about rendering regions within time selection. It was possible with your extension but the project needed to reload, which made it a no go here cause i always tax my cpu quite a lot.

I think that you mentioned you were working on a way to bypass the reloading thing back then. I have missed several updates on your extension so i am wondering if this is already possible with the current one.

Thanks again!
reapero is offline   Reply With Quote
Old 04-08-2019, 02:59 AM   #150
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

No yet, but it will be in the version I'll release at the end of may(according to my plans), which will be a huge rendering-update including everything you'll ever need and never thought of asking before

Rendering the currently opened project without having to reload it is a huge thing I'm still researching on, but I think, I can pull this off.

But first, I'll release the next update on wednesday, which has a heavy focus on conveniently programming the Routing-Matrix.

Edit: btw, there is now a way to install the latest update using ReaPack(just in case you missed that). Link is in the first post.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-08-2019, 05:37 AM   #151
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 203
Default

Awsomesauce!

Yeah i saw the Reapack update, its superconvenient! Thanks again

One other question: when running ultraschall.ApiTest() i see only the functions engine is active. But there´s a bunch of other stuff there: GFX Engine,GUI Engine,Video Engine,Audio Engine,Doc Engine..might i ask whats that? I guess we dont need that for our coding purposes but, you know, i am just curious.
reapero is offline   Reply With Quote
Old 04-08-2019, 06:23 AM   #152
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

In short: The future.

Check out the docs, you might see one or two things regarding that already ^^
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-09-2019, 07:27 AM   #153
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Tomorrow is release.
And today, two last teasers:

ultraschall.GetUserInputs can now accept commas in its inputfields. So, no csv-problems anymore:



And you can move now child-hwnds, relative to their parent-hwnds, which is much easier than having to deal with screen-coordinates and converting them.
(Linked, as the gif is quite big)
https://mespotin.uber.space/stuf/childhwnd-move3.gif
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-09-2019, 10:37 AM   #154
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,830
Default

I guess midi mapping also in future, maybe?
TonE is offline   Reply With Quote
Old 04-10-2019, 07:09 AM   #155
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

It's definately on my list, but needs more time on the documentation-side of things. Otherwise, functions working with Midi would become a mess to use.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-10-2019, 07:26 AM   #156
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Ultraschall Framework - Changelog

4.00 Beta 2.74: - "Talking Heads - Once in a Lifetime" - 10th of April 2019


Has now 822 functions, with 22 new ones

Available now at a ReaPack-index of your choice.
  • Routing - sped up the routing-functions by magnitudes, who also allow now using TrackStateChunks which can be faster than Reaper's own API-functions
  • GFX_GetMouseCap - this allows you to get mouse-states in gfx-windows, including doubleclick and drag. Much easier than to code it yourself using gfx.mouse_cap.
  • ultraschall.GetUserInputs - like reaper.GetUserInputs BUT you can safely type commas into its inputfields!
  • Progressbar - you can code now your own progressbar, including optionally showing it in the ReaScript-console
  • Move Child-HWND relative within their Parent-HWND - if you don't want to deal with screen-positions when moving around gui-elements, use GetChildSizeWithinParentHWND and MoveChildWithinParentHWND
  • Vertical Scroll - works now like a charm
  • Improved Changelog - will be much more readable for this and future releases
  • Bugfixes and many more.
New features in 4.00beta2.74
  • AudioManagement: GetHWInputs_Aliasnames - returns the input-alias-names and their associated hardware-input-channels
  • AudioManagement: GetHWOutputs_Aliasnames - returns the output-alias-names and their associated hardware-output-channels
  • ChildScripts: GetScriptIdentifier_Description - gets the description of your script
  • ChildScripts: SetScriptIdentifier_Description - sets a description for your script
  • ChildScripts: GetScriptIdentifier_Title - gets the title of your script; default is the filename
  • ChildScripts: SetScriptIdentifier_Title - sets the title of your script
  • ExampleScript: Helpers_ProgressBar_Example.lua - shows a simple progressbar in the ReaScript-console, that iterates over all filenames in ResourcePath/Effects
  • ExampleScript: Helpers_ProgressBar_Example.gif - a demo-gif of ProgressBar_Example.lua
  • ExampleScript: GFX_SimpleDrawingTool.lua - a simple drawing-tool demo, that demonstrates GFX_GetMouseCap()
  • ExampleScript: GFX_SimpleDrawingTool.gif - a demo-gif of SimpleDrawingTool.lua
  • GFX: GFX_GetMouseCap - checks and returns mouse-clicks in Lua-gfx-windows, including doubleclick, dragging, mousewheel-states, etc. Much more handy than gfx.mouse_cap.
  • Helpers: ConvertIntegerIntoString2 - converts multiple integers into a string, 8 to 32 bit integers can be converted
  • Helpers: ConvertStringToIntegers - converts a string into multiple integers; you can set the size of the integer
  • Helpers: print - prints its values to the ReaScript-console, separating the displayed parameters with newlines now
  • Helpers: print_update - prints its values to the ReaScript console, but clears the console before displaying. Good for progressbars and displaying a few statuses without constantly scrolling.
  • Helpers: PrintProgressBar - prints a simple progressbar into the ReaScript-console; you should call ResetProgressBar before starting a new progressbar
  • Helpers: ResetProgressBar - resets progressbar-settings, so you can start a new progressbar
  • HWND: GetChildSizeWithinParentHWND - gets dimensions of a childhwnd relative to the position of a parenthwnd
  • HWND: MoveChildWithinParentHWND - moves a childhwnd relative or absolute within its parenthwnd
  • MediaItems: CopyMediaItemToDestinationTrack - copies a MediaItem to a destinationtrack at position. Thanks to nikolalkc for allowing me to adapt his function
  • Routing: AreAUXSendReceivesTablesEqual - compares two AllAUXSendReceives-tables, as returned by GetAllAUXSendReceives and GetAllAUXSendReceives2
  • Routing: AreHWOutsTablesEqual - compares two AllHWOuts-tables, as returned by GetAllHWOuts and GetAllHWOuts2
  • Routing: AreMainSendsTablesEqual - compares two AllMainSends-tables, as returned by GetAllMainSendStates and GetAllMainSendStates2
  • TrackManagement: GetTracknumberByGuid - gets a tracknumber and MediaTrack-object by guid
  • UserInterface: SetVerticalRelativeScroll - like SetVerticalScroll but sets the arrange-vertical-scroll, relative to it's current vscroll-position
  • Ultraschall: GetTypeOfTrack - returns the type of a track, either StudioLink/StudioLinkOnAir or SoundBoard
  • Ultraschall: GetAllAUXSendReceives2 - like GetAllAUXSendReceives, but returns type of track as well
  • Ultraschall: GetAllHWOuts2 - like GetAllHWOuts, but returns type of track as well
  • Ultraschall: GetAllMainSendStates2 - like GetAllMainSendStates, but returns type of track as well
  • Ultraschall: IsTrackSoundboard - returns, if a track is a valid Ultraschall-Soundboard-track
  • Ultraschall: IsTrackStudioLink - returns, if a track is a valid StudioLink-track
  • Ultraschall: IsTrackStudioLinkOnAir - returns, if a track is a valid StudioLinkOnAir-track
Changes from Beta 2.73 to Beta 2.74
  • Docs: Functions reference - added pan-law info to the descriptions for many routing-functions
  • Docs: GetLastCursorPosition - added info about limitations in Reaper
  • Docs: GetScriptIdentifier - moved in the index to Api-Helper functions -> Child Scripts, where it belongs to
  • Docs: GetScriptReturnvalues - corrected docs and cleared them up a little
  • Docs: ReaperApidocs and ConfigVar-docs: updated to Reaper 5.974 and JS-extension 0.980
  • Docs: ReaperApidocs: added info about JS_Mouse_GetState and fixed Markdown-issues with JS_Window_GetScrollInfo and JS_Window_SetScrollPos
  • Docs: Reaper-ConfigVars: added new settings in video_colorspace from Reaper 5.972 and pre-release onlys to labelitems2, pooledenvtranstime and video_defimglen
  • Docs: relayouted changelog for beta 2.72 upwards, the featurelist should be better readable, now
  • Docs: SetVerticalZoom - added info into description about how to do relative-vertical-zoom
  • ExampleScript: renamed the scripts and demogifs, so the names reflect more, of what category the scripts are; removed Track/Item-extstate scripts, as this feature is deprecated
  • ExtStates: GetTrackExtState - deprecated, as Reaper will have that feature in a future version in better
  • ExtStates: SetTrackExtState - deprecated, as Reaper will have that feature in a future version in better
  • ExtStates: GetItemExtState - deprecated, as Reaper will have that feature in a future version in better
  • ExtStates: SetItemExtState - deprecated, as Reaper will have that feature in a future version in better
  • Helpers: print - renamed to print_alt, print itself now separates the parameters with newlines(not two spaces)
  • Helpers: SetTrackStateChunk_Tracknumber - undo parameter wasn't used properly -> fixed now
  • HWND: GetRenderToFileHWND - fixed bug, that sometimes caused the function not to find the RenderToFile-window
  • HWND: IsValidHWND - shouldn't crash anymore on Mac, when passing a non-existing HWND.
  • Routing: ApplyAllHWOuts - sped up code by magnitudes; allows now setting the HWOut-table by guid; that way, you can apply stored hwouts correctly, even if trackorder changes
  • Routing: ApplyAllAUXSendReceives - sped up code by magnitudes; allows now setting the HWOut-table by guid; that way, you can apply stored routings correctly, even if trackorder changes
  • Routing: ApplyAllMainSendStates - fixed error in docs; allows now setting the HWOut-table by guid; that way, you can apply different MainSends correctly, even if trackorder changes
  • Routing: AddTrackHWOut - rewritten, is much faster now and supports now adding to trackstatechunks as well; removed useless parameter undo
  • Routing: AddTrackAUXSendReceives - rewritten, is much faster now and supports now adding to trackstatechunks as well; removed useless parameter undo
  • Routing: CountTrackHWOuts - allows now TrackStateChunks as well
  • Routing: CountTrackAUXSendReceives - allows now TrackStateChunks as well
  • Routing: DeleteTrackAUXSendReceives - sped up; supports now deleting from TrackStateChunks as well; removed useless parameter undo
  • Routing: DeleteTrackHWOut - sped up; supports now deleting from TrackstateChunks as well when tracknumber=-1; removed useless parameter undo
  • Routing: GetAllHWOuts - sped up; stores now the guids of the track and the receive tracks as well; allows you to keep right tracks and receive-tracks, even if trackorder changes
  • Routing: GetAllAUXSendReceives - sped up; stores now the guid of the tracks as well; allows you to keep right track, even if trackorder changes
  • Routing: GetAllMainSendStates - sped up; stores now the guid of the tracks as well; allows you to keep right track, even if trackorder changes
  • Routing: GetTrackAUXSendReceives - sped up; supports now getting from TrackstateChunks as well when tracknumber=-1
  • Routing: GetTrackHWOut - sped up; supports now getting from TrackstateChunks as well when tracknumber=-1
  • Routing: GetTrackMainSendState - sped up execution when not working with TrackStateChunks
  • Routing: SetTrackMainSendState - sped up execution when not working with TrackStateChunks; returns changed TrackStateChunk now only, when working with TrackStateChunks
  • Routing: SetTrackAUXSendReceives - sped up execution; supports now TrackStateChunks as well, when tracknumber=-1; removed useless parameter undo
  • Routing: SetTrackHWOut - sped up execution; supports now TrackStateChunks as well, when tracknumber=-1; removed parameter undo, as it useless, now
  • StateChunks: GetTrackStateChunk_Tracknumber - forgot to remove retval "overflow" from docs -> fixed
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-10-2019, 07:28 AM   #157
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

  • UserInterface: GetUserInputs - you can now enter commas into inputfields; parameter length renamed to values_length and is now optional; nil for default length 10; -1 for autolength; requested by woodslanding
  • UserInterface: GetVZoom - renamed to GetVerticalZoom for better readability, sorry for any inconvenience
  • UserInterface: SetVZoom - renamed to SetVerticalZoom for better readability, sorry for any inconvenience
  • UserInterface: SetVerticalScroll - last minute changes prevented the parameter from being passed to the function -> fixed
  • Ultraschall: CountUltraschallEffectPlugins - removed, as it was useless
  • Ultraschall: pause_follow_one_cycle - moved to Ultraschall Specific in the index of the docs



Next update will be Rendering only!
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 04-10-2019, 08:55 AM   #158
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 203
Default

Thx Mespotine!
reapero is offline   Reply With Quote
Old 04-10-2019, 03:23 PM   #159
woodslanding
Human being with feelings
 
woodslanding's Avatar
 
Join Date: Mar 2007
Location: Denver, CO
Posts: 391
Default

Quote:
Originally Posted by mespotine View Post
Yeah, consistency is my big goal. Usually 0 is master-track and 1+ is track 1+

Same goes for projects: 0 for currently opened project, 1 to n is for the first to n'th project.

The next release will be a huge update on Routing in general, so things might become much easier to do



Do you have one such example on that, like which function does not feature that information? I usually try to add such things to make stuf clearer, but I may have forgotten it in some places.
With the Ultraschall-API-functions at least, it should be described in detail, whereas it still is with gaps in my Reaper-API-docs.
I would love to add that before releasing the next version if it's missing in the US-API-docs, as I have mostly documented that stuff anyway.
Well none of the send receive stuff says whether 0 is master or track 1. Nor does it say whether the send indexes start at 0 or 1.

Ironic that reaper functions say 'send' but work on sends or receives, and yours say 'sendreceive' but only work on receives. Clearer naming would be helpful. Putting 'send' in the name of a function that only works on receives is definitely confusing.

Here's what I feel like the help should look like for DeleteTrackAuxSendReceive. Starting with renaming it:
Code:
DeleteTrackReceive

Functioncall:
boolean retval = ultraschall.DeleteTrackReceive(integer tracknumberFrom1, integer receiveIdxFrom1, boolean undo)


Description:
Deletes the idxth (1-based) Receive Setting of tracknumber.
returns false in case of failure

Returnvalues:
 boolean retval 	true if it worked, false if it didn't. 

Parameters:
 integer tracknumber 	the number of the track, whose Receive you want (1-based)
 integer idx 	the number of the receive setting, that you want to delete (1-based)
 boolean undo 	shall this be set to undo(true) or not(false)
I'd also like a DeleteSend(sendtrack,rcvtrack) method....

Since I'm going nuts trying to use combinations of yours and reaper's send/receive stuff, (you only reference receieves, and sometimes I need to work with sends) and I keep ending up one index off on some call or other, maybe I'll wait for the update. I feel like I'm trying to write your update for myself, and my suspicion is that you will do a much better job of it
__________________
eric moon
Very Stable Genius
https://gogolab.com/

Last edited by woodslanding; 04-10-2019 at 03:35 PM.
woodslanding is offline   Reply With Quote
Old 04-11-2019, 03:31 AM   #160
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 1,555
Default

Ah, ok.
The SendReceives don't work with the Master, only with regular tracks, so no track 0 available. Routing to the Master-Channel is MainSends.
But HWOuts work with Master-Channel as well.

I'll add that info to the next release.

Regarding the Sends-stuff, yeah, I'm thinking of it, but I still have problems getting my head around it. It's basically only a matter of changing the parameter-order, but it's complicated for me, as I normally never need to fiddle around with the RoutingMatrix.
I'll see, what I can do.


@all
BTW: I forgot to update the ReaPack-index file. Now the new version is online.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:07 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.