Ultraschall Framework - Changelog
5 - "Eels - Novocaine for the Soul" - 9th of August 2024
Has now 1807 functions, with 144 new ones
Note: requires at least Reaper 7.03 now!
new in this release:
ReaGirl - an accessible gui-library
One and a half years in the making, I've finally added ReaGirl, an accessible gui-library for Reaper. It allows you to easily code your own guis with labels, checkboxes, buttons, drop down menus, sliders, images and tabs.
Open the docs with the action "ReaGirl_Help_Introduction_Concepts_Tutorials_Documentation.lua" to read, how to work with it.
Preview MIDI-functions
You can preview now midi-notes, cc, pc and pitch in a certain track with dedicated functions for it.
Lane functions
Various functions around the new track-lane-features of Reaper.
Project pos 2 Take-pos 2 Project pos
Functions to get the take-position at a certain project position and the project-position at a take position. Used to be in there in an earlier version and reappear now, due to a bugfix in Reaper.
New features in 5
- Helpers: SplitReaperString - splits a Reaper-string into its components.
- Item: GetItemYPos - Returns position and height of the MediaItem in a fixed item lane/free item positioning.
- Items: MediaItem_GetAllVisibleTransients_ActiveTake - returns the number and positions of visible transients of the active take of a MediaItem.
- Lanes: GetTrackFixedLanesState - returns Fixed Lanes-state.
- Lanes: GetTrackLaneNameState - returns Lanes name-state.
- Lanes: GetTrackLaneRecState - returns Lanes rec-state.
- Lanes: GetTrackLaneSoloState - returns Lanes solo-state.
- Lanes: ItemLane_Count - returns the number of item-lanes in a track
- Lanes: ItemLane_GetAllMediaItems - returns the MediaItems from an item-lanes in a track between start_position and end_position
- Lanes: ItemLane_GetFromPoint - returns the MediaTrack and the item-lane at a screen-coordinate
- Lanes: ItemLane_GetPositionAndHeight - returns the position and height of an item-lanes in a track
- Markers: RippleCut_Regions_Reverse - ripple cuts regions before startposition and moves them towards project-end
- MIDI: PreviewMidiCCInTrack - previews a midi-cc in a specific armed track
- MIDI: PreviewMidiNoteInTrack - previews a midi-note in a specific armed track
- MIDI: PreviewMidiPCInTrack - previews a midi-pc in a specific armed track
- MIDI: PreviewMidiPitchInTrack - previews a midi-pitch in a specific armed track
- ReaGirl: AtEnter - Adds a function that shall be run when someone hits Enter while the gui is opened.
- ReaGirl: AutoPosition_SetNextUIElementRelativeTo - Set the auto-positioning starting point to the position of a certain ui-element.
- ReaGirl: Background_GetSetColor - Gets/Sets the color of the background.
- ReaGirl: Base64_Decoder - Converts a Base64-encoded string into a normal string.
- ReaGirl: Base64_Encoder - Converts a string into a Base64-Encoded string.
- ReaGirl: Button_Add - Adds a button to a gui.
- ReaGirl: Button_GetDisabled - Gets a button's disabled(non clickable)-state.
- ReaGirl: Button_GetRadius - Gets a button's radius.
- ReaGirl: Button_SetDisabled - Sets a button as disabled(non clickable).
- ReaGirl: Button_SetRadius - Sets the radius of a button.
- ReaGirl: Checkbox_Add - Adds a checkbox to a gui.
- ReaGirl: Checkbox_GetCheckState - Gets a checkbox's current checked-state.
- ReaGirl: Checkbox_GetDisabled - Gets a checkbox's disabled(non clickable)-state.
- ReaGirl: Checkbox_SetCheckState - Sets a checkbox's state of the checkbox.
- ReaGirl: Checkbox_SetDisabled - Sets a checkbox as disabled(non clickable).
- ReaGirl: Checkbox_SetWidth - sets width of a checkbox, which helps you with autopositioning
- ReaGirl: DropDownMenu_Add - Adds a dropdown-menu to a gui.
- ReaGirl: DropDownMenu_GetDimensions - Gets the width of a drop down menu.
- ReaGirl: DropDownMenu_GetDisabled - Gets a dropdown-menu's disabled(non clickable)-state.
- ReaGirl: DropDownMenu_GetMenuItems - Gets a dropdown-menu's menu-items and the index of the currently selected menu-item.
- ReaGirl: DropDownMenu_SetDimensions - Sets the width of a dropdownmenu.
- ReaGirl: DropDownMenu_SetDisabled - Sets a drop down menu as disabled(non clickable)-state.
- ReaGirl: DropDownMenu_SetMenuItems - Sets a dropdown-menu's menuitems and the index of the currently selected menu-item.
- ReaGirl: Ext_Tab_SetSelected - sets a tab of specific ReaGirl-gui-window focused
- ReaGirl: Ext_Window_Focus - sets focus to an opened ReaGirl-gui-window
- ReaGirl: Ext_Window_GetState - gets the position, current dimensions and dock-state of an opened/previously opened ReaGirl-window
- ReaGirl: Ext_Window_IsOpen - gets, if a specific ReaGirl-gui-window is currently opened
- ReaGirl: Ext_Window_ResetToDefault - resets a ReaGirl-Gui-Window to its default dimensions and dockstate
- ReaGirl: Ext_Window_SetState - gets the current dimensions and dock-state of an opened/previously opened ReaGirl-window
- ReaGirl: GetVersion - Returns the version-number of the installed ReaGirl.
- ReaGirl: Gui_AtExit - Adds a function that shall be run when the gui is closed with reagirl.Gui_Close()
- ReaGirl: Gui_Close - Closes the gui-window.
- ReaGirl: Gui_ForceRefresh - Forces a refresh of the gui.
- ReaGirl: Gui_GetBoundaries - Returns the current boundaries of the ui-elements. Means, from 0 to the the farthest ui-element-width/height at right/bottom edge of the gui-window.
- ReaGirl: Gui_IsOpen - Checks, whether the gui-window is open.
- ReaGirl: Gui_Manage - Manages the gui-window.
- ReaGirl: Gui_New - Creates a new gui by removing all currently(if available) ui-elements.
- ReaGirl: Gui_Open - Opens a gui-window. If x and/or y are not given, it will be opened centered.
- ReaGirl: Gui_PreventCloseViaEscForOneCycle - Prevents the closing of the gui via esc-key for one defer-cycle.
- ReaGirl: Gui_PreventEnterForOneCycle - Prevents the user from hitting the enter-key for one cycle, so the run-function for the enter-key is not run in this cycle.
- ReaGirl: Gui_PreventScrollingForOneCycle - Prevents the scrolling of the gui via keyboard/mousewheel/swiping for this defer-cycle.
- ReaGirl: Image_Add - Adds an image to the gui. This image can run a function when clicked on it.
- ReaGirl: Image_ClearToColor - Clears the image with a set r-g-b-color. It also clears the previously loaded image-filename.
- ReaGirl: Image_GetDimensions - Gets the width and height of an image.
- ReaGirl: Image_GetDraggable - Gets the current draggable state of an image.
- ReaGirl: Image_GetImageFilename - Returns the filename of the currently loaded image.
- ReaGirl: Image_KeepAspectRatio - Set if the image shall keep its aspect ratio when shown.
- ReaGirl: Image_Load - Loads a new image-file of an existing image in the gui.
- ReaGirl: Image_ReloadImage_Scaled - Realoads an image.
- ReaGirl: Image_SetDimensions - Sets the width and height of an image.
- ReaGirl: Image_SetDraggable - Sets the current draggable state of an image.
- ReaGirl: Inputbox_Add - Adds an inputbox to a gui.
- ReaGirl: Inputbox_GetCursorOffset - Gets an inputbox's current cursor offset.
- ReaGirl: Inputbox_GetDisabled - Gets an inputbox's disabled(non clickable)-state.
- ReaGirl: Inputbox_GetPassword - gets an inputbox to show * instead of the text(for password entry, etc)
- ReaGirl: Inputbox_GetSelectedText - Gets an inputbox's currently selected text.
- ReaGirl: Inputbox_GetText - Gets an inputbox's current text.
- ReaGirl: Inputbox_SetDisabled - Sets an inputbox as disabled(non clickable).
- ReaGirl: Inputbox_SetEmptyText - Sets an inputbox's shown text when nothing has been input.
- ReaGirl: Inputbox_SetPassword - Sets an inputbox to show * instead of the text(for password entry, etc)
- ReaGirl: Inputbox_SetText - Sets a new text of an inputbox.
- ReaGirl: IsValidGuid - Checks, if guid is a valid guid. Can also be used for strings, that contain a guid somewhere in them(strict=false)
- ReaGirl: Label_Add - Adds a label to the gui.
- ReaGirl: Label_AutoBackdrop - sets a backdrop from label to underneath a specific ui-element
- ReaGirl: Label_GetAlignement - Gets the alignment of a label.
- ReaGirl: Label_GetDraggable - Gets the current draggable state of a label.
- ReaGirl: Label_GetBackdrop - Gets the backdrop of a label.
- ReaGirl: Label_GetFontSize - Gets the font-size of a label.
- ReaGirl: Label_GetStyle - Gets the style of a label.
- ReaGirl: Label_SetAlignment - Sets the font-size of a label.
- ReaGirl: Label_SetBackdrop - Sets the backdrop of a label.
- ReaGirl: Label_SetDraggable - Sets the current draggable state of a label.
- ReaGirl: Label_SetFontSize - Sets the font-size of a label.
- ReaGirl: Label_SetLabelText - Sets a new label text to an already existing label.
- ReaGirl: Label_SetStyle - Sets the style of a label.
- ReaGirl: Mouse_GetCap - Checks clickstate and mouseclick/wheel-behavior, since last time calling this function and returns their states.
- ReaGirl: NextLine - Starts a new line, when autopositioning ui-elements using the _add-functions.
- ReaGirl: ReserveImageBuffer - Reserves a framebuffer which will not be used by ReaGirl for drawing.
- ReaGirl: ResizeImageKeepAspectRatio - Resizes an image, keeping its aspect-ratio. You can set a background-color for non rectangular-images.
- ReaGirl: ScreenReader_SendMessage - sends a message to screen-reader users
- ReaGirl: Slider_Add - Adds a slider to a gui.
- ReaGirl: Slider_GetDefaultValue - Gets the current set value of the slider.
- ReaGirl: Slider_GetDimensions - Gets the width of a slider.
- ReaGirl: Slider_GetDisabled - Gets the current disability state of the slider.
- ReaGirl: Slider_GetEndValue - Gets the current set maximum-value of the slider.
- ReaGirl: Slider_GetStartValue - Gets the current set minimum-value of the slider.
- ReaGirl: Slider_GetValue - Gets the current set value of the slider.
- ReaGirl: Slider_ResetToDefaultValue - Resets the current set value of the slider to the default value.
- ReaGirl: Slider_SetDefaultValue - Sets the default value of the slider.
- ReaGirl: Slider_SetDimensions - Sets the width of a slider.
- ReaGirl: Slider_SetDisabled - Sets a slider disabled.
- ReaGirl: Slider_SetEndValue - Sets the maximum value of the slider.
- ReaGirl: Slider_SetStartValue - Sets the minimum value of the slider.
- ReaGirl: Slider_SetValue - Sets the current value of the slider.
- ReaGirl: Tabs_Add - Adds a tab to a gui.
- ReaGirl: Tabs_GetSelected - Gets the selected tab of a tabs-element.
- ReaGirl: Tabs_SetSelected - Sets the selected tab of a tabs-element.
- ReaGirl: Tabs_SetUIElementsForTab - Sets the ui-elements for a tab from a table.
- ReaGirl: UI_Element_GetFocusRect - gets the rectangle for focused ui-element. Can be used for custom ui-element, who need to control the focus-rectangle due some of their own ui-elements incorporated, like options in radio-buttons, etc.
- ReaGirl: UI_Element_GetFocused - Get the ui-element-guid, that is currently focused.
- ReaGirl: UI_Element_GetHovered - Get the ui-element-guid, where the mouse is currently.
- ReaGirl: UI_Element_GetSetCaption - gets/sets the caption of the ui-element
- ReaGirl: UI_Element_GetSetMeaningOfUIElement - gets/sets the meaningOfUI_Element of the ui-element, which will describe, how to use the ui-element to blind persons.
- ReaGirl: UI_Element_GetSetPosition - gets/sets the position of the ui-element
- ReaGirl: UI_Element_GetSetRunFunction - gets/sets the run_function of the ui-element, which will be run, when the ui-element is toggled
- ReaGirl: UI_Element_GetSetVisibility - gets/sets the hidden-state of the ui-element
- ReaGirl: UI_Element_GetSet_ContextMenu - gets/sets the context-menu and context-menu-run-function of a ui-element.
- ReaGirl: UI_Element_GetSet_DropZoneFunction - gets/sets the dropzone-run-function of a ui-element.
- ReaGirl: UI_Element_GetType - returns the type of the ui-element
- ReaGirl: UI_Element_IsElementAtMousePosition - returns, if ui-element with element_id is at mouse-position
- ReaGirl: UI_Element_Last_Element_Current_Position - Returns the x and y position as well as width and height of the last added ui-element.
- ReaGirl: UI_Element_Remove - Removes a ui-element.
- ReaGirl: UI_Element_SetFocusRect - sets the rectangle for focused ui-element. Can be used for custom ui-element, who need to control the focus-rectangle due some of their own ui-elements incorporated, like options in radio-buttons, etc.
- ReaGirl: UI_Element_SetFocused - Set an ui-element focused.
- ReaGirl: UI_Element_SetHiddenFromTable - Set ui-elements stored in a table to hidden or visible.
- ReaGirl: UI_Elements_OutsideWindow - returns, if any of the gui-elements are outside of the window and by how much.
- ReaGirl: Window_ForceSize_Maximum - Sets a maximum window size that will be enforced by ReaGirl.
- ReaGirl: Window_ForceSize_Minimum - Sets a minimum window size that will be enforced by ReaGirl.
- ReaGirl: Window_GetCurrentScale - Gets the current scaling-factor
- ReaGirl: Window_SetCurrentScale - Sets a new scaling-factor that overrides auto-scaling/scaling preferences
- ReaGirl: Window_SetFocus - Sets window focus back to the ReaGirl-gui-window.
- Rendering: CreateRenderCFG_RAW - Returns the render-cfg-string for the RAW-PCM-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini
- Rendering: CreateRenderCFG_RAW - creates a renderstring for RAW-renderformat
- Rendering: GetRenderCFG_Settings_RAW - Returns the settings stored in a render-cfg-string for RAW PCM.
- Rendering: GetRenderCFG_Settings_RAW - gets settings of a RAW-renderformat-renderstring
- Takes: GetProjectPosByTakeSourcePos - returns the project-position-representation of the source-position of a take.
- Takes: GetTakeSourcePosByProjectPos - returns the source-position of a take at a certain project-position. Will obey time-stretch-markers, offsets, etc, as well.
- Takes: TakeMarker_GetAllTakeMarkers - returns all take-markers of a MediaItem_Take, including project-position.
Changes from 4.9 to 5
- Developer Tools: State Inspector - restores the loaded slot when reopening; ini-file doesn't get overwritten anymore after updating US_API
- Developer Tools: Create_New_Script_With_Dialog.lua - uses ReaGirl now to do the gui, also accessible now
- Docs: open-docs-actions - didn't always open the docs -> fixed
- Editing: RippleCut - does now a standard fadein/out-time of 10ms; didn't move regions, markers and envelopes correctly -> fixed(thnx to lennardodavinci)
- Editing: RippleCut_Reverse - does now a standard fadein/out-time of 10ms; didn't move regions, markers and envelopes correctly -> fixed
- Envelopes: DeleteTrackEnvelopePointsBetween - inserts now envelope-points at "cut"-edges
- Envelopes: MoveTrackEnvelopePointsBy - didn't move first envelope-point in the envelope -> fixed
- Helpers: EditReaScript - allows now adding ReaGirl-basic structure to a script
- ProjectManagement: GetProject_RenderStems - added preserve startoffset and metadata-settings
- ProjectManagement: SetProject_RenderStems - added preserve startoffset and metadata-settings
- Rendering: AddRenderPreset - added preserve startoffset and metadata-settings
- Rendering: ApplyRenderTable_Project - added preserve startoffset and metadata-settings
- Rendering: ApplyRenderTable_ProjectFile - added preserve startoffset and metadata-settings
- Rendering: CreateNewRenderTable - added preserve startoffset and metadata-settings
- Rendering: GetRenderPreset - added preserve startoffset and metadata-settings
- Rendering: GetRenderTable_ProjectDefaults - added preserve startoffset and metadata-settings
- Rendering: SetRenderPreset - added preserve startoffset and metadata-settings
- UserInterface: GetHWND_ArrangeViewAndTimeLine - fixed possible edge-case bug that causes crashes of scripts
4.9 - "Depeche Mode - Everything Counts" - 30th of June 2023
Has now 1663 functions, with 13 new ones and two fewer ones(!)
new in this release:
ReaSpaghetti
Features bugfixes and additions that will make Ultraschall API compatible with Sexan's ReaSpaghetti coding-tool in the future.
Keep checking for ReaSpaghetti-updates for more details.
Razor Edit
You can now set and resize RazorEdits. The resizing is possible by setting a new length or resizing by a factor, like 0.5 for half or 2 for double the size.
New features in 4.9
- Docs: links and code-examples - added links to related functions as well as some first code-examples; can now add more very easily
- DocEngine: Docs_GetAllUSDocBlocsFromFile - loads all USDocBlocs from a file
- DocEngine: Docs_GetReaperApiFunction_Categories - returns the index-categories of a Reaper-function(including extensions)
- DocEngine: Docs_GetUSDocBloc_Examples - retrieves the code-example-attributes stored in a USDocBloc
- DocEngine: Docs_GetUltraschallApiFunction_Categories - returns the index-categories of an Ultraschall-function
- Envelopes: DeleteTrackEnvelopePointsBetween - removes all envelope-points between start and endposition
- RazorEdit: RazorEdit_GetBetween_Envelope - get all razor-edits of an envelope between start and endposition one or all razor-edits in a track
- RazorEdit: RazorEdit_GetBetween_Track - get all razor-edits of a track between start and endposition
- RazorEdit: RazorEdit_Resize_Envelope - resizes one or all razor-edits in an envelope
- RazorEdit: RazorEdit_ResizeByFactor_Envelope - resizes one or all razor-edits in an envelope by a factor(requested by Daniel Lumertz)
- RazorEdit: RazorEdit_Resize_Track - resizes one or all razor-edits in a track
- RazorEdit: RazorEdit_ResizeByFactor_Track - resizes one or all razor-edits in a track by a factor(requested by Daniel Lumertz)
- RazorEdit: RazorEdit_Set_Envelope - sets start/endposition of a razor-edit in an envelope
- RazorEdit: RazorEdit_Set_Track - sets start/endposition of a razor-edit in a track
Changes from 4.8 to 4.9
- Helper Functions: SFEM - crashed, when the occurred error happened not within a function -> fixed now
- DocEngine: Docs_GetAllUSDocBlocsFromString - returned nil in case of an error which was wrong; returns -1 now -> fixed now
- Docs: Reaper Internals - updated to Reaper 6.80
- Envelopes: MoveTrackEnvelopePointsBy - didn't properly move and cut envelope-points -> fixed
- MediaItems: RippleCut - didn't properly move and cut envelope-points; cut env-points in all tracks, not just the ones from trackstring -> fixed
- MediaItems: RippleCut_Reverse - didn't properly move and cut envelope-points; cut env-points in all tracks, not just the ones from trackstring -> fixed
- MediaItem_Takes: GetProjectPosByTakeSourcePos - removed from release, due a Reaper bug that might remove take-markers; will return when bug is fixed
- MediaItem_Takes: GetTakeSourcePosByProjectPos - removed from release, due a Reaper bug that might remove take-markers; will return when bug is fixed
- PodcastMetadata: GetPodcastContributorAttributesAsJSON - fix due fix in GetSetContributor_Attributes
- PodcastMetadata: GetSetContributor_Attributes - had wrong undocumented parameter in the function which is removed now; added "ctrb_role"
- PodcastMetadata: GetSetPodcastEpisode_Attributes - removed "epsd_tagline" and "epsd_author"
- PodcastMetadata: GetSetPodcast_Attributes - added "podc_tagline" and "podc_feed"
- PodcastMetadata: GetShownoteAttributesAsJSON - timestamp is now in hh:mm:ss:mss
- PodcastMetadata: PodcastMetadata_CreateJSON_Entry - did only do the first chapter, ignoring the rest; improved layout of JSON -> fixed
- RazorEdit: RazorEdit_Nudge_Track - index didn't count properly, when envelopes had razor-edits -> fixed now
4.8 - "Sparks - When do I get to sing my way" - 8th of April 2023
Has now 1652 functions, with 37 new ones
new in this release:
Docs-Find-functions
Added now a lot of functions to access the docs of a function directly via API.
You can also use the various Find-functions to search for functions matching certain words and slugs. With that, you can build your own API-search-tools. Oh: and you can search the Config-Vars too!
UTF8/string-functions for Lua
Various helperfunctions for dealing with strings and utf8-encoded strings. They'll be added to the string-module of Lua.
Store RenderTable as extstate
You can store and retrieve RenderTables from/to extstates and projextstates. So you can store multiple render-settings in a project.
So if you have different render-settings for different parts of your project, you can store and restore them now from extstates without having to spam the render-presets.
New features in 4.8
- Debug: Debug_ShowCurrentContext - calling this function returns/shows the current sourcefile, linenumber and function-context(for debug)
- HelperFunctions: ConvertIniStringToTable - converts a loaded ini-file into a table
- HelperFunctions: string.has_alphanumeric - returns if a string has a alphanumeric-character
- HelperFunctions: string.has_control - returns if a string has a control-character
- HelperFunctions: string.has_digits - returns if a string has a digit-character
- HelperFunctions: string.has_hex - returns if a string has a hex-character
- HelperFunctions: string.has_letter - returns if a string has a letter-character
- HelperFunctions: string.has_lowercase - returns if a string has a lowercase-character
- HelperFunctions: string.has_printable - returns if a string has a printable-character
- HelperFunctions: string.has_space - returns if a string has a space-character
- HelperFunctions: string.has_uppercase - returns if a string has a uppercase-character
- HelperFunctions: string.utf8_len - returns the length of an utf8-encoded string; works like string.len
- HelperFunctions: string.utf8_sub - gets the substring of an utf8-encoded string; works like string.sub
- Docs: Docs_FindReaperApiFunction_Pattern - searches for api-functions(including extensions) that follow a search pattern
- Docs: Docs_FindReaperConfigVar_Pattern - searches for configuration variables that follow a search pattern
- Docs: Docs_FindUltraschallApiFunction_Pattern - searches for Ultraschall Api-functions that follow a search pattern
- Docs: Docs_GetAllReaperApiFunctionnames - returns all reaper-API-functionnames existing in the docs(includes extensions)
- Docs: Docs_GetAllUltraschallApiFunctionnames - returns all Ultraschall-API-functionnames existing in the docs(includes extensions)
- Docs: Docs_GetReaperApiFunction_Call - returns the functioncall of a Reaper-API-function(includes extensions)
- Docs: Docs_GetReaperApiFunction_Description - returns the description of a Reaper-API-function(includes extensions)
- Docs: Docs_GetReaperApiFunction_Params - returns the parameters of a Reaper-API-function(includes extensions)
- Docs: Docs_GetReaperApiFunction_Retvals - returns the returnvalues of a Reaper-API-function(includes extensions)
- Docs: Docs_GetReaperApiFunction_Requires - returns the required dependencies of a Reaper-API-function(includes extensions)
- Docs: Docs_GetReaperApiFunction_Tags - returns the tags of a Reaper-API-function(includes extensions)
- Docs: Docs_GetUltraschallApiFunction_Call - returns the functioncall of a Ultraschall-API-function(includes extensions)
- Docs: Docs_GetUltraschallApiFunction_Description - returns the description of a Ultraschall-API-function(includes extensions)
- Docs: Docs_GetUltraschallApiFunction_Params - returns the parameters of a Ultraschall-API-function(includes extensions)
- Docs: Docs_GetUltraschallApiFunction_Retvals - returns the returnvalues of a Ultraschall-API-function(includes extensions)
- Docs: Docs_GetUltraschallApiFunction_Requires - returns the required dependencies of a Ultraschall-API-function(includes extensions)
- Docs: Docs_GetUltraschallApiFunction_Tags - returns the tags of a Ultraschall-API-function(includes extensions)
- Docs: Docs_LoadReaperApiDocBlocs - (re)loads the entries of the Reaper api-documentation
- Docs: Docs_LoadReaperConfigVarsDocBlocs - (re)loads the entries of the config-var-documentation
- Docs: Docs_LoadUltraschallApiDocBlocs - (re)loads the entries of the Ultraschall api-documentation
- Rendering: GetRenderTable_ExtState - gets a RenderTable stored in an extstate
- Rendering: GetRenderTable_ProjExtState - gets a RenderTable stored in a projextstate
- Rendering: SetRenderTable_ExtState - stores a RenderTable in an extstate
- Rendering: SetRenderTable_ProjExtState - stores a RenderTable in a projextstate
Changes from 4.75 to 4.8
- Docs: Reaper Internals - updated docs to Reaper 6.78, SWS 2.13.2.0, ReaFab 0.3.10, ReaImGui 0.8.5, ReaLlm 0.4.1 and added PeloReaper 2023.02.19
- FXManagement: SetFXStateChunk - didn't work properly on tracks without an existing FXChain -> fixed now(thanks to tompad)
4.75 - "Soundgarden - Black Hole Sun" - 19th of December 2022
Has now 1615 functions, with 25 new ones
new in this release:
AutoBypass settings
You can now get and set autobypass for projects as well as global preferences, using GetFXAutoBypassSettings and SetFXAutoBypassSettings.
You can also force autobypass for an fx, using GetFXAutoBypass_FXStateChunk and SetFXAutoBypass_FXStateChunk.
Better ErrorMessages
Error messages, returned by functions like SLEM() or SFEM, return now more information about, in which script the error happened, in which function exactly and the linenumber.
So debugging is much more easier now.
Resize of gfx-images
You can now resize gfx-images, load with gfx.loadimg, keeping aspect ratio, using GFX_ResizeImageKeepAspectRatio.
It's better for making images smaller than making them bigger(causes artifacts) but, you can do it now.
Only markers within timerange
The Count markers-functions allow now counting from start to end-position. That way you can get the exact number of markers within the range.
Rendering
supports now "Render stems pre-fader" and "Only render channels that are sent to parent" options; fixed various bugs with them too.
You can also get/set, if you want to output statistics-outfiles, using SetRender_SaveRenderStats and GetRender_SaveRenderStats.
PodcastMetaData
fixed various bugs, added contributors and websites and a way to export the podcast-metadata as JSON according to the PodMeta_v1-standard,
including setting them into ID3, APE, IXML and VORBIS-COMMENT-metadata storage of Reaper.
Bugfixes
New features in 4.75
- FXManagement: GetFXAutoBypass_FXStateChunk - sets autobypass state of an fx within an FXStateChunk
- FXManagement: GetFXAutoBypassSettings - gets current states of various autobypass-settings
- FXManagement: SetFXAutoBypass_FXStateChunk - sets autobypass state of an fx within an FXStateChunk
- FXManagement: SetFXAutoBypassSettings - gets current states of various autobypass-settings
- GFX-Functions: GFX_ResizeImageKeepAspectRatio - resizes a loaded image while keeping aspect ratio
- GFX-Functions: GFX_BlitText_AdaptLineLength - draws a text and resizes the the line-lengths so they fit into the width and height-parameters
- Helper functions: GetRandomString - returns a random generated string with characters (requested by ChatGPT) [p=2622707]
- PodcastMetadata: CountContributors - counts the podcast contributors stored in an opened project
- PodcastMetadata: GetChapterAttributesAsJSON get the metadata of a chapter as JSON
- PodcastMetadata: GetEpisodeAttributesAsJSON get the metadata of an episode as JSON
- PodcastMetadata: GetPodcastAttributesAsJSON get the metadata of a podcast as JSON
- PodcastMetadata: GetPodcastEpisodeAttributesPreset_Name - gets the name of an episode-metadata-preset
- PodcastMetadata: GetPodcastAttributePresetSlotByName - gets the preset-slot of podcast-presets by its name
- PodcastMetadata: GetEpisodeAttributePresetSlotByName - gets the preset-slot of episode-presets by its name
- PodcastMetadata: GetPodcastAttributesPreset_Name - gets the name of a podcast-metadata-preset
- PodcastMetadata: GetPodcastContributorAttributesAsJSON - gets the contributors as JSON
- PodcastMetadata: GetSetContributor_Attributes - gets/sets the attributes of an episode's contributor
- PodcastMetadata: GetSetPodcastWebsite - gets/sets websites for a podcast
- PodcastMetadata: GetShownoteAttributesAsJSON get the metadata of a shownote as JSON
- PodcastMetadata: PodcastMetadata_CreateJSON_Entry - creates entire podcast-metadata-entry as JSON according to PodMeta_v1-standard
- PodcastMetadata: PodcastMetaData_ExportWebsiteAsJSON - creates website's metadata as JSON
- PodcastMetadata: SetPodcastEpisodeAttributesPreset_Name - sets the name of an episode-metadata-preset
- PodcastMetadata: SetPodcastAttributesPreset_Name - sets the name of a podcast-metadata-preset
- Rendering: GetRender_SaveRenderStats - gets the save outfile.render_states.html-checkbox-state
- Rendering: SetRender_SaveRenderStats - sets the save outfile.render_states.html-checkbox-state
Changes from 4.7 to 4.75
- API: Modulator3000 - reverted speedup of the speedup, as it had trouble on 32-bit-machines -> thanks binbinfr
- Docs: updated to Reaper 6.72; config-variable-docs has improved index
- ErrorMessagingSystem: SLEM/ShowLastErrorMessage/SFEM - return now the function, linenumber and sourcefile, in which AddErrorMessage was called
- FXManagement: GetFXFromFXStateChunk - rewritten from scratch, should be more stable now
- MarkerManagement: CountAllCustomMarkers - allows now counting custom-markers within a start and end-time
- MarkerManagement: CountNormalMarkers - allows now counting normal markers within a start and end-time
- MarkerManagement: CountShownoteMarkers - allows now counting shownotes within a start and end-time
- MediaItemManagement: InsertMediaItemStateChunkArray - supports now inserting needed tracks, if the number of tracks<the number of tracks needed by the items to be inserted
- MediaItemManagement: RippleCut - had trouble with projects, where there's only one item on track 1 and no other tracks
- PodcastMetadata: GetSetChapterMarker_Attributes - supports now setting position "chap_position" and markertitle "chap_title"
- PodcastMetadata: GetSetPodcast_Attributes - can now get/store attributes either in the current project or a preset, not in both at the same time; removed websites; will be done by GetSetPodcastWebsite instead
- PodcastMetadata: GetSetPodcastEpisode_Attributes - can now get/store attributes either in the current project or a preset, not in both at the same time
- PodcastMetadata: GetSetShownoteMarker_Attributes - supports now attribute shwn_linked_audiovideomedia, which allows linking media directly with a time_stamp; supports now setting position "shwn_position" and markertitle "shwn_title"
- ProjectFiles: GetProject_RenderStems - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- ProjectFiles: SetProject_RenderStems - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: AddRenderPreset - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: ApplyRenderTable_Project - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options; didn't apply various settings -> fixed
- RenderManagement: ApplyRenderTable_ProjectFile - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: CreateNewRenderTable - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options; default RenderTable did return bool instead of integer for FadeOut_Shape -> fixed (thnx to aurelien)
- RenderManagement: GetRenderPreset_RenderTable - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: GetRenderTable_Project - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: GetRenderTable_ProjectDefaults - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: GetRenderTable_ProjectFile - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: IsValidRenderTable - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options
- RenderManagement: SetRenderPreset - supports now new "Render stems pre-fader" and "Only render channels that are sent to parent" options; fixed edge-cases that could prevent presets from being replaced with the new one
- TrackManagement: GetTrackGroupFlags - supports now Media/Razor-Edit Lead and Follow
- TrackManagement: GetTrackGroupFlags_HighState - supports now Media/Razor-Edit Lead and Follow
- TrackManagement: SetTrackGroupFlags - supports now Media/Razor-Edit Lead and Follow
- TrackManagement: SetTrackGroupFlags_HighState - supports now Media/Razor-Edit Lead and Follow
4.7 - "Pearl Jam - Alive" - 16th of October 2022
Has now 1590 functions, with 58 new ones
new in this release:
Marker Menu
You can code now your own left-click marker-context-menus. Add Entries with MarkerMenu_InsertEntry and MarkerMenu_InsertEntry_DefaultMarkers and start the menu with MarkerMenu_Start. You can add new menuentries or remove them during runtime. So if you add a new marker-menu-entry, it will be shown in the menu the next time the user hits left-click on a marker.
And: you can create menus for custom markers as well. So a custom marker called _ShowNote: can have a different menu than _AliceInWonderland: It also includes regions.
And action-marker.
ShowNote/Podcast Metadata
Relevant for podcasting use-cases, you can now add metadata to shownote/normal-markers as well as podcast/podcast-episode metadata.
Future versions will include export functions for putting them into the mediafile's metadata.
EventManager - Debug
New features for debugging EventManager stuff, like getting additional states and execution-times. So you can check for performance. And if you don't want to code one yourself: there's a EventManager monitoring-script in the developer-tools, which shows you the execution-times for each check-function-cycle AND the time from after the end of the execution-time until the next one.
This allows you to tweak performance for your check-functions. The monitoring-tool even gives you a hint, how low the execution-times
must be for Reaper's UI not lagging.
Get Project-time by MediaSource-time and the other way round
Get the exact project position from a given source-position or the exact source-position from a project-position.
So inserting take-markers at project-position is now possible. Or other cool stuff, where you need to convert the project-position into take-position.
ScaleFromDPIFromScale
You can convert now the dpi-value currently set into its corresponding scale-value vice versa. With that, you can always scale your script's ui properly.
Base64De/Encoder, ASCII2HEX2ASCII-enocders
Used to be slow on bigger strings. Not anymore. Sped up by magnitudes...
Create/Get-Render-CFG-functions
FFMPEG-support added, NONE as video/audio-format added, wmf-support added
Render functions
Support now marker-rendering and fade-in/out-feature
Bugfixes Bugfixes Bugfixes
New features in 4.7
- DeveloperTools: FindCurrentlyUsedExtstatesNamesInAFile - looks through a selected file and checks, whether its strings are currently used extstates
- DeveloperTools: Monitor Eventmanager - monitors the performance and some attributes of the Eventmanager, so you can optimize the registered events(requested by rstockm)
- DeveloperTools: MonitorRenderTable - monitors the entries of a RenderTable for the currently opened project
- EventManager: EventManager_Debug_GetAllActionRunStates - returns a table of, if the actions of a registered event were run in the last event-check-cycle or not
- EventManager: EventManager_Debug_GetExecutionTime - when debugmode is on, allows to get, how long the last run of checking for events did take in seconds(for benchmarking your eventcheck functions) - requested by rstockm
- EventManager: EventManager_GetAllEventIdentifier - returns a table with all event-identifiers of all currently registered events
- EventManager: EventManager_GetAllEventNames - returns a table with all event-names of all currently registered events
- EventManager: EventManager_GetEventPausedState - returns the paused states of a currently registered event
- FXManagement: GetFXByGuid - gets a fx by its guid
- FXManagement: TrackFX_GetAllGuidsFromAllTracks - returns all guids from all tracks of the current project
- FXManagement: TakeFX_GetAllGuidsFromAllTakes - returns all guids from all takes of the current project
- MarkerManagement: GetMarkerType - returns the type of a marker
- MarkerManagement: GetGuidFromCustomMarkerID - returns the guid from a custom-marker-index
- MarkerManagement: GetGuidFromCustomRegionID - returns the guid from a custom-region-index
- MarkerManagement: GetCustomMarkerIDFromGuid - returns the custom-marker-index and name from a guid
- MarkerManagement: GetCustomRegionIDFromGuid - returns the custom-region-index and name from a guid
- MarkerManagement: MarkerMenu_GetLastClickState - gets the last clickstate, when someone has clicked markers/regions with markermenu running
- MarkerManagement: MarkerMenu_GetLastTouchedMarkerRegion - gets the last clicked marker/region with markermenu running
- MarkerManagement: MarkerMenu_CountEntries - counts the number of entries in the markermenu for a specific custom marker/region
- MarkerManagement: MarkerMenu_CountEntries_DefaultMarkers - counts the number of entries in the markermenu for a specific default marker/region
- MarkerManagement: MarkerMenu_Debug - shows in the ReaScript-console debug-messages like the right-clicked-marker-type, when using the marker/region-hijack-script(see MarkerMenu_Start)
- MarkerManagement: MarkerMenu_GetAvailableTypes - gets the marker- and region-types, that are currently added to the marker-menu
- MarkerManagement: MarkerMenu_GetEntry - gets the action and description of a marker-entry for a certain custom-marker/region-type
- MarkerManagement: MarkerMenu_GetEntry_DefaultMarkers - gets the action and description of a marker-entry for a certain default-marker/region-type from Ultraschall
- MarkerManagement: MarkerMenu_GetLastClickedMenuEntry - gets the last clicked marker-menu-entry, including name, position, additional data and marker-type
- MarkerManagement: MarkerMenu_InsertEntry - inserts a new marker-entry into the marker menu for a custom marker/region
- MarkerManagement: MarkerMenu_InsertEntry_DefaultMarkers - inserts a new marker-entry into the marker menu for markers/regions of Ultraschall
- MarkerManagement: MarkerMenu_RemoveEntry - removes the action and description of a marker-entry for a certain custom-marker/region-type
- MarkerManagement: MarkerMenu_RemoveEntry_DefaultMarkers - removes the action and description of a marker-entry for a certain default-marker/region-type from Ultraschall
- MarkerManagement: MarkerMenu_RemoveSubMenu - removes a submenu from the marker-menu of a specific custom-marker/region
- MarkerManagement: MarkerMenu_RemoveSubMenu_DefaultMarkers - removes a submenu from the marker-menu of a specific default marker/region
- MarkerManagement: MarkerMenu_SetEntry - gets the action and description of a marker-entry for a certain custom-marker/region-type
- MarkerManagement: MarkerMenu_SetEntry_DefaultMarkers - sets the action and description of a marker-entry for a certain default-marker/region-type from Ultraschall
- MarkerManagement: MarkerMenu_SetStartupAction - sets a startup-action in the markermenu for a specific custom marker/region
- MarkerManagement: MarkerMenu_SetStartupAction_DefaultMarkers - sets a startup-action in the markermenu for a certain default-marker/region-type from Ultraschall
- MarkerManagement: MarkerMenu_Start - starts a background-script that hijacks the marker-context-menu when rightclicking markers/regions
- MarkerManagement: MarkerMenu_Stop - stops the background-script that hijacks the marker-context-menu when rightclicking markers/regions
- MarkerManagement: RenumerateNormalMarkers - renumerates the shown-number of all normal-markers
- MarkerManagement: RenumerateShownoteMarkers - renumerates the shown-number of all shownote-markers
- MediaItem_Takes: GetProjectPosByTakeSourcePos - gets the project-position of a take's source-position, obeying stretch-markers, offset, etc
- MediaItem_Takes: GetTakeSourcePosByProjectPos - gets the source-position of a take by the project-position, obeying stretch-markers, offset, etc
- MediaItemManagement: ToggleCrossfadeStateForSplits - toggles/sets the option for crossfades on splits of MediaItems
- Navigation: GetNextClosestItemEnd - gets the next closest item-end within given tracks and from a specific position(requested by Moritz Klenk)
- Navigation: GetNextClosestItemStart - gets the next closest item-start within given tracks and from a specific position(requested by Moritz Klenk)
- Navigation: GetPreviousClosestItemEnd - gets the previous closest item-end within given tracks and from a specific position(requested by Moritz Klenk)
- Navigation: GetPreviousClosestItemStart - gets the previous closest item-start within given tracks and from a specific position(requested by Moritz Klenk)
- PodcastMetadata: GetSetChapterMarker_Attributes - gets/sets metadata-attributes of a chapter-marker(using Ultraschall 4+ methods)
- PodcastMetadata: GetSetPodcast_Attributes - gets/sets metadata-attributes of a podcast
- PodcastMetadata: GetSetPodcastEpisode_Attributes - gets/sets metadata-attributes of a podcast-episode
- PodcastMetadata: GetSetShownoteMarker_Attributes - gets/sets additional attributes of a shownote-marker
- Rendering: ResolvePresetName - resolves the name of a preset into the correct case-sensitivity, as stored in reaper-render.ini
- Ultraschall: LUFS_Metering_AddEffect - adds the Ultraschall's LUFS Loudness Metering-JSFX
- Ultraschall: LUFS_Metering_GetValues - gets currently measured LUFS-values of Ultraschall's LUFS Loudness Metering-JSFX, when running
- Ultraschall: LUFS_Metering_MatchGain - hits programmaticaly the "Match Gain"-button of Ultraschall's LUFS Loudness Metering-JSFX, when running
- Ultraschall: LUFS_Metering_Reset - resets the measuring of Ultraschall's LUFS Loudness Metering-JSFX, when running
- Ultraschall: LUFS_Metering_SetValues - sets LUFS-target/Gain-values of Ultraschall's LUFS Loudness Metering-JSFX, when running
- Ultraschall: LUFS_Metering_ShowEffect - shows the Ultraschall's LUFS Loudness Metering-JSFX, when running
- UserInterface: GetReaperWindow_Position - returns the Reaper-window-position and various of its elements
- UserInterface: GetScaleRangeFromDpi - returns the scale-range a certain dpi-value has
- UserInterface: GetDpiFromScale - returns the dpi for a specific scale
Changes from 4.6 to 4.7
- API: cleanup - a lot of cleanup in codebase and improvements in stability for future enhancements
- API: Modulator3000 - readded api-load-speedup after I found out how to circumvent a bug in Reaper's Lua-implementation
- DeveloperTools: Create new script with dialog - allows now opening/adding already existing scripts; default path for scripts without path is now scripts-folder; scripts can also be copied from a different source into the scriptsfolder and then added(will only copy the chosen file, not possibly other ones!)
- DeveloperTools: GetPitchShiftModes - improved layout; crashed in my parser due addition of Rrreeeaaa -> fixed
- DeveloperTools: ItemStateChunk from Clipboard to item under mouse - copied statechunk into clipboard instead of setting it oooppsss -> fixed
- DeveloperTools: LangPack2Developer_langpack_converter - shows now conversion progress in ReaScript-console
- DeveloperTools: MonitorParmModulation - did crash, when a parameter-modulation was added after monitoring started -> fixed
- DeveloperTools: SortLinesInClipboardText - lost the last line before sorting -> fixed
- DeveloperTools: Theme Parameter Monitor - updates now the list immediately, when the current theme is changed
- DeveloperTools: Trackstatechunk from clip to track under mouse - copied trackstatechunk into clipboard instead of setting it -> fixed
- Docs: Reaper Internals - updated to Reaper 6.68 and ReaImGui 0.6.2, added the various misc-docs to a dedicated page in Reaper-Internals
- Docs: render-strings - updated to Reaper 6.62(includes wmf now and FFMPEG-command-line-options)
- Docs: misc_docs-folder/Reaper-Render-Strings-docs_Jul2018.txt - removed, due being outdated
- EventManager: EventManager_GetLastCheckfunctionState2 - improved speed
- EventManager: main script - stopping the eventmanager could have lead to an error message -> fixed(thanks to rstockm)
- HelperFunctions: Base64_Decoder - sped up massively for longer strings(up to 94% faster)
- HelperFunctions: Base64_Encoder - sped up massively for longer strings(up to 90% faster)
- HelperFunctions: ConvertAscii2Hex - sped up massively for longer strings
- HelperFunctions: ConvertHex2Ascii - sped up massively for longer strings
- Helperfunctions: OpenURL - did return true in case of success, though the docs state integer should be returned -> fixed now, returns 1
- MarkerManagement: AddEditMarker - added guid to name due old code forgotten to remove; some improvements on edittitle -> fixed now
- MarkerManagement: AddNormalMarker - adds a unique guid for this marker to be used for chapters markers in export
- MarkerManagement: AddShownoteMarker - adds a unique guid for this shownote to be used in export
- MarkerManagement: DeleteNormalMarker - did not correctly delete the first normal marker, when it was the first one in the project -> fixed
- MarkerManagement: EnumerateEditMarker - some improvements on edittitle
- MarkerManagement: GetMarkerByScreenCoordinates - returns now an additional retval with the marker-number(s); takes now scale-factor into account
- MarkerManagement: GetMarkerByTime - returns now an additional retval with the marker-number(s); takes now scale-factor into account
- MarkerManagement: GetRegionByScreenCoordinates - returns now an additional retval with the region-number(s)
- MarkerManagement: GetRegionByTime - returns now an additional retval with the region-number(s); takes now scale-factor into account
- MarkerManagement: GetShownoteMarkerIDFromGuid - did add error-messages to the error-messaging system without needing this -> fixed
- MarkerManagement: GetTemporaryMarker - marker_id should be 0-based -> fixed
- MarkerManagement: IsMarkerShownote - returns now the shownote-index as well
- MarkerManagement: SetEditMarker - some improvements on edittitle
- MarkerManagement: SetShownoteMarker - allows now setting the shown_number of a shownote as well
- MarkerManagement: StoreTemporaryMarker - supports now different positions(editcursor, play, mouse-position) to get the marker to store from; marker_id should be 0-based -> fixed
- MediaItemManagement: InsertMediaItemFromFile - rewritten from scratch and should work properly now; supports now insertion into last touched track and setting looped/locked state
- MediaItemManagement: RippleCut - supports now optional parameter to add crossfade to the edit(requested by NiklasM)
- MetaData: GetGuidExtState - didn't store extstates, when not using a guid as key -> fixed
- MetaData: SetGuidExtState - didn't store extstates, when not using a guid as key -> fixed
- Navigation: GetClosestNextMarker - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
- Navigation: GetClosestNextRegionEdge - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
- Navigation: GetClosestPreviousMarker - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
- Navigation: GetClosestPreviousRegionEdge - didn't return the index but rather shown number instead; returns now also shown number officially -> fixed
- ProjectManagement: GetProjectStateChunk - didn't work under certain circumstances on Linux/Mac -> fixed
- ProjectManagement: GetProject_Render_Normalize - supports now fade_in and fade_out rendering-modes
- ProjectManagement: SetProject_Render_Normalize - supports now fade_in and fade_out rendering-modes
- Rendering: AddRenderPreset - TailMS supported now as of Reaper 6.62+; supports now FadeIn/Out and marker-rendering
- Rendering: ApplyRenderTable_Project - supports now marker-rendering as well as fade-in/fade-out
- Rendering: ApplyRenderTable_ProjectFile - supports now marker-rendering as well as fade-in/fade-out
- Rendering: CreateNewRenderTable - supports now marker-rendering as well as fade-in/fade-out
- Rendering: CreateRenderCFG_AVI_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec; corrected docs
- Rendering: CreateRenderCFG_FLV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: CreateRenderCFG_MKV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: CreateRenderCFG_MPEG1_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: CreateRenderCFG_MPEG2_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec; corrected docs
- Rendering: CreateRenderCFG_QTMOVMP4_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: CreateRenderCFG_WebMVideo - renamed to CreateRenderCFG_WebM_Video(old functionname still available); supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: CreateRenderCFG_WMF_Video - renamed to CreateRenderCFG_WMF (old functionname is still available, though)
- Rendering: GetRender_AutoIncrementFilename - always returned true, when Render to File was closed -> fixed(thnx to aurelien)
- Rendering: GetRenderCFG_Settings_AVI_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: GetRenderCFG_Settings_FLV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: GetRenderCFG_Settings_MKV_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: GetRenderCFG_Settings_MPEG1_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: GetRenderCFG_Settings_MPEG2_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: GetRenderCFG_Settings_QTMOVMP4_Video - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: GetRenderCFG_Settings_WebMVideo - supports now audio/video FMPEG-export options; supports now NONE as Audio/VideoCodec
- Rendering: GetRenderPreset_RenderTable - TailMS supported now as of Reaper 6.62+; marker rendering and fade in/out supported; bounds and options-name are now case-insensitive -> (thanx to Malik)
- Rendering: GetRenderTable_ProjectDefaults - supports now marker-rendering as well as fade-in/fade-out
- Rendering: GetRenderTable_Project - supports now marker-rendering as well as fade-in/fade-out
- Rendering: GetRenderTable_ProjectFile - supports now marker-rendering as well as fade-in/fade-out
- Rendering: DeleteRenderPreset_Bounds - bounds-name is now case-insensitive -> (thnx to Malik)
- Rendering: DeleteRenderPreset_FormatOptions - options-name is now case-insensitive -> (thnx to Malik)
- Rendering: IsValidRenderTable - supports now FadeIn/Out and marker-rendering
- Rendering: RenderProject_RenderTable - didn't increment filename when rendering filename under certain circumstances -> fixed (thnx to aurelien)
- Rendering: SetRenderPreset - TailMS supported now as of Reaper 6.62+; supports now FadeIn/Out and marker-rendering; bounds and options-name are now case-insensitive -> (thnx to Malik)
- UltraschallConfigFiles: GetUSExternalState - did return nil when file did not exist, though docs claimed "" -> fixed
- UserInterface: SetUIScale - allows now for scaling higher than 2000
- UserInterface: ShowMenu - did only open once in a script though it should open multiple times -> fixed
4.6 - "Can - Halleluwah" - 19th of May 2022
Has now 1532 functions, with 32 new ones
new in this release:
FromPoint-functions
You can get now Razor-Edits, TrackEnvelopes and TakeEnvelopes by their coordinates.
Razor-Edit-specials
New Razor-Edit functions in general. Remove now by index and get, if at a specific position is a razor-edit or a gap between them.
You can also check, whether a certain area overlaps with already existing razor-edit-areas.
JSFX-reload
If you develop JSFX in an external editor and would like to update them in a project to use the latest version, you get functions to do so.
This should speed up developing and testing jsfx a little better.
Allows track, take and inputfx!
Windows Media Foundation support, as added per Reaper 6.57
Shownotes for podcasts
A new marker-type, that allows storing shownotes. Will be enhanced within the next few releases for additional metadata.
User Interface functions for HWND
More comfortable functions for getting Transport, Arrange and TCP.
New features in 4.6
- DeveloperTools: MonitorRenderString_Diff - monitors the diffs of the render-string, when setting them in the RenderToFile-dialog and hit Save Settings
- Envelopes: GetAllActiveEnvelopes_Take - returns all active take-envelopes
- Envelopes: GetAllActiveEnvelopes_Track - returns all active track-envelopes
- Envelopes: GetTakeEnvelopeFromPoint - returns the take-envelope at a certain coordinate
- Envelopes: GetTrackEnvelopeFromPoint - returns the track-envelope at a certain coordinate
- Envelopes: IsEnvelopeTrackEnvelope - checks, whether an Envelope is a TrackEnvelope
- FXManagement: InputFX_JSFX_Reload - reloads a jsfx in inputfx, when you've changed the jsfx-source-file
- FXManagement: TakeFX_JSFX_Reload - reloads a jsfx in a take, when you've changed the jsfx-source-file
- FXManagement: TrackFX_JSFX_Reload - reloads a jsfx in a track, when you've changed the jsfx-source-file
- Markers: AddShownoteMarker - adds a shownote-marker
- Markers: CountShownoteMarkers - counts shownote-markers in a project
- Markers: DeleteShownoteMarker - deletes a shownote-marker
- Markers: EnumerateShownoteMarkers - gets a shownote-marker
- Markers: GetGuidFromShownoteMarkerID - gets the guid of a shownote marker by its index
- Markers: GetShownoteMarkerIDFromGuid - gets the index of a shownote marker by its guid
- Markers: IsMarkerShownote - returns, if a marker is a shownote
- Markers: SetShownoteMarker - sets an already existing shownote-marker
- MidiEditor: MidiEditor_GetFixOverlapState - gets the Automatically Correct Overlapping Notes-option, as set in the Midi-Editor -> Options-menu
- MidiEditor: MidiEditor_SetFixOverlapState - sets the Automatically Correct Overlapping Notes-option, as set in the Midi-Editor -> Options-menu
- PodcastMetadata: PrepareChapterMarkers4ReaperExport - prepares chaptermarkers for metadata-export during rendering
- PodcastMetadata: RestoreChapterMarkersAfterReaperExport - restores chaptermarkers after metadata-export during rendering
- RazorEdit: RazorEdit_CheckForPossibleOverlap_Envelope - checks, whether a certain area overlaps with already existing razor-edit-areas of an envelope
- RazorEdit: RazorEdit_CheckForPossibleOverlap_Track - checks, whether a certain area overlaps with already existing razor-edit-areas of a track
- RazorEdit: RazorEdit_GetFromPoint - gets a razor-edit-area/gap by coordinate
- RazorEdit: RazorEdit_IsAtPosition_Envelope - checks, if track has a razor-edit-area or a gap at position; also returns the position of the razor-edit-area or gap at position
- RazorEdit: RazorEdit_IsAtPosition_Track - checks, if envelope has a razor-edit-area or a gap at position; also returns the position of the razor-edit-area or gap at position
- RazorEdit: RazorEdit_RemoveByIndex_Envelope - removes a razor-edit-area by its index from an envelope
- RazorEdit: RazorEdit_RemoveByIndex_Track - removes a razor-edit-area by its index from a track(envelopes stay untouched)
- Rendering: CreateRenderCFG_WMF_Video - creates the format-settings of the windows media foundation-formats(MPEG-4, mp4, m4a)
- Rendering: GetRenderCFG_Settings_WMF - gets the format-settings of the windows media foundation-formats(MPEG-4, mp4, m4a)
- UserInterface: GetHWND_ArrangeView - returns hwnd of the arrangeview, its visible area and right of arrange-state
- UserInterface: GetHWND_TCP - returns hwnd of the track control panel, its visible area and right of arrange-state
- UserInterface: GetHWND_Transport - returns hwnd, position, float, dock and hidden-state of transport
Changes from 4.5 to 4.6
- Clipboard: PutMediaItemsToClipboard_MediaItemArray - could potentially create an undo-point -> fixed
- Docs: Reaper Internals - updated to Reaper 6.58, SWS 2.13.1.0
- MediaItems: ApplyActionToMediaItem - doesn't create an undo point anymore
- MediaItems: ApplyActionToMediaItemArray2 - doesn't create an undo point anymore
- MediaItems: GetAllMediaItemsInTimeSelection - doesn't create an undo point anymore
- MediaItems: SetMediaItemsSelected_TimeSelection - doesn't create an undo point anymore; has now parameter for only items that are completely inside the time-selection
- RazorEdit: RazorEdit_Remove_Envelope - accidentally removed razoredit-areas on first track, even if not wanted -> fixed
- RazorEdit: RazorEdit_Remove_Track - accidentally removed razoredit-areas on first track, even if not wanted -> fixed
- Rendering: AddSelectedItemsToRenderQueue - had inner variable exposed; could potentially create undo-points -> fixed
4.5 - "Frank Zappa - Help I'm a Rock" - 6th of May 2022
Has now 1500 functions, with 23 new ones
new in this release:
Celebration Time
Because, I reached 1500 functions for Ultraschall-API. In the beginning, I was sure, that I would maybe have potential for 300 functions. I somehow overdid it, did I? XD
Razor Edit
I gave Razor Edit some love, so you can nudge, add and remove razor-edit-areas much easier for tracks or individual TrackEnvelopes.
AutomationItems
As I needed to bugfix the split and delete-functions for Automation Items, I added some functions to mass-set the select states of automation-items.
Developer Actions for ReaScripts
Need to quickly reopen the last edited script? Or want to open up another and you're too lazy to open up the actionlist? Behold, new developer-functions do this for you.
And if you need to open up quickly a new temporary-script to write some small test-code-snippet, you can do it as well.
EditReaScript
Always bothered, that the newly opened script doesn't immediately hold, what you need to start working right away?
Well, EditReaScript can now automatically add some default-lines into a newly created script. So if you need to add your ReaPack-index-information time and again, use this new parameter to make stuff easier for you.
Bugfixes
You're used to it, aren't you?
...up to the next 1500 functions, as soon as my overtyped numb fingers can type again... XD
New features in 4.5
- AutomationItems: AutomationItem_DeselectAllInTrack - deselects all automation-items in a TrackEnvelope
- AutomationItems: AutomationItem_DeselectAllSelectStates - deselects all automation-items in all TrackEnvelopes
- AutomationItems: AutomationItem_GetAllSelectStates - get all automationitem-selection-states in all TrackEnvelopes
- AutomationItems: AutomationItem_GetSelectStates - get all automationitem-selection-states in a TrackEnvelope
- AutomationItems: AutomationItem_SelectMultiple - sets selection-state multiple automation-items in a TrackEnvelope
- DeveloperTools: Create New Temporary Unlisted Lua ReaScript - creates a new temporary script, that isn't listed in the actionlist
- DeveloperTools: Open Last ReaScript - opens the last edited ReaScript
- DeveloperTools: Open A ReaScript with Dialog - opens a ReaScript, with a file-chooser-dialog
- HelperFunctions: GetSetIDEAutocompleteSuggestions - gets/sets the number of suggestions in the IDE for autocomplete
- Markers: GetTemporaryMarker - retrieves temporarily stored markers/regions for later use
- Markers: StoreTemporaryMarker - temporarily stores markers/regions for later use
- RazorEdit: RazorEdit_Add_Envelope - adds a razor-edit-area to a TrackEnvelope
- RazorEdit: RazorEdit_Add_Track - adds a razor-edit-area to a Track
- RazorEdit: RazorEdit_CountAreas_Envelope - counts the number of razor-edit-areas in a specific envelope
- RazorEdit: RazorEdit_CountAreas_Track - counts the number of razor-edit-areas in a track(excluding envelopes)
- RazorEdit: RazorEdit_GetRazorEdits_Track - returns all razor-edit-areas of a track
- RazorEdit: RazorEdit_Nudge_Track - nudges the razor-edit-areas of a track
- RazorEdit: RazorEdit_Nudge_Envelope - nudges the razor-edit-areas of a specific envelope
- RazorEdit: RazorEdit_Remove - removes all razor-edit-areas of a track including its envelopes
- RazorEdit: RazorEdit_Remove_Envelope - removes a razor-edit-area from a TrackEnvelope
- RazorEdit: RazorEdit_RemoveFromEnvelope - removes all razor-edit-areas of a TrackEnvelope
- RazorEdit: RazorEdit_RemoveFromTrack - removes all razor-edit-areas of a track, leaving envelopes untouched
- RazorEdit: RazorEdit_Remove_Track - removes a razor-edit-area from a Track
- Rendering: GetSetRenderBlocksize - gets/sets the render-blocksize
- TrackStates: GetTrackPlayOffsState - get the Media Playback Offset-entry of a track
- TrackStates: SetTrackPlayOffsState - sets the Media Playback Offset-entry of a track
Changes from 4.4 to 4.5
- AutomationItem_Delete - did also delete selected automation-items in other TrackEnvelopes -> fixed(thanx to X-Raym)
- AutomationItem_Split - did also split automation-items in other TrackEnvelopes under certain conditions -> fixed(thanx to X-Raym)
- Docs: general - anchors in the index of documents didn't scroll correctly -> fixed
- HelperFunctions: Create2DTable - did create a 3d-table instead, when using default-values -> fixed
- HelperFunctions: Create3DTable - did create a 4d-table instead, when using default-values -> fixed
- HelperFunctions: EditReaScript - has new parameter that allows setting default-lines into a newly created script; returns now, if script had been created or already existed; always uses the last edited script as set in reaper.ini when filename==nil
- HelperFunctions: MKVOL2DB - returned -44 instead of -144 as minimum dB-value -> fixed
- RazorEdit: RazorEdit_GetAllRazorEdits - allows now excluding track and/or envelope-razoredit-areas from the list
- TrackStates: SetTrackAutoRecArmState - reimplemented with a cleaner codebase(hopefully future proof)
- UserInterface: GetItemButtonsVisible - added "hide when take is less than xx pixel"-option
- UserInterface: SetItemButtonsVisible - added "hide when take is less than xx pixel"-option; optional parameter weren't optional -> fixed
4.4 - "Dispatch - Open Up" - 27 of April 2022
Has now 1477 functions, with 20 new ones
new in this release:
SpectralPeak-View-functions
You can now set the options for the spectral-peak-view of MediaItems.
AddProjectMarker
This is an alternative to Reaper's own AddProjectMarker-function. It returns the GUID, the index of the added marker
and fixes some edge-case-issues with the original function.
BatchConverter-FXStateChunk
You can get and set the FXChain of the BatchConverter programmatically, now using FXStateChunks.
Docs
Added functions of the new extensions ReaLim and ReaFab and updated the functions of all other extensions and Reaper itself. SetProjExtState and SetExtState-descriptions also include now a list of sections, used by scripts/extensions. That way, you can prevent naming conflicts and therefore accidentally overwritten configs/data.
Marker-Functions
Rewritten, so they are much faster now, especially adding markers.
DevTool: Marker Guid Displayer
This one displays the index, guid and name of all markers/regions in the current project.
This way, you can monitor, if your marker-functions get the correct guids from a marker.
Bugfixes
Per tradition...
New features in 4.4
- BatchConverter: GetBatchConverter_NotifyWhenFinished - gets the state of the "notify when finished"-checkbox
- BatchConverter: SetBatchConverter_NotifyWhenFinished - sets the state of the "notify when finished"-checkbox
- DeveloperTools: Display All Marker Region Guids - monitors all marker/region-guids in the ReaScript-console
- DeveloperTools: Display_ExtStateSectionsOfScriptsInFolder - displays all set-extstate-sections used in scripts within a folder
- DeveloperTools: Display_ProjExtStateSectionsOfScriptsInFolder - displays all set-projextstate-sections used in scripts within a folder
- Docs: Reaper Internals - added ReaLim 0.3.0 and ReaFab 0.3.10
- FXManagement: GetBatchConverter_FXStateChunk - gets the FXChain currently used by the BatchConverter
- FXManagement: SetBatchConverter_FXStateChunk - sets the FXChain used by the BatchConverter
- Markers: AddProjectMarker - an alternative to Reaper's own function, that covers some edgecases and returns guid and actual marker/region-index as well
- Markers: GetEditMarkerIDFromGuid - gets an edit-marker id by its guid
- Markers: GetEditRegionIDFromGuid - gets an edit-marker id by its guid
- Markers: GetGuidFromEditMarkerID - gets the guid of an edit-marker
- Markers: GetGuidFromEditRegionID - gets the guid of an edit-marker
- MetaData: MetaDataTable_Create - returns an empty metadatatable, which holds all possible metadata-entries
- MetaData: MetaDataTable_GetProject - returns a metadatatable, which holds all metadata-entries of the current project
- Projects: Main_SaveProject - saves a project and allows giving it a filename
- Render: GetRenderTable_ProjectDefaults - returns a rendertable with all render settings of the project's defaults
- SpectralView: SpectralPeak_GetColorAttributes - gets noise-threshold, opacity and variance of the spectral view
- SpectralView: SpectralPeak_GetMaxColor - returns the maxmium color of the spectral view
- SpectralView: SpectralPeak_GetMinColor - returns the minimum color of the spectral peak view
- SpectralView: SpectralPeak_SetColorAttributes - sets noise-threshold, opacity and variance of the spectral view
- SpectralView: SpectralPeak_SetMaxColor - sets the maximum color of the spectral peak view
- SpectralView: SpectralPeak_SetMaxColor_Relative - sets the spectrum color of the spectral peak view, relative to the minimum spectral-view color
- SpectralView: SpectralPeak_SetMinColor - sets the minimum color of the spectral peak view
Changes from 4.3 to 4.4
- DeveloperTools: Config Var Displayer - crashed, when double-value is NaN -> fixed
- Docs: Reaper API-docs - restructured the index into more useful categories; updated to Reaper 6.56, ReaImGui 0.6.1 and ReaPack 1.2.4
- FileManagement: CreateValidTempFile - raised number of potential temp-file-variants to 2147483648
- HelperFunctions: Main_OnCommandByFilename - didn't remove temporary scripts sometimes due Reaper bug -> fixed
- HelperFunctions: MIDI_OnCommandByFilename - didn't remove temporary scripts sometimes, partially due Reaper bug -> fixed
- Markers: AddCustomMarker - reworked code so it's faster now; sometimes, the returned guid could be wrong -> fixed
- Markers: AddCustomRegion - reworked code so it's faster now; sometimes, the returned guid could be wrong -> fixed
- Markers: AddEditMarker - reworked code so it's faster now; sometimes, the returned guid could be wrong -> fixed
- Markers: AddEditRegion - reworked code so it's faster now; sometimes, the returned guid could be wrong -> fixed
- Markers: AddNormalMarker - reworked code so it's faster now; sometimes, the returned guid could be wrong -> fixed
- Markers: GetGuidFromNormalMarkerID - returned -1 in case of an error, though this makes no sense -> returns nil now
- Markers: GetNormalMarkerIDFromGuid - returned nil or guid when no normal marker was found instead of -1 -> fixed
- ProjectManagement: GetProjecStateChunk - didn't work under certain circumstances -> fixed
- ProjectManagement: IsValidReaProject - didn't return true when parameter was 0, though it being a valid project -> fixed
- Render: GetRender_ResampleMode - didn't return correct resample-mode when Render to File-Dialog was open(Reaper 6.43+) -> fixed
- Render: GetRenderTable_Project - didn't correctly return "CloseAfterRender" -> fixed
- Render: SetRender_ResampleMode - didn't set correct resample-mode when Render to File-Dialog was open(Reaper 6.43+) -> fixed
- UserInterface: GetBatchFileItemConverterHWND - didn't return hwnd of batch-converter anymore -> fixed
4.3 - "Eskobar - Someone New" - 22nd of February 2022
Has now 1457 functions, with 34 new ones
new in this release:
ParmLearn-dialog defaults
You can now get/set the default settings for the Parm-Learn-dialog. So you can now reset it to your preferred settings before learning a new parameter.
Media Explorer features
You can now get/set volume, rate, pitch and even output-channels of the media explorer and various checkboxes.
SetItem-functions
There were set item-function missing, though their get counterpart was there. So, I added more set functions.
Rendering - Only Normalize Files That Are Too Loud
You can now choose, whether to normalize only files that are too loud
Rendering FFMPEG-only
With FFMPEG-dll installed, you have access to more render-output-functions. You can now create render-strings for these formats as well.
Developer Tools now automatically installed
To simplify working with devtools, they are now automatically installed with ReaPack-update.
If you happen to have some of them duplicated, run the action "ultraschall_Remove_Developertools_From_Reaper.lua"
Dev Tool: Log SetProjExtState/SetExtState access
You can log now, if (proj)extstates are set in the ReaScript-console. That way you can monitor, if setting them runs smoothly.
Just run the accompanying developer-tool for it.
Docs updates for Reaper Internals
Bugfixes
as usual...
New features in 4.3
- DeveloperTools: Toggle_Logging_SetExtState_SetProjExtState_access - logs set access to (proj)extstates while using US-API to the ReaScript console
- ErrorMessagingSystem: DAEM - like ultraschall.DeleteAllErrorMessages(), just shorter
- GFX-Management: GFX_GetTextLayout - returns the flag-value you can use for gfx.setfont, allowing different text-layouts
- Markers: GetGuidFromNormalMarkerID - gets the guid of a normal marker by its index
- Markers: GetNormalMarkerIDFromGuid - gets the index of a normal marker by its guid
- MediaExplorer: MediaExplorer_SetAutoplay - sets the autoplay-checkbox
- MediaExplorer: MediaExplorer_SetDeviceOutput - sets device-output of the Media Explorer
- MediaExplorer: MediaExplorer_SetPitch - sets the pitch of the Media Explorer
- MediaExplorer: MediaExplorer_SetRate - sets the rate of the Media Explorer
- MediaExplorer: MediaExplorer_SetStartOnBar - sets the Start on bar-checkbox of the Media Explorer
- MediaExplorer: MediaExplorer_SetVolume - sets the volume of the Media Explorer
- MediaItems: SetItemAllTakes - sets the all-takes-setting of an item or a mediaitem-statechunk
- MediaItems: SetItemChanMode - sets the channel mode of an item or a mediaitem-statechunk
- MediaItems: SetItemFadeIn - sets fadein of an item or a mediaitem-statechunk
- MediaItems: SetItemFadeOut - sets fadeout of an item or a mediaitem-statechunk
- MediaItems: SetItemGUID - sets the GUID of an item or a mediaitem-statechunk
- MediaItems: SetItemIGUID - sets the IGUID of an item or a mediaitem-statechunk
- MediaItems: SetItemIID - sets the IID of an item or a mediaitem-statechunk
- MediaItems: SetItemLoop - sets the loop-source-state of an item or a mediaitem-statechunk
- MediaItems: SetItemMute - sets mutestate of an item or a mediaitem-statechunk
- MediaItems: SetItemName - sets name of the first take in an item or a mediaitem-statechunk
- MediaItems: SetItemPlayRate - sets the playrate-settings in an item or a mediaitem-statechunk
- MediaItems: SetItemSampleOffset - sets the sample offset-state of an item or a mediaitem-statechunk
- MediaItems: SetItemSelected - sets the selected-state of an item or a mediaitem-statechunk
- MediaItems: SetItemVolPan - sets the volume and pan-values of an item or a mediaitem-statechunk
- ParameterLearn: GetParmLearn_Default - gets default-settings for the parameter-learn-dialog(requested by akademie)
- ParameterLearn: SetParmLearn_Default - sets default-settings for the parameter-learn-dialog(requested by akademie)
- Rendering: CreateRenderCFG_FLV_Video - creates a render-string for flv export(with FFMPEG installed only)
- Rendering: CreateRenderCFG_MPEG1_Video - creates a render-string for MPEG-1 export(with FFMPEG installed only)
- Rendering: CreateRenderCFG_MPEG2_Video - creates a render-string for MPEG-2 export(with FFMPEG installed only)
- Rendering: GetRenderCFG_Settings_MPEG1_Video - returns settings of render-string for MPEG-1, when FFMPEG is installed
- Rendering: GetRenderCFG_Settings_MPEG2_Video - returns settings of render-string for MPEG-2, when FFMPEG is installed
- TrackManagement: ConvertTrackstringToArray - converts all tracknumbers of a trackstring and returns them as an array
- Themeing: GetAllThemeElements - returns a table with all Walter-theme-element-names available
- Themeing: GetTrack_ThemeElementPositions - returns a table with all Walter-theme-elements of a track with names, position and visibility-states
Changes from 4.2.006 to 4.3
- DeveloperTools: findConfigVarsToggledByActions - fixed dozens of bugs; supports now all config-vars; improved the layout of the output file; has now "do you really want to run me?"-question, as this script could ruin your Reaper installation
- DeveloperTools: CheckForNewConfigVars - shows now the current values of the newly found config-vars
- DocEngine: Docs_ConvertPlainTextToHTML - new option for keeping tabs and whitespaces untouched and for omitting < br > between < pre > and < /pre >-tags in source-string
- Docs: Reaper Internals - updated to Reaper 6.47, JS-extension 1.301, ReaImGui 0.5.10, ReaBlink 0.4.4, SWS 2.13.0.0
- HelperFunctions: RunBackgroundHelperFeatures - deprecated
- MarkerManagement: AddCustomMarker - returns now the custom-marker-index, within all custom markers only, as well; allows now creating markers with the same name on the same position(workaround for Reaper-limitation)
- MarkerManagement: AddCustomRegion - returns now the custom-region-index, within all custom regions only, as well; allows now creating regions with the same name on the same position(workaround for Reaper-limitation)
- MarkerManagement: AddEditMarker - returns now the edit-marker-index, within all edit markers; allows now creating markers with the same name on the same position(workaround for Reaper-limitation)
- MarkerManagement: AddEditRegion - returns now the edit-region-index, within all edit regions; allows now creating regions with the same name on the same position(workaround for Reaper-limitation)
- MarkerManagement: AddNormalMarker - returns now the normal-marker-index, within all normal markers; improved automatic numbering; allows now creating markers with the same name on the same position(workaround for Reaper-limitation) -> fixed
- MarkerManagement: AddPodRangeRegion - deprecated
- MarkerManagement: CountNormalMarkers - did count custom-markers as well -> fixed
- MarkerManagement: CountNormalMarkers_NumGap - didn't count normal markers only, but rather all -> fixed
- MarkerManagement: DeletePodRangeRegion - deprecated
- MarkerManagement: EnumerateNormalMarkers - did include custom-markers as well -> fixed
- MarkerManagement: GetPodRangeRegion - deprecated
- MarkerManagement: IsRegionPodrange - deprecated
- MarkerManagement: SetNormalMarker - did set custom-markers as well -> fixed
- MediaItemManagement: GetAllMediaItemsFromTrack - had problems, when a track had no item -> fixed(thnx to Distressor)
- MediaItemManagement: SetItemPosition - did return -1 in case of an error, whereas it should return nil instead -> fixed
- MediaItemManagement: SetItemLength - did return -1 in case of an error, whereas it should return nil instead -> fixed
- MediaItemManagement: SetItemImage - did return -1 in case of an error, whereas it should return nil instead -> fixed
- Navigation: GetLastCursorPosition - deprecated
- Navigation: GetLastPlayState - deprecated
- Navigation: GetLastLoopState - deprecated
- ProjectManagement: GetProjectStateChunk - fixed edgecase, that prevented getting a ProjectStateChunk
- ProjectManagement: GetProject_Render_Normalize - allows now normalize only files that are too loud-option
- ProjectManagement: SetProject_Render_Normalize - allows now normalize only files that are too loud-option
- Rendering: AddRenderPreset - allows now normalize only files that are too loud-option
- Rendering: ApplyRenderTable_Project - allows now normalize only files that are too loud-option
- Rendering: ApplyRenderTable_ProjectFile - allows now normalize only files that are too loud-option
- Rendering: CreateRenderCFG_AVI_Video - added formats that need FFMPEG installed
- Rendering: CreateRenderCFG_DDP - returned string was wrong due typo -> fixed(thnx to loTrT)
- Rendering: CreateRenderCFG_MKV_Video - added formats that need FFMPEG installed
- Rendering: CreateRenderCFG_MOVMAC_Video - removed unused \0-byte at end of render-string -> fixed
- Rendering: CreateRenderCFG_WebMVideo - added formats that need FFMPEG installed
- Rendering: GetRenderCFG_Settings_AVI_Video - added formats, that need FFMPEG installed
- Rendering: GetRenderCFG_Settings_MKV_Video - added formats, that need FFMPEG installed
- Rendering: GetRenderCFG_Settings_MOVMac_Video - didn't work; was missing the format-dropdownlist-settings -> fixed
- Rendering: GetRenderCFG_Settings_QTMOVMP4_Video - added video-format-retval; added formats, that need FFMPEG installed
- Rendering: GetRenderCFG_Settings_WebMVideo - added formats, that need FFMPEG installed
- Rendering: GetRenderPreset_RenderTable - allows now normalize only files that are too loud-option
- Rendering: GetRenderTable_Project - allows now normalize only files that are too loud-option
- Rendering: GetRenderTable_ProjectFile - allows now normalize only files that are too loud-option
- Rendering: IsValidRenderTable - allows now normalize only files that are too loud-option
- Rendering: RenderProject_RenderTable - allows now normalize only files that are too loud-option
- Rendering: SetRenderPreset - allows now normalize only files that are too loud-option
- TrackManagement: GetTrackLockState - didn't return lock-state reliably -> fixed(thanx to Distressor)
- UserInterface: GetMediaExplorerHWND - didn't work under certain circumstances -> fixed
- WebRC: WebInterface_GetInstalledInterfaces - could break, if html-pages had no title-tag in them -> fixed
4.2.006 - "The Beatles - The continuing story of Bungalow Bill" - 24th of December 2021
Has now 1423 functions, with 17 new ones
new in this release:
Brickwall Limiting Support
The rendering-functions support now brickwall-rendering and the render-preset-functions the new possibility to store the rendering-path as well(as of Reaper 6.43)
CAF-support
CAF is now supported as well with rendering.
GFX_GetChar
Gives you a more powerful version of gfx.getchar, which returns the characters and optionally a readable version of non-printable characters.
It also allows you managing the clipboard directly inside of it, so you don't need to code cmd+x/c yourself.
New MetaData-functions added
For ASWG, AXML, CAFINFO, FLACPIC, IFF and WAVEEXT. I also updated the docs for other metadata-functions to include newly added tags.
Deprecated Checker for scripters
A new devtool allows you to check lua-scripts inside a folder, if they use deprecated functions. It also warns you, if one of them still uses a function that got actually removed.
Bugfixes
And cleanup, cleanup, cleanup
New features in 4.2.006
- DeveloperTools: Check scripts in folder for deprecated functions - checks, whether a folder contains Lua-scripts that ue deprecated or removed API-functions
- Docs: function changelogs - include now changelogs for each function beginning from Reaper 6.42+, SWS 2.12.1.3+, ReaBlink 0.4.0, JS 1.22+, ReaImGui 0.5.8+
- Docs: deprecated-states - include now deprecated-states for each depreacted function which includes since when and a possible alternative
- Doc-Engine: Docs_GetUSDocBloc_Changelog - returns the changelogs from each US-DocML-entry
- Doc-Engine: Docs_GetUSDocBloc_Deprecated - returns the attributes of the deprecated-tag of an US-DocBloc
- Doc-Engine: Docs_GetUSDocBloc_LinkedTo - returns the entries of the linked_to-tags insie an USDocML-entry
- GFX-Management: GFX_GetChar - a more powerful version of gfx.getchar, with additional clipboard management and conversion of non-printable characters to readable ones
- Helper Functions: ReturnReaperExeFile_With_Path - returns the name of the reaper-executable including its path
- MetaData: Metadata_ASWG_GetSet - gets/sets ASWG-metadata
- MetaData: Metadata_AXML_GetSet - gets/sets AXML-metadata
- MetaData: Metadata_CAFINFO_GetSet - gets/sets metadata for CAF-files
- MetaData: Metadata_FLACPIC_GetSet - gets/set metadata to embed pictures into flac-files
- MetaData: Metadata_IFF_GetSet - gets/set metadata for iff
- MetaData: Metadata_WAVEXT_GetSet gets/set metadata for wavext
- ParmAlias: GetParmAlias_by_FXParam_FXStateChunk - gets the parmalias_id by fx-parameter, that you can use as parameter id for Set/Get/Delete-ParmAlias-functions
- ParmLearn: GetParmLearnID_by_FXParam_FXStateChunk - gets the parmlearn_id by fx-parameter, that you can use as parmlearn_id for Set/Get/Delete-ParmLearn-functions(requested by TonE)
- ParmLFOLearn: GetParmLFOLearn_by_FXParam_FXStateChunk - gets the parm_lfolearn_id by fx-parameter, that you can use as parameter id for Set/Get/Delete-ParmLFOLearn-functions
- Render Management: GetRenderTargetFiles - returns the render-target and filenames of all render-files, if they would be rendered right now
- Render Management: GetRenderCFG_Settings_CAF - gets settings of a render-string of the caf-format
- Render Management: CreateRenderCFG_CAF - creates a render-string for the CAF-format
Changes from 4.2.005 to 4.2.006
- API: bugs - newly added functions from last release weren't working, due oversight -> fixed
- API: deprecated - replaced most of the deprecated functions US-API used
- API: minimum Reaper version - raised minimum Reaper-version to Reaper 6.20
- API: Settings - Beta-functions-feature removed, as it was pointless and slowed down initializing US-API
- Developer: EditReaScript - allows now setting docking state and watchlist-size; didn't add scripts, when the file already existed, contrary to what the docs suggested; didn't reset old values in reaper.ini -> fixed
- DeveloperTools: ultraschall_developertool_CheckForNewConfigVars - tries now to read possible config-vars from reaper.exe directly(windows only atm)
- DeveloperTools: ultraschall_developertool_Display-Altered-Config-Vars - shows now the diffs to old values as well
- DeveloperTools: ultraschall_developertool_Display-Altered-ConfigFile-Entries - shows diffs to old values when entries are numerical; added missing ini-files
- DocEngine: Docs_GetUSDocBloc_Description - had problems with description-tags without any line in it -> fixed
- DocEngine: Docs_RemoveIndent - had inner variable exposed -> fixed
- Docs: All docs - you can create now a custom.css file in the Documentation-folder to customize the style of the docs
- Docs: MediaItemStateChunk-docs - added new behavior of Reaper 6.33 to just enclose source-files with " that have a space in filename or path
- Docs: Reaper Internals - updated to Reaper 6.43 and ReaImGui 0.5.8
- Docs: Reaper-API-docs - All-View jumped to the top of the document instead of just unhiding functioncalls -> fixed
- Docs: RenderPreset-Configfile.txt - updated to Reaper 6.43
- EventManager: general - didn't start on Linux distributions due case-typo in ultraschall_EventManager.lua-filename -> fixed (thanks to dronenb)
- FileManagement: GetAllDirectoriesInPath - has now an optional filter-parameter, to just get directories of a certain pattern
- FileManagement: GetAllFilenamesInPath - has now an optional filter-parameter, to just get filenames of a certain pattern; returned pure path as well -> fixed
- FileManagement: GetAllRecursiveFilesAndSubdirectories - has now optional filter-parameters for folders and files
- FXManagement: InputFX_GetEQBandEnabled - new bandtypes added, as added by Reaper 6.43
- FXManagement: InputFX_GetEQParam - new bandtypes added, as added by Reaper 6.43
- FXManagement: InputFX_SetEQBandEnabled - new bandtypes added, as added by Reaper 6.43
- FXManagement: InputFX_SetEQParam - new bandtypes added, as added by Reaper 6.43
- MediaItem Management: InsertMediaItemFromFile - didn't place editcursor correctly at the end of item, when length==-1 -> fixed
- Mute: ToggleMute - didn't unmute under certain conditions; sometimes created additional envelope-points when unneccessary -> fixed
- ParmLearn: AddParmLearn_FXStateChunk2 - parameter midi_channel falsely expected to be 0-15 not 1-16 as documented -> fixed(thanks to TonE)
- ParmLearn: GetParmLearn_FXStateChunk2 - didn't check for non existing ParmLearns and threw nil error -> fixed(thanks to TonE)
- ParmLearn: SetParmLearn_FXStateChunk2 - had massive errors in the docs -> fixed(thanks to TonE)
- ProjectManagement: GetProject_Render_Normalize - supports now brickwall-settings
- ProjectManagement: SetProject_Render_Normalize - supports now brickwall-settings
- Rendering: AddRenderPreset - supports now brickwall-limiting and output-directory
- Rendering: ApplyRenderTable_Project - supports now brickwall-limiting
- Rendering: ApplyRenderTable_ProjectFile - supports now brickwall-limiting
- Rendering: CreateNewRenderTable - supports now brickwall-limiting
- Rendering: CreateRenderCFG_WAV - supports now 32 Bit PCM(7) and 8 Bit u-Law(8) as BitDepth
- Rendering: GetOutputFormat_RenderCfg - supports now CAF as well; returned the decoded render-string only, not the base64-decoded one; the latter is now retval #3
- Rendering: GetRenderCFG_Settings_AIFF - when passing nil, it returns now the default-project-render-settings for aiff
- Rendering: GetRenderCFG_Settings_FLAC - when passing nil, it returns now the default-project-render-settings for flac
- Rendering: GetRenderCFG_Settings_OGG - when passing nil, it returns now the default-project-render-settings for ogg
- Rendering: GetRenderCFG_Settings_OPUS - when passing nil, it returns now the default-project-render-settings for opus
- Rendering: GetRenderCFG_WAV - when passing nil, it returns now the default-project-render-settings for wav; supports now 32 Bit PCM(7) and 8 Bit u-Law(8) as BitDepth; returned wrong value as BitDepth -> fixed
- Rendering: GetRenderCFG_WAVPACK - when passing nil, it returns now the default-project-render-settings for wavpack
- Rendering: GetRenderCFG_Settings_XXX - all those functions could produce error, when sending in non-Base-64-strings -> fixed
- Rendering: GetRenderPreset_RenderTable - supports now brickwall-limiting and the output-diretory, if stored; did not return secondary render-string, when having a presetname with spaces in it -> fixed
- Rendering: GetRenderTable_Project - supports now brickwall-limiting
- Rendering: GetRenderTable_ProjectFile - supports now brickwall-limiting
- Rendering: IsValidRenderTable - supports now brickwall-limiting
- Rendering: RenderProject_RenderTable - didn't return filenames due changes in statechunks in Reaper 6.33 -> fixed(thnx to aurelien)
- Rendering: SetRenderPreset - supports now brickwall-limiting; didn't set some settings, when normalize-target had + in its value -> fixed
- Rendering: various - many render-cfg-functions who work with floats didn't work properly -> fixed
- User Interface: Windows_Find - had inner variable exposed -> fixed
4.2.005 - "Anne Clark - Our Darkness" - 21st of July 2021
Has now 1406 functions, with 6 new ones
new in this release:
Dark Mode in all documentation
Ever been blinded by the light...ehrm docs? Suffer no more. All docs are now in dark-mode, relayouted with a proper
color scheme, smaller, faster to load.
And I nicked some code from X-Raym's fantastic docs, so clicking on function-calls is now copying them into the
clipboard.
Also the index has now links that you can link to. So if you want to give somebody a list of all marker-functions,
click on the ^ next to the category.
The order of functions is also by category. So all marker-functions are next to each other. Endless scrolling to find
that one other marker-related-function is now a thing of a past.
The header on pages is also sticky now. Endless scrolling to switch page is also now a thing of the past.
Enjoy Darkmode.
No more sunburns from reading docs. Can you believe it?
Normalization on Rendering
You can use now the new normalization-features of Reaper in all rendering-functions.
Parameter Learn
Some of the ParmLearn functions were hard to use, due some parameters being complex. I added variations of them, so
setting them is now much more easier.
Toggle Beta-Functions
I almost never finish all new functions, but I deploy them anyway. Though they are not accessible directly, only
when Ultraschall-API is set to Beta-Mode.
This can now be done in the API-settings.
Beta-functions can be found in ultraschall_functions_engine_beta.lua for toying around with them.
But keep in mind: they aren't released for a good reason. Be careful with them.
Bugfixes
Bugfixes, Bugfixes, Bugfixes...
New features in 4.2.005
- API: Settings - Beta-functions can now be activated via Ultraschall-API-Settings
- Docs: Darkmode - all docs are now relayouted and in darkmode! Clicking on functions copies them to the clipboard(thnx to X-Raym)
- Parameter/Learn/Mapping: AddParmLearn_FXStateChunk2 - variation of AddParmLearn_FXStateChunk that allows setting values more detailed(requested by DanielLumertz and TonE)
- Parameter/Learn/Mapping: GetParmLearn_FXStateChunk2 - variation of GetParmLearn_FXStateChunk2 that allows setting values more detailed(requested by DanielLumertz and TonE)
- Parameter/Learn/Mapping: SetParmLearn_FXStateChunk2 - variation of SetParmLearn_FXStateChunk that allows setting values more detailed(requested by DanielLumertz and TonE)
- Project-Files: GetProject_Render_Normalize - gets the render-normalize-settings from an rpp-file or ProjectStateChunk
- Project-Files: SetProject_MasterTrackView - sets the master-track-view-settings in an rpp-file or ProjectStateChunk
- Project-Files: SetProject_Render_Normalize - sets the render-normalize-settings in an rpp-file or ProjectStateChunk
Changes from 4.2.004 to 4.2.005
- BatchConverter: BatchConvertFiles - supports now retaining metadata from sourcefile
- Developer Tools: ultraschall_developertool_Display-Altered-Config-Vars.lua - fixed a bug, that omitted some config-vars
- Docs: RenderPreset-Configfile.txt - added new normalization information
- Docs: Reaper Internals - updated to Reaper 6.32, ReaImGui 0.5.2
- Docs: Converter-Pipeline - largely rewritten, so it's now faster, better designed, streamlined
- DocsManagement: Docs_GetUSDocBloc_ChapterContext - didn't return all chapter-context-entries -> fixed
- GuiLib: Lokasenna_LoadGuiLib_v2 - didn't load due stupid typo -> fixed
- Helper functions: StateChunkLayouter - did add unnecessary newline at the end, which faulted IsValidTrackStateChunk -> fixed
- Markers: MoveMarkersBy - didn't work on markers with 0 in their index number -> fixed(thanks to GNetzer)
- MediaItem-Management: InsertMediaItemFromFile - didn't insert media into the right track due Reaper API-limitations -> fixed(thanks to Fergler)
- Parameter/Learn/Mapping: SetParmLearn_FXStateChunk - added error-message, when no such parm-alias exists
- RenderManagement: AddRenderPreset - supports now render-normalization
- RenderManagement: ApplyRenderTable_Project - supports now render-normalization
- RenderManagement: CreateNewRenderTable - supports now render-normalization
- RenderManagement: DeleteRenderPreset_FormatOptions - supports now deleting presets with render-normalization
- RenderManagement: GetRenderPreset_RenderTable - supports now render-normalization
- RenderManagement: GetRenderTable_Project - supports now render-normalization
- RenderManagement: GetRenderTable_ProjectFile - supports now render-normalization
- RenderManagement: IsValidRenderTable - supports now render-tables with render-normalization-settings
- RenderManagement: SetRenderPreset - supports now render-normalization
4.2.004 - "Grandma - kl" - 12th of June 2021
Has now 1400 functions, with 15 new ones
new in this release:
Automation Items
You can get now the automation items by time and you can split them.
State Inspector
Allows now using Ctrl+C and Ctrl+V to copy n paste statechunks from the statechunk-views. That way, you can easily get and set statechunks for easier debugging.
Rendering
Razor Edits-rendering is now supported.
InputFX
All inputFX-functions allow now adressing inputfx of specific tracks.
GMEM
You can get now all gmems from a specific gmem-name. You can also get all values from the Video-Sample-Peeker-JSFX to do something with it, like visualizing.
Razor Edit
You can get all razor-edits from the current project as well as checking, whether there's any razor-edit at all.
MetaData Presets
You can get now all metadata-entries from the metadata-presets. Will be enhanced in the future with additional functions.
Developer Tools
Get now the statechunk of items/envelopes/tracks underneath the mouse directly into the clipboard and put the statechunks from clipboard back into it.
BatchConverter
Works now, now that I fixed this stupid bug..cough...cough...
Docs updates
Updated Docs to Reaper 6.29 and added ReaImGui, ReaBlink.
Tons of bugfixes and stuff
New features in 4.2.004
- Automation Items: AutomationItems_GetByTime - gets all automation-items from an envelope at position(requested by AZpercussion)
- Automation Items: AutomationItem_Split - splits a specific automation-item from an envelope at position(requested by AZpercussion)
- Developer Tools: EnvelopeStateChunk_from_Clipboard_envelope_to_under_mouse.lua - gets envelopestatechunk from clipboard to envelope under the mouse
- Developer Tools: EnvelopeStateChunk_from_Clipboard_to_selected_envelope.lua - gets envelope statechunk from clipboard to selected envelope
- Developer Tools: EnvelopeStateChunk_to_Clipboard_selected_envelope - puts statechunk of selected envelope into clipboard
- Developer Tools: Find_Duplicated_Lines_In_Clipboard - shows duplicated lines in the string in the clipboard
- Developer Tools: ItemStateChunk_from_Clipboard_to_first_selected_item.lua - gets trackstatechunk from clipboard to first selected track
- Developer Tools: ItemStateChunk_from_Clipboard_to_item_mouse.lua - gets itemstatechunk from clipboard to item under the mouse
- Developer Tools: ItemStateChunk_to_Clipboard_first_selected_item - puts statechunk of first selected item into clipboard
- Developer Tools: ItemStateChunk_to_Clipboard_item_under_mouse - puts statechunk of item under the mouse into clipboard
- Developer Tools: TrackStateChunk_to_Clipboard_first_selected_track - puts statechunk of first selected track into clipboard
- Developer Tools: TrackStateChunk_to_Clipboard_track_under_mouse - puts statechunk of track under the mouse into clipboard
- Developer Tools: EnvelopeStateChunk_to_Clipboard_envelope_under_mouse - puts statechunk of envelope under the mouse into clipboard
- Docs: Reaper API-docs - added ReaImGui 0.4.1, OSARA 2021, ReaBlink 0.4.0
- Examplescript: US_Api_Examples_Visualize_VideoSamplePeekerJSFX.lua - displays the Video Sample Peeker-JSFX-values in a gfx-window
- GMem: GMem_Read_ValueRange - returns a value-range from gmem-values as a handy table
- GMem: GMem_GetValues_VideoSamplePeeker - returns the samples as provided by the jsfx "video sample peeker", whose values are used by certain video processor presets
- MediaItem-Management: ApplyActionToMediaItemTake - allows applying actions to MediaItemTakes
- MediaItem-Management: CountMediaItemTake_StateChunk - counts all takes in a MediaItemStateChunk
- MediaItem-Management: GetMediaItemTake_StateChunk - gets a TakeStateChunk from a MediaItemStateChunk
- Metadata-Management: Metadata_GetAllPresetNames - returns all metadata-presetnames
- Metadata-Management: Metadata_GetMetaDataTable_Presets - returns all metadata-presetnames
- Razor Edit: RazorEdit_GetAllRazorEdits - returns a table with all razor-edits available in the current project
- Razor Edit: RazorEdit_ProjectHasRazorEdit - returns, if the currently opened project contains any Razor Edits
- Rendering: AreRenderTablesEqual - compares, if two RenderTables are equal
- Spectral Edit: CountItemSpectralEdit2 - counts all spectral-edits within a take(requested by Fabian)
- Spectral Edit: GetItemSpectralConfig2 - gets the spectral-config of a take(requested by Fabian)
- Spectral Edit: GetItemSpectralEdit2 - gets all spectral-edit-states of a take(requested by Fabian)
Changes from 4.2.003 to 4.2.004
- API: Modulator3000 - reverted binary-chunk back to source-code, due Reaper-path-encoding problems with Umlauts in resourcepath(thanks to rstockm)
- API-HelperFunctions: SFEM - parameters didn't work as I..ehrm....forgot to add them.... -> fixed
- ConfigurationManagement: KB-ini-functions - parameter/retval-descriptions were missing information -> fixed
- Developer Tools: State Inspector - the show item/track/envelope-statechunk modes allow now copy'n'pasting of statechunks from/to clipboard
- Docs: Filetype Descriptions - added missing descriptions and mouse modifiers for reaper-mouse.ini
- Docs: Reaper Internals - updated to Reaper 6.29
- File-Management: BatchConvertFiles - added, as I had forgotten to add it in the last release -> fixed
- FXManagement: InputFX_AddByName - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_CopyFX - couldn't copy fx to the end of the fx-chain -> fixed; supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_CopyFXFromTakeFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_CopyFXFromTrackFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_CopyFXToTakeFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_CopyFXToTrackFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetCount - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_Delete - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_EndParamEdit - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_FormatParamValue - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_FormatParamValueNormalized - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetChainVisible - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetEnabled - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetEQ - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetEQBandEnabled - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetEQParam - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetFloatingWindow - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetFormattedParamValue - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetFXChain - readded global monitoring-fxchain-entries; supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetFXGUID - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetFXName - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetIOSize - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetNamedConfigParm - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetOffline - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetOpen - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetParam - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetParameterStepSizes - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetParamEx - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetParamName - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetParamNormalized - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetPinMappings - didn't work due bug -> fixed, supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetPreset - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_GetUserPresetFilename - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_MoveFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_MoveFXFromTakeFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_MoveFXFromTrackFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_MoveFXToTakeFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_MoveFXToTrackFX - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_NavigatePresets - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_QueryFirstFXIndex - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetEnabled - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetEQBandEnabled - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetEQParam - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetFXChain - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetOffline - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetOpen - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetParam - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetParamNormalized - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetPinMappings - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetPreset - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_SetPresetByIndex - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: InputFX_Show - supports now inputFX of individual tracks as well(thanks to X-Raym)
- FXManagement: IsValidFXStateChunk - supports now inputFX-FXChains as well(thanks to X-Raym)
- Helper functions: IsOS_Mac - didn't work on arm-macs due stupid typo -> fixed(thanks to rstockm)
- Helper functions: StateChunkLayouter - corrected edge-case that could cause missing > at the end -> fixed
- Parameter-Modulation: CountParmModFromFXStateChunk - didn't return correct error-retvals -> fixed
- ProjectManagement: GetProjectStateChunk - had trouble with Razor-Edit-render-options activated in Reaper 6.26 -> fixed
- Rendering: all functions - support now Razor Area rendering
- Rendering: ApplyRenderTable_Project - allows now setting project to dirty, if RenderTable is different from the current project's render settings; changed a value of the provided RenderTable, which shouldn't happen -> fixed
- Rendering: ApplyRenderTable_ProjectFile - changed a value of the provided RenderTable, which shouldn't happen -> fixed
- TrackManagement: GetTrackGroupFlagsState - returns now the table with all 23-entries, even if some checkboxes aren't set in any group
- TrackManagement: GetTrackGroupFlags_HighState - returns now the table with all 23-entries, even if some checkboxes aren't set in any group
4.2.003 - "Georg Friedrich Handel - Sarabande" - 6th of February 2021
Has now 1385 functions, with 26 new ones
new in this release:
BatchConvertFiles
Ever fancied programming the batch-converter? Now you can, with BatchConvertFiles. No more fiddling around with command-line.
GetProjectStateChunk
Is now improved and finally working stable. What a difficult birth, but now you can access all your project-states available.
FXStateChunk-functions
Getting and setting FXStateChunk-entries should be fully supported now. Some can't be set at runtime in Reaper, due some quirks with setting statechunks, but nevertheless.
GetActionCommandIDByFilename
So here's the story: you have this nice filename of a nice ReaScript and would like to call it for a date or just by Main_OnCommand, but:
you don't know the ActionCommandID. GetActionCommandIDByFilename will be your knight in shining armor and give you what you need.
M1-Mac support
Now all scripts using Ultraschall-API run smooth on the new Arm-Macs as well. Dozens of fixes and bugreports made it possible.
SetUIScale
Now you can scale your Reaper-window to planet-size, by setting its UI-scaling-factor. So if 2 isn't enough for your oldening eyes, set it to 100.
2nd pass rendering
Also added, so you can use the new 2nd-pass-rendering-feature in your scripts. Loop Loop!
Custom Markers/Regions
They can now be enumerated, set, deleted and count with "" as well. This will give you all custom-marker/regions instead of a specific one.
GetItem_ClickState and GetTrackEnvelope_ClickState
Stopped working due bugfix in SWS, now returned back to working due bugfix in Ultraschall-API. So getting the currently clicked/dragged item/envelope-point is available again.
EditReaScript
Open a specific ReaScript with a specific window-position and size. So arranging your ReaScript-IDE-windows is now real easy.
Under the assumption, you have a taste for a nice IDE-arrangement.
Bugfixes, improvements, speedups
The usual cleanup of old functions that usually eliminate bugs and slow code.
New features in 4.2.003
- Configuration-files: GetActionCommandIDByFilename - get the actioncommand-id of a registered script
- Docs: misc/USDocML-Specs1_0.txt - describes the USDocML-format I use for my Reaper/Ultraschall-API documentation
- File-Management: BatchConvertFiles - allows converting files using the batch-converter of Reaper
- FX-Management: GetDocked_FXStateChunk - gets the docked state of an fxchain from an FXStateChunk
- FX-Management: GetFXBypass_FXStateChunk - returns the BYPASS-entry-values of an FXStateChunk(bypass and online/offline state)
- FX-Management: GetFXFloatPos_FXStateChunk - returns the float state and position of the fx-window of an fx in an FXStateChunk
- FX-Management: GetFXGuid_FXStateChunk - returns the guid of an fx in an FXStateChunk
- FX-Management: GetFXMidiPreset_FXStateChunk - returns the MIDIPRESET-entry-values of an FXStateChunk(link to midi program change)
- FX-Management: GetFXWak_FXStateChunk - returns the WAK-entry-values of an FXStateChunk(embed and send keyboardinput to fx)
- FX-Management: GetLastSel_FXStateChunk - returns the last selected fx of an FXStateChunk
- FX-Management: GetShow_FXStateChunk - gets the state of visibility of the fxchain-window and a specific fx from an FXStateChunk
- FX-Management: GetWndRect_FXStateChunk - gets the position of the fxchain-window when floating from an FXStateChunk
- FX-Management: SetDocked_FXStateChunk - sets the docked state of an fxchain from an FXStateChunk
- FX-Management: SetFXBypass_FXStateChunk - sets the BYPASS-entry-values of an FXStateChunk(bypass, online/offline-state)
- FX-Management: SetFXFloatPos_FXStateChunk - sets the float state and position of the fx-window of an fx in an FXStateChunk
- FX-Management: GetFXGuid_FXStateChunk - sets the new guid of an fx in an FXStateChunk
- FX-Management: SetFXMidiPreset_FXStateChunk - sets the MIDIPRESET-entry-values of an FXStateChunk(link to midi program change)
- FX-Management: SetFXWak_FXStateChunk - sets the WAK-entry-values of an FXStateChunk(embed and send keyboardinput to fx)
- FX-Management: SetLastSel_FXStateChunk - sets the last selected fx of an FXStateChunk
- FX-Management: SetShow_FXStateChunk - sets the SHOW-entry-values of an FXStateChunk(the currently shown fx in the fxchain)
- FX-Management: SetWndRect_FXStateChunk - sets the position of the fxchain-window when floating from an FXStateChunk
- ItemManagement: GetItemImage - gets the image, associated with an item in the item-notes-dialog
- ItemManagement: SetItemImage - sets the image, associated with an item in the item-notes-dialog
- MarkerManagement: GetAllCustomMarkerNames - returns all custom-marker-names available in the current project(requested by fernsehmuell)
- MarkerManagement: GetAllCustomRegionNames - returns all custom-region-names available in the current project(requested by fernsehmuell)
- Misc: Ultraschall_Api_List_Of_USDocML-Containing_Files.txt - a list of all Lua-files, that contain Ultraschall-API-related USDocBlocs(requested by gxray)
- User Interface: GetUIScale - gets the scaling of Reaper's UI(requested by willpadgett)
- User Interface: SetUIScale - sets the scaling of Reaper's UI(requested by willpadgett)
Changes from 4.2.002 to 4.2.003
- Automation Items: AutomationItem_Delete - didn't work due stupid bug, completely rewritten -> fixed(thanks to XRaym)
- Configuration-files: CountKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: CountKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: CountKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: DeleteKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: DeleteKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: DeleteKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: GetActionCommandIDByFilename - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: GetKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: GetKBIniActionsID_ByActionCommandID - setting filename_with_path=nil uses default reaper-kb.ini; rewritten and sped up by magnitudes; returns found indices as table now; didn't work with command-id-numbers -> fixed(thanks to Aaron Cendan)
- Configuration-files: GetKBIniFilepath - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: GetKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: GetKBIniKeys_ByActionCommandID - setting filename_with_path=nil uses default reaper-kb.ini; rewritten and sped up by magnitudes; returns found indices as table now; didn't work with command-id-numbers -> fixed(thanks to Aaron Cendan)
- Configuration-files: GetKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: GetKBIniScripts_ByActionCommandID - setting filename_with_path=nil uses default reaper-kb.ini; rewritten and sped up by magnitudes; returns found indices as table now; didn't work with command-id-numbers -> fixed(thanks to Aaron Cendan)
- Configuration-files: QueryKeyboardShortcutByKeyID - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: SetKBIniActions - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: SetKBIniKeys - setting filename_with_path=nil uses default reaper-kb.ini
- Configuration-files: SetKBIniScripts - setting filename_with_path=nil uses default reaper-kb.ini
- Developer Tools: ultraschall_functions_ProjectManagement_ProjectFiles_Module.lua - uses now the project active at script-start.
- Developer Tools: ultraschall_ShowProjectDiffs.lua - doesn't need to save the project anymore to show changes in the projectfile
- Docs: Reaper Internals - update to Reaper 6.20, SWS 2.12.1.3; added missing retvals and params, removed duplicated ones
- Docs: Render-presetfile-docs - added 2nd pass render-option
- Doc-Engine: Docs_GetUSDocBloc_Params - returns now 0, when no retval is found
- Doc-Engine: Docs_GetUSDocBloc_Retvals - returns now 0, when no retval is found
- Developer: EditReaScript - allows now setting position and size of the to-open-IDE-window
- EnvelopeManagement: GetTrackEnvelope_ClickState - works now again
- File-Management: CountDirectoriesAndFilesInPath - flushes cache on Reaper 6.20+ to be more reliable
- File-Management: DirectoryExists - flushes cache on Reaper 6.20+ to be more reliable
- File-Management: GetAllDirectoriesInPath - flushes cache on Reaper 6.20+ to be more reliable
- File-Management: GetAllFilenamesInPath - flushes cache on Reaper 6.20+ to be more reliable
- File-Management: GetAllRecursiveFilesAndSubdirectories - flushes cache on Reaper 6.20+ to be more reliable
- HelperFunctions: CheckActionCommandIDFormat - returns now true, when the command-id-number is passed over as string as well; fixes some functions(thanks to Aaron Cendan)
- HelperFunctions: IsOS_Mac - works now on arm-macs as well(thanks to rstockm)
- MarkerManagement: AddEditMarker - works now on arm-macs as well(thanks to rstockm)
- MarkerManagement: AddEditRegion - works now on arm-macs as well(thanks to rstockm)
- MarkerManagement: AddPodRangeRegion - works now on arm-macs as well(thanks to rstockm)
- MarkerManagement: CountAllCustomMarkers - "" counts now all custom-markers, regardless of their name
- MarkerManagement: CountAllCustomRegions - "" counts now all custom-regions, regardless of their name
- MarkerManagement: DeleteCustomMarkers - "" deletes now over all custom-markers, regardless of their name
- MarkerManagement: DeleteCustomRegions - "" deletes now over all custom-regions, regardless of their name
- MarkerManagement: EnumerateCustomMarkers - "" enumerates now over all custom-markers, regardless of their name
- MarkerManagement: EnumerateCustomRegions - "" enumerates now over all custom-regions, regardless of their name
- MarkerManagement: GetAllCustomMarkers - "" returns now all custom-markers, regardless of their name(requested by fernsehmuell)
- MarkerManagement: GetAllCustomRegions - "" returns now all custom-regions, regardless of their name
- MarkerManagement: IsMarkerValidCustomMarker - "" checks now over all custom-markers, regardless of their name
- MarkerManagement: IsRegionValidCustomRegion - "" checks now over all custom-regions, regardless of their name
- MarkerManagement: SetCustomMarker - "" sets now over all custom-markers, regardless of their name
- MarkerManagement: SetCustomRegion - "" sets now over all custom-regions, regardless of their name
- MarkerManagement: SetEditRegion - works now on arm-macs as well(thanks to rstockm)
- MediaItem Management: GetItem_ClickState - works now again
- Miscellaneous: OpenURL - works now on arm-macs as well
- ProjectManagement: GetProjectStateChunk - works now reliable in Reaper 6.20+; fixed some bugs that might improve stability on earlier Reaper-versions
- ProjectManagement: GetProject_RenderStems - supports now 2nd pass rendering(Reaper 6.20+)
- ProjectManagement: IsValidProjectStateChunk - sped up by magnitudes, which is important for checking huge ProjectStateChunks
- ProjectManagement: SetProject_RenderStems - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: AddRenderPreset - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: ApplyRenderTable_Project - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: ApplyRenderTable_ProjectFile - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: CreateNewRenderTable - all parameters are optional and when passed nil, will be set with Reaper's factory defaults
- RenderManagement: GetRenderCFG_Settings_AIFF - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_AVI_Video - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_AudioCD - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_FLAC - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_GIF - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_LCF - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_MKV_Video - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_MP3 - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_MP3ABR - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_MP3CBR - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_MP3MaxQuality - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_MP3VBR - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_MP4Mac_Video - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_OGG - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_OPUS - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_QTMOVMP4_Video - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_WAV - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_WAVPACK - stabilized some edgecases
- RenderManagement: GetRenderCFG_Settings_WebMVideo - stabilized some edgecases
- RenderManagement: GetRenderTable_Project - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: GetRenderTable_ProjectFile - supports now 2nd pass rendering(Reaper 6.20+); didn't return render-cfg and render-cfg2 as empty string when not set in project -> fixed
- RenderManagement: GetRenderPreset_RenderTable - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: IsValidRenderTable - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: RenderProject_RenderTable - supports now 2nd pass rendering(Reaper 6.20+)
- RenderManagement: SetRenderPreset - supports now 2nd pass rendering(Reaper 6.20+)
4.2.002 - "Dave Brubeck - Take Five" - 25th of December 2020
Has now 1359 functions, with 8 new ones
new in this release:
Get/Set Comment-field of fx
You can now get and set the comment-field of trackfx and takefx programmatically. Also gave me the chance to fix some bugs as well ;)
Linesorting script for clipboard-content
Sometimes, you would love to sort the lines in the clipboard. Now you can, using the new developer-tool.
bugfixes and docs
various bugfixes and update to Reaper Internals to Reaper 6.19, SWS 2.12.1.1, JS-extension 1.220
New features in 4.2.002
- DeveloperTools: ultraschall_developertool_SortLinesInClipboardText.lua - sorts the lines of the string in the clipboard
- FX-Management: CountFXFromFXStateChunk - counts the number of fx in an FXStateChunk
- FX-Management: GetFXComment_FXStateChunk - allows getting the comment of an fx within an FXStateChunk(requested by en5ca)
- FX-Management: GetTrackFXComment - gets the text in the comment-field of a trackfx(requested by en5ca)
- FX-Management: GetTakeFXComment - gets the text in the comment-field of an itemfx(requested by en5ca)
- FX-Management: InputFX_GetComment - gets the text in the comment-field of an inputfx
- FX-Management: SetFXComment_FXStateChunk - allows setting the comment of an fx within an FXStateChunk(requested by en5ca)
- FX-Management: SetTrackFXComment - sets the text in the comment-field of a trackfx(requested by en5ca)
- FX-Management: SetTakeFXComment - sets the text in the comment-field of an itemfx(requested by en5ca)
Changes from 4.2.001 to 4.2.002
- API: Settings - allows now turning on/off confirmation dialogs in certain devtools(for streamlined manipulation of strings); had some bug, when not set a value yet -> fixed
- Docs: Reaper Internals - updated to Reaper 6.19 and SWS 2.12.1.1 and JS-extension 1.220
- File-Management: PreviewMediaFile - allows now setting the output-channel of the preview as well
- FX-Management: GetFXFromFXStateChunk - didn't return possible comment-field -> fixed
- FX-Management: GetFXSettingsString_FXLines - didn't work due stupid bug on my side; crashed when an fx didn't have fx-lines available -> both fixed(thanks to woodslanding)
- Helper functions: EditReaScript - allows now opening the last file you opened up with this function by passing nil; adding Ultraschall-API is now supported; optionally add this script to the actionlist; docs were wrong -> fixed
- Helper functions: Base64_Decoder - fixed off-by-one-error that could mess up the last character in the Base-64-string under certain conditions
- Helper functions: Base64_Encoder - had inner variable exposed -> fixed
- RenderManagement: ApplyRenderTable_Project - didn't always apply Mono-Media and Multi-Channel-checkboxes properly -> fixed(thanks to aurelien)
- RenderManagement: ApplyRenderTable_ProjectFile - didn't always apply Mono-Media and Multi-Channel-checkboxes properly -> fixed(thanks to aurelien)
4.2.001 - "Pink Floyd - High Hopes" - 1st of December 2020
Has now 1351 functions, with 9 new ones
new in this release:
StuffMIDIMessage and KB.ini-functions
You can now convert the KEY-entry-codes of shortcuts(as stored in the reaper-kb.ini) into their text representation: CharacterCodes_ReverseLookup_KBIni
This is also possible, if you use StuffMIDIMessage to send control-messages, as these can be converted now into their text-representation as well: CharacterCodes_ReverseLookup
Multiple keymaps supported.
Oh, and did I mention, you can now also get all currently set shortcuts as a handy table? Optionally with factory-default shortcuts?
Now I did: KBIniGetAllShortcuts
Metadata for AIFF, APE and XMP
As of Reaper 6.16, you can add metadata for AIFF, APE and XMP as well. I also updated the other metadata-functions to feature the lastest metadata-features Reaper can offer.
And yes, this includes also support for the new Media Explorer-tags.
ConfigVars support in StateInspector
That's right: you can now monitor config-vars in the StateInspector as well. I also removed the fact that I accidentally deleted your saved slots with each updated.
How come, you didn't tell me that, huh? ;)
CleanUp and Speedup
I made Ultraschall-API much smaller by removing tons of useless files and improving storage of other files by magnitude.
To give you a number: Ultraschall-API is 50% smaller compared to the previous release.
It also loads now 30% faster, so starting scripts using Ultraschall-API is now close to lightspeed.
Various Bugfixes
The render-string-functions didn't work properly with floats. Mostly fps-settings were affected. Now it's working.
Also the StuffMIDIMessage-docs is improved now and more precise.
New features in 4.2.001
- ConfigFile Management: KBIniGetAllShortcuts - returns all shortcuts of the currently running Reaper-instance as a handy table
- Helper functions: CharacterCodes_ReverseLookup - converts the StuffMIDIMessage-bytes(with parameter mode=1) into their character-representation
- Helper functions: CharacterCodes_ReverseLookup_KBIni - converts the first two bytes of the KEY-entries in reaper-kb.ini into their character-representation
- Helper functions: RFR - (ReturnFirstRetvals) allows you to get only the first x return-values of a function
- Helper functions: RLR - (ReturnLastRetvals) allows you to get only the last x return-values of a function
- Helper functions: RRR - (ReturnRangeRetvals) allows you to get only a range of all return-values of a function
- Metadata: Metadata_AIFF_GetSet - gets/sets the AIFF-metadata of the current project
- Metadata: Metadata_APE_GetSet - gets/sets the APE-metadata of the current project
- Metadata: Metadata_XMP_GetSet - gets/sets the XMP-metadata of the current project
Changes from 4.1.007 to 4.2.001
- API: Loadspeed - sped up loading-speed of API by 30%
- DeveloperTools: Config Var Displayer - improved layout for monospaced ReaScript-console-font
- Developer Tools: State Inspector - supports now config-vars; reduced needed files to save space; ini-file accidentally overwritten when updating API via ReaPack -> fixed
- Docs: Concepts - split installation and usage of Ultraschall-API into two chapters; removed the hotfix-chapter(was outdated); corrected download-link
- Docs: Config-Vars - added mac-only-configvars(thanks to cfillion)
- Docs: Example-videos - removed
- Docs: Reaper Internals - updated to Reaper 6.17
- Docs: StuffMIDIMessage-docs - rewrote it as it contained many many errors
- Helper functions: LimitFractionOfFloat - removed roundit-parameter(if you need it, give me a hint); more stable now.
- IniFiles: Reaper-ActionList_v5_96.ini - removed, can be produced using developertool ultraschall_developertool_ActionlistToIni-Converter.lua
- Ini-Files: Reaper-factory-default-KEY-Codes_for_reaper-kb_ini.ini - corrected some mistakes
- Metadata: Metadata_BWF_GetSet - added new tags as of Reaper 6.16
- Metadata: Metadata_ID3_GetSet - added new tags as of Reaper 6.16
- Metadata: Metadata_INFO_GetSet - added new tags as of Reaper 6.16
- Metadata: Metadata_IXML_GetSet - added new tags as of Reaper 6.16
- Metadata: Metadata_VORBIS_GetSet - added new tags as of Reaper 6.16
- Misc: Docs-gfx - removed them from the misc-folder(were redundant)
- Misc: Developer-langpack removed - use ultraschall_developertool_LangPack2Developer_langpack_converter.lua to create one
- Misc: Reaper 5 developer translationpack - removed
- Misc: Notifications-sound - removed
- Misc: Reaper-KEY-Codes_for_reaper-kb_ini.ini - removed, use CharacterCodes_ReverseLookup instead to get the codes
- Misc: ShowVars_Toggle.txt - removed(was redundant)
- Misc: StuffMidiMessage-AllMessages_Englisch_Windows.ini - removed, use CharacterCodes_ReverseLookup instead to get the codes
- Rendering: CreateRenderCFG_OGG - didn't allow for 1.0 vbr-setting in certain edge-cases -> fixed
- Rendering: CreateRenderCFG_Opus - didn't create correct bitrate in string -> fixed
- Rendering: various create-render-cfg-function - parameter fps didn't always produce the correct fps-values -> fixed
- Rendering: various functions - had parameter fps incorrectly documented as integer though it's number -> fixed
4.1.007 - "Frank Zappa - Carolina Hard-Core Ecstasy" - 21st of October 2020
Has now 1342 functions, with 48 new ones
new in this release:
Default v6-Theme-functions
Ever wanted to write scripts that do, what the theme-adjuster can? Here's your chance.
42 functions give you life, themeiverse and all the rest needed.
EditReaScript
Create new scripts and open them in the IDE right from a script. Or edit an existing one. Now possible with EditReaScript().
GetFocusedFX and GetLastTouchedFX
Basically like Reaper's own ones BUT I improved the parameter-interface so it is actually useable for regular scripters.
SFEM
Sometimes, you want to get the first error-message that has happened in your script, which signals, what's the first thing that went wrong.
SFEM(for Show First Error Message) is your way to go.
IsItemVisible and IsTrackVisible
That's right, you can check now, if an item or track is visible in the arrangeview.
You can check, whether they are fully in arrangeview or just partially.
Small Fixes and Docs
Small bugfixes here and there as well updates to the docs for Reaper 6.15 and SWS 2.12.1
New features in 4.1.007
- Developer: EditReaScript - edits a ReaScript in Reaper's IDE; creates it, if not yet existing
- ErrorMessagingSystem: SFEM - returns the first error message from the current script-run
- FXManagement: GetFocusedFX - returns the focused FX(easier than Reaper's own API-function)
- FXManagement: GetLastTouchedFX - returns the last touched fx(easier than Reaper's own API-function)
- MediaItem-Management: IsItemVisible - returns, if a MediaItem is visible or not
- TrackManagement: IsTrackVisible - returns, if a track is visible or not
- ThemeManagement: Theme_Defaultv6_GetEnvFaderSize - gets the current size of the faders of envelopes when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_GetEnvNameSize - gets the current size of the name of envelopes when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_GetEnvSize - gets the current size of the envelope when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_GetEnvFolderIndent - gets the current indentation-related-to-trackfolder-setting when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_GetHideTCPElement - gets the current hidden-states of tcp-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetMCPAlignControls - gets the current alignement of controls in tcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetMCPBorderStyle - gets the current border-style of the mcp when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_GetMCPFolderIndent - gets the current folder indentation of mcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetMCPMeterExpansion - gets the current MCP meter expansion when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetMCPSizeAndLayout - gets the current MCP-size and layout when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetStyleMCPElement - gets the style of an mcp-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPAlignControls - gets the current alignement of controls in tcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPInputSize - gets the current size of the input-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPFolderIndent - gets the new folder-indent-size of tcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPMeterLocation - gets the current location of the meter-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPMeterSize - gets the current size of the meter-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPNameSize - gets the current size of the track-name-label when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPSizeAndLayout - gets the current TCP-size and layout when using default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTCPVolumeSize - gets the current size of the volume-element when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTransPlayRateSize - gets the current size of the playrate-slider when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_GetTransSize - gets the current size of the transport when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetEnvFaderSize - sets the current size of the faders of envelopes when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetEnvNameSize - sets the new size of the name of envelopes when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetEnvSize - sets the new size of the envelope when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetEnvFolderIndent - sets the new indentation-related-to-trackfolder-setting when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetHideTCPElement - sets the hidden-states of tcp-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetMCPAlignControls - sets the new alignement of controls in tcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetMCPBorderStyle - sets the new border-style of the mcp when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetMCPFolderIndent - sets the new folder indentation of mcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetMCPMeterExpansion - sets the new MCP meter expansion when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetMCPSizeAndLayout - sets the new MCP-size and layout when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetStyleMCPElement - sets the style of an mcp-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPAlignControls - sets the new alignement of controls in tcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPInputSize - sets the new size of the input-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPFolderIndent - sets the new folder-indent-size of tcp when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPMeterLocation - sets the new location of the meter-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPMeterSize - sets the new size of the meter-element when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPNameSize - sets the new size of the track-name-label when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPSizeAndLayout - sets the new TCP-size and layout when using default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTCPVolumeSize - sets the new size of the volume-element when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTransPlayRateSize - sets the new size of the playrate-slider when using the default v6-theme
- ThemeManagement: Theme_Defaultv6_SetTransSize - sets the new size of the transport when using the default v6-theme
Changes from 4.1.006 to 4.1.007
- Developer Tools: Theme Parameter Monitor - didn't stop script, when closed by close-window-button -> fixed
- ThemeManagement: Theme_Defaultv6_SetMCPSize - didn't work, when no layout was present already -> fixed
- TrackManagement: GetAllVisibleTracks_Arrange - returns the found tracks now as MediaTrack-objects as well; didn't find master-track under certain circumstances -> fixed
- UserInterface: TCP_SetWidth - errors in the docs -> fixed
4.1.006 - "Rage against the machine - Renegades of Funk" - 11th of October 2020
Has now 1294 functions, with 54 new ones
new in this release:
InputFX/MonitoringFX
You can now code monitoringFX the same as you already could code TrackFX and TakeFX. Ever wanted to set a full FXChain into monitoring fx? Now you can.
54 functions only for that. I must be insane...
ParameterModulation
Fixed a bug and therefore added a new feature for parameter linking.
ParmModTables have now two entries to set the index of the linked plugin: PARMLINK_LINKEDPLUGIN and PARMLINK_LINKEDPLUGIN_RELATIVE.
To set an absolute plugin-index, set PARMLINK_LINKEDPLUGIN=absolute-index and PARMLINK_LINKEDPLUGIN_RELATIVE=nil
To set a relative plugin-index, set PARMLINK_LINKEDPLUGIN=any number and
PARMLINK_LINKEDPLUGIN_RELATIVE=0(current plugin), negative(higher in the FXChain), positive(lower in the FXChain)
GetFunctions will usually have the linked plugin indexed in a relative-to-the-current-plugin-index(Reaper's standard behavior).
RenderFixes
Renderfunctions sometimes created peak-files when not necessary. This is fixed now and speeds up the time between finished render and returning to the project.
New features in 4.1.006
- FXManagement: InputFX_AddByName - adds an fx as monitoring fx
- FXManagement: InputFX_CopyFX - copies a monitoring fx and inserts it at a new position
- FXManagement: InputFX_CopyFXFromTakeFX - copies a monitoring fx to a takeFX
- FXManagement: InputFX_CopyFXFromTrackFX - copies a trackfx into a monitoring fx
- FXManagement: InputFX_CopyFXToTakeFX - copies a monitoring fx to a takeFX
- FXManagement: InputFX_CopyFXToTrackFX - copies a monitoring fx into a track as trackfx
- FXManagement: InputFX_Delete - deletes a certain monitoring-fx
- FXManagement: InputFX_EndParamEdit - no idea what this function does, but it exists for trackFX and now for monitoring-fx too
- FXManagement: InputFX_GetChainVisible - returns, if the current monitoring-fx-chain is visible and the index of the currently visible fx
- FXManagement: InputFX_GetCount - returns the number of available monitoring-fx
- FXManagement: InputFX_GetEnabled - returns, if a certain monitoring-fx is enabled or not
- FXManagement: InputFX_GetEQ - returns the index of the first ReaEQ-instance in monitoring-fx; optionally creates an instance
- FXManagement: InputFX_GetEQBandEnabled - returns the enabled/disabled state of a band of a ReaEQ-instance in monitoring-fx
- FXManagement: InputFX_GetEQParam - returns the parameter-value of a ReaEQ-instance in monitoring-fx
- FXManagement: InputFX_GetFloatingWindow - returns the hwnd of a floating monitoring-fx-window
- FXManagement: InputFX_GetFormattedParamValue - returns the current value of a parameter of a monitoring fx formatted
- FXManagement: InputFX_GetFXChain - gets the FXStateChunk of the current monitoring-fx-chain
- FXManagement: InputFX_GetFXGUID - returns the guid of a monitoring-fx
- FXManagement: InputFX_GetFXName - returns the name of a monitoring-fx
- FXManagement: InputFX_GetIOSize - returns the plugin-type and the number of input/output pins(if available) for a monitoring-fx
- FXManagement: InputFX_GetNamedConfigParm - returns the plug-in specific named configuration value of a monitoring-fx
- FXManagement: InputFX_GetNumParams - returns the number of parameters of a monitoring-fx
- FXManagement: InputFX_GetOffline - returns, if a certain monitoring-fx is offline or not
- FXManagement: InputFX_GetOpen - returns, if a certain monitoring-fx is visible or not
- FXManagement: InputFX_GetParam - returns the current, maximum and minimum value of a parameter of a monitoring-fx
- FXManagement: InputFX_GetParamEx - returns the current, maximum, minimum and mid-values of a parameter of a monitoring-fx
- FXManagement: InputFX_GetParameterStepSizes - returns the stepsizes of a parameter of a monitoring-fx
- FXManagement: InputFX_GetParamName - returns the name of a parameter of a monitoring-fx
- FXManagement: InputFX_GetParamNormalized - returns a normalized version of the current value of a parameter of a monitoring-fx
- FXManagement: InputFX_GetPinMappings - returns the current pin-mappings of a monitoring-fx
- FXManagement: InputFX_GetPreset - returns the name of the currently selected preset
- FXManagement: InputFX_GetPresetIndex - returns the index of the currently selected monitoring-fx plus all available presets
- FXManagement: InputFX_GetUserPresetFilename - gets the preset's-filename(which stores the presets) of a certain monitoring-fx
- FXManagement: InputFX_FormatParamValue - formats a value in the style of a parameter
- FXManagement: InputFX_FormatParamValueNormalized - formats a value in the style of a parameter as normalized
- FXManagement: InputFX_MoveFX - moves a monitoring fx to a new position
- FXManagement: InputFX_MoveFXFromTakeFX - moves a takeFX to the monitoring-fx-chain
- FXManagement: InputFX_MoveFXToTakeFX - moves a monitoring-fx into take as takeFX
- FXManagement: InputFX_MoveFXFromTrackFX - moves a trackFX to the monitoring-fx-chain
- FXManagement: InputFX_MoveFXToTrackFX - moves a monitoring-fx into a track as trackFX
- FXManagement: InputFX_NavigatePresets - navigates through the presets of a monitoring-fx
- FXManagement: InputFX_SetEnabled - set a monitoring-fx enabled or disabled
- FXManagement: InputFX_SetEQBandEnabled - sets a enable-state of a band of a ReaEQ-instance in monitoring-fx
- FXManagement: InputFX_SetEQParam - sets new values of a band of a ReaEQ-instance in monitoring-fx
- FXManagement: InputFX_SetFXChain - sets a FXStateChunk into the monitoring-fx-chain; optionally replaces it
- FXManagement: InputFX_SetOffline - sets a monitoring-fx offline/online
- FXManagement: InputFX_SetOpen - sets visibility of a monitoring fx visible/invisible
- FXManagement: InputFX_SetParam - sets a parameter of a monitoring-fx
- FXManagement: InputFX_SetParamNormalized - sets a parameter of a monitoring-fx as normalized value
- FXManagement: InputFX_SetPinMappings - sets the pinmappings of a monitoring-fx
- FXManagement: InputFX_SetPreset - sets a preset of a monitoring-fx by presetname
- FXManagement: InputFX_SetPresetByIndex - sets a preset of a monitoring-fx by presetindex
- FXManagement: InputFX_Show - sets visibility and floating-state of a monitoring-fx
- FXManagement: InputFX_QueryFirstFXIndex - queries the first fx within monitoring fx with a certain fxname
- FXManagement: ParmModTable - new entry PARMLINK_LINKEDPLUGIN_RELATIVE, which allows indexing linked parameters relative to current fx(thanks to anton9 and Justin)
Changes from 4.1.005 to 4.1.006
- Docs: ReaperAPIDocs - updated to JS-extension 1.217
- Docs: VideoProcessor - added default-value-descriptions for param
- FXManagement: AddParmMod_ParmModTable - produced nil-error with invalid fx-index; didn't correctly set the linked-parameter index(thanks to anton9 and Justin)
- FXManagement: CreateDefaultParmModTable - didn't correctly return the linked-parameter index(thanks to anton9 and Justin)
- FXManagement: GetParmModTable_FXStateChunk - didn't correctly return the linked-parameter index(thanks to anton9 and Justin)
- FXManagement: IsValidParmModTable - didn't correctly check the linked-parameter index(thanks to anton9 and Justin)
- FXManagement: SetParmMod_ParmModTable - produced nil-error with invalid fx-index; didn't correctly set the linked-parameter index(thanks to anton9 and Justin)
- Rendering: Render_Loop - created unneeded peakfiles under some circumstances -> fixed(thanks to pandabot)
- Rendering: RenderProject - created unneeded peakfiles under some circumstances -> fixed(thanks to pandabot)
- Rendering: RenderProject_Regions - created unneeded peakfiles under some circumstances -> fixed(thanks to pandabot)
- Rendering: RenderProject_RenderTable - created unneeded peakfiles under some circumstances -> fixed(thanks to pandabot)
4.1.005 - "The Beatles - I want you(she's so heavy)" - 25th of September 2020
Has now 1240 functions, with 25 new ones
new in this release:
Parameter Modulation/Learn/Alias/LFOLearn
A long time feature-request finally fulfilled. You have full access to programmatically get/alter parameter-modulation, parameter aliases, LFOLearn or Learn in general.
So anything you would want to do with parameter-modulation can now be scripted.
I'm curious, what will happen because of that feature. Surprise me.
Requested by so many.
Please consider donating, as this was a massive undertaking. Holy cow!
SLEM
Allows now different output-targets, so outputting the last error-message to the ReaScript-console or even the clipboard is possible with that.
Lua-ReferenceManual
Now included is the Lua 5.3 reference-manual, so it's always at your hand when needed.
Ultraschall-API settings dialog
There's now an Ultraschall-API settings dialog. Not much in there yet, but you can already set, where SLEM() or ultraschall.ShowLastErrorMessage() shall output their error-messages.
More to follow.
Launchpad_functions
I wrote some launchpad 1st generation-functions, which you can find in the misc-folder. So if you want to be able to program its button's lights, you can do it.
Gmem functions
For those of you, who want to use different gmem-names in your functions, you sometimes run into trouble, that you can't restore the old gmem-attachement again, as you can't get its old name.
Now you can. Gmem_GetCurrentAttachedName returns the last used gmem-attachname. Keep it to later attach the old gmem back.
This works best, if you add the dofile-line to activate Ultraschall-API as first code-line in your script.
Filemanager demo
To showcase the background-copying-functions, I wrote a small filemanager demo, which is now available in the example-scripts.
It shows you, how you can copy even large files in the background and still manage to run the UI of a script without having to code complex background-copying-routines.
MB works again on Windows and Linux
Broke in Reaper 6 but I could fix it so replacing the button-texts is possible again. Mac-users are out of luck, as the button-texts can't be replaced there in the first place. Sorry.
GetUserInputs on Mac
Also broke with Reaper 6 due some internal changes of Reaper. I finally managed to make it work again.
So you can get and set the captions and retvals again of the GetUserInputs-dialog.
Resizing of caption/retval-fields and the positioning of the GetUserInput-window doesn't work on Mac currently, but will return later.
So you can use these parameters safely on Mac and one of the future updates will make it work out of a sudden. :)
New features in 4.1.005
- API: requirements - raised required Reaper-version to 6.05
- API: Settings-Dialog - allows you to set US-API-default-settings(currently the default output of ShowLastErrorMessage()/SLEM())
- Docs: FXManagement - added chapters about Introduction, Manipulating individual effects, Working with FX-StateChunks, Working with FX-StateChunk's functions
- Docs: ParameterMod/Learn/Mapping - added chapters about Introduction, Parameter Alias, Parameter LFO Learn, Parameter Mapping Learn
- Docs: Lua Reference Manual - now added for Lua 5.3, so you have its manual right at hand
- DeveloperTools: MonitorParmModulation.lua - monitors a certain parameter-modulation and shows the contents of its ParmModTable
- EnvelopeManagement: IsAnyNamedEnvelopeVisible - returns, if there's a specific named-envelope set to visible in any track
- EnvelopeManagement: IsEnvelope_Track - returns, if an envelope is a TrackEnvelope(true) or a TakeEnvelope(false)
- EnvelopeManagement: IsTrackEnvelopeVisible_ArrangeView - returns, if a TrackEnvelope is currently visible in arrangeview
- Examplescript: US_Api_Examples_FileManager_example_showcasing_background_copying.lua - a simple file-manager which showcases background-copying
- FXManagement: AddParmMod_ParmModTable - adds a new parameter-modulation of a specific FX in an FXStateChunk via a ParmModTable
- FXManagement: CountParmModFromFXStateChunk - counts the number of parameter-modulations of a specifix FX in an FXStateChunk
- FXManagement: CreateDefaultParmModTable - creates a ParameterModulationTable which holds Reaper's default values and can be altered
- FXManagement: DeleteParmAlias2_FXStateChunk - like DeleteParmAlias_FXStateChunk, but allows indexing by parameter-index, not by number of existing aliasnames
- FXManagement: DeleteParmModFromFXStateChunk - deletes a parameter-modulation of a specific FX in an FXStateChunk
- FXManagement: GetAllParmAliasNames_FXStateChunk - gets all parameter-aliasnames of a specific fx from an FXStateChunk
- FXManagement: GetParmAlias2_FXStateChunk - like GetParmAlias_FXStateChunk but allows indexing by parameter-index instead
- FXManagement: GetParmModTable_FXStateChunk - returns a table with all values of a certain parameter-modulation of an fx
- FXManagement: GetFXSettingsString_FXLines - returns the statestring of an fx as base64 and decoded-binary string
- FXManagement: IsValidParmModTable - returns, if a table is a valid ParmModTable(used for altering Parameter-Modulations)
- FXManagement: SetParmAlias2_FXStateChunk - like SetParmAlias_FXStateChunk but indexes by parameterindex, not already existing aliases
- FXManagement: SetParmMod_ParmModTable - sets a parameter-modulation of an fx in an FXStateChunk via a ParmModTable
- GFX-Management: GFX_DrawEmbossedSquare - draws an embossed square with optional background
- GMEM: Gmem_GetCurrentAttachedName - returns the name of the currently attached gmem
- Helper Functions: ActionsList_GetAllActions - returns all actions and shortcuts currently visible in the opened actionlist
- Helper Functions: Create2DTable - creates a 2-dimensional table, of which all fields are indexable right away; optionally set to a default value
- Helper Functions: Create3DTable - creates a 3-dimensional table, of which all fields are indexable right away; optionally set to a default value
- Helper Functions: CreateMultiDimTable - create an up to 10-dimensional table, of which all fields are indexable right away; optionally set to a default value
- Misc: Launchpad_functions - if you have a first generation LaunchPad by Novation, you can program it via a function-library in the misc-folder
- ProjectManagement: AutoSave_GetMinutes - returns the number of minutes, at which a new autosaved project shall be saved
- ProjectManagement: AutoSave_GetOptions - gets several auto-save-options
- ProjectManagement: AutoSave_SetMinutes - sets the number of minutes, at which a new autosaved project shall be saved
- ProjectManagement: AutoSave_SetOptions - sets several auto-save-options
- ProjectManagement: GetProject_Author - gets the author of a projectfile or ProjectStateChunk(requested by dragonetti)
Changes from 4.1.004 to 4.1.005
- API: print - replaces null-characters now with . when displaying strings containing them
- API: print2 - replaces null-characters now with . when displaying strings containing them
- API: print_alt - replaces null-characters now with . when displaying strings containing them
- API: print_update - replaces null-characters now with . when displaying strings containing them
- Docs: AddParmAlias_FXStateChunk - was missing parameter in functioncall -> fixed
- Docs: ParmLearn-docs - corrected information and added missing stuff
- Docs: Reaper; GetUserInputs - added information about how to pass over default-retvals and its limitations
- Docs: Reaper Internals - updated to Reaper 6.14
- Error Messaging-System: ReadErrorMessage - allows now keeping error-message readstate as unread
- Error Messaging-System: ShowLastErrorMessage - additional parameters and retvals for more control of the output-target and messagetype returned
- Error Messaging-System: SLEM - additional parameters and retvals for more control of the output-target and messagetype returned
- EventManager: Eventmanager mainscript - always executed the checks-functions before updating externally sent states which could lead to race-condition-problems -> fixed(thanks to rstockm)
- File Management: CopyFile_AddFileToQueue - basic check, if the target-file is the same as the source-file and throws an error in these cases
- File Management: GetAllDirectoriesInPath - omitted folderseparator in returned folders, if it hasn't been passed into parameter path
- File Management: CopyFile_GetRemainingFilesToCopy - returned the wrong number of remaining files -> fixed
- FXManagement: GetFXFromFXStateChunk - returns now the start and endoffset of the returned lines, so they could be used for string substitution; didn't return anything under some circumstances -> fixed
- FXManagement: GetParmAudioControl_FXStateChunk - deprecated
- FXManagement: GetParmLFO_FXStateChunk - deprecated
- FXManagement: GetParmMIDIPLink_FXStateChunk - deprecated
- Helper Functions: ActionsList_GetSelectedActions - returns now the shortcuts of the selected actions as well
- ParmAlias: AddParmLearn_FXStateChunk - did not add aliasnames with spaces correctly, added it to one parameter higher than requested -> fixed
- ParmAlias: SetParmLearn_FXStateChunk - did not set aliasnames with spaces correctly -> fixed
- TrackManagement: SetTrackStateChunk_Tracknumber - had inner variable exposed -> fixed
- User Interface: GetUserInputs - workaround for Mac, so this should work again on Mac OS
- User Interface: MB - workaround for Mac, so this should work again on Mac OS
4.1.004 - "I, E.T." - 21st of July 2020
Has now 1215 functions, with 15 new ones
new in this release:
Background Copying
You can now copy files in the background(as additional defer-loops) within your script, while you do other stuff in your main defer-loops.
You can set a buffer-size, which means, how much shall be copied per defer-cycle to balance between transfer-speed and possible Reaper-GUI-lags.
TimeToMeasures
This allows you to convert a time in seconds to measures. I've used it in one script to set pre-roll(which only accepts measures) to a length in seconds.
RenderCodes for FFMPEG 4.1.3 on Windows
If you've installed FFMPEG 4.1.3 in your Reaper-installation, you have additional output-render-formats available. I've added docs for these renderstring-settings now as well.
Updated docs, examplescripts and bugfixes
New features in 4.1.004
- Docs: Concepts: Background Copying - decribes, how to program the background-copying-queue
- FileManagement: CopyFile_AddFileToQueue - add files to the background-copying-queue
- FileManagement: CopyFile_FlushCopiedFiles - flush the files from the copied list of the background-copying-queue
- FileManagement: CopyFile_GetBufferSize - get the current copying-buffer size of the background-copying-queue
- FileManagement: CopyFile_GetCopiedStatus - returns the current copy-status of a file in the background-copying-queue
- FileManagement: CopyFile_GetCurrentlyCopiedFile - get the currently copied file in the background-copying-queue
- FileManagement: CopyFile_GetCurrentlyRunningCopyInstances - get amount of currently running background-copying-instances
- FileManagement: CopyFile_GetPausedState - get paused state of the background-copying-queue
- FileManagement: CopyFile_GetRemainingFilesToCopy - get the remaining files in the background-copying-queue
- FileManagement: CopyFile_IsCurrentlyCopying - returns, if background-copying is currently copying
- FileManagement: CopyFile_Pause - toggle pausing of the background-copying-instances
- FileManagement: CopyFile_SetBufferSize - set the new copying-buffer-size of the background-copying-queue
- FileManagement: CopyFile_StartCopying - start copying all files in the background-copying-queue
- FileManagement: CopyFile_StopCopying - stop copying the files in the background-copying-queue
- Helper Functions: TimeToMeasures - converts a time to measures
- Project Management: GetProject_MetaDataStateChunk - gets the statechunk from a project, which holds all metadata
Changes from 4.1.003 to 4.1.004
- Docs: Reaper Internals - updated to Reaper 6.13
- Docs: render-codes - added codes, who are available after having FFMPEG 4.1.3 installed
- Docs: VideoProcessor-docs - added detailed description for @param and reworked code-examples, as they didn't work previously(thanks to Eliseat)
- Examplescripts: US_Api_Examples_Render_Current_Project.lua - updated to the more recent rendering-functions(used the first and outdated ones)
- Examplescripts: US_Api_Examples_Render_Project.lua - updated to the more recent rendering-functions(used the first and outdated ones)
- Examplescripts: US_Api_Examples_Render_Region_of_current_Project.lua - updated to the more recent rendering-functions(used the first and outdated ones)
- File Management: ReadBinaryFile_Offset - produced nil-error, when offset was after file's end; returned false in case of an error, even though it should return integer -> fixed
- File Management: ReadBinaryFileFromPattern - returned false in case of an error, even though it should return integer -> fixed
- File Management: ReadBinaryFileUntilPattern - returned false in case of an error, even though it should return integer -> fixed
- MediaItems: RippleCut - moving of markers didn't work; added optional parameter which allows optionally moving markers as well
- Rendering: CreateNewRenderTable - did not allow EmbedMetadata being optional -> fixed(thanks to aurelien)
- Rendering: RenderProject - produced error, when a project's timeselection start&end where stored "backwards"; rendercfg for secondary rendering didn't work and caused havoc in numerous functions -> fixed (thanks to elzoido)
4.1.003 - "Premier" - 1st of July 2020
Has now 1200 functions, with 54 new ones
new in this release:
Theme Parameter Access and monitoring script
Since Reaper 6, Cockos added the option of influencing a theme via so called theme-parameters. One such example is WhiteTie's Default Reaper6-Theme, which can be influenced via the theme-adjuster.
And here's the thing: this can not only be influenced, it can also be programmed.
So if you wanted to write scripts, who automatically adjust things without having to use the theme-adjuster, by using GetAllThemeLayoutParameters, ApplyAllThemeLayoutParameters, GetAllThemeLayoutParameters, GetThemeParameterIndexByDescription, GetThemeParameterIndexByName, SetThemeParameterIndexByDescription and SetThemeParameterIndexByName.
And if you want to know, which theme-parameters can be set and which values are the right ones, the developer-package includes now a Theme-Parameter monitoring script.
With that, you can see altered parameters(in Reaper's default v6 theme, for instance) and use the aforementioned functions to influence them accordingly.
Just run the "Script: ultraschall_Add_Developertools_To_Reaper.lua"-script after installing the update and there you have it.
One huge step into theme-customization...
MetaData
Since Reaper has metadata-export-capabilities now, I've added nice and handy functions to get and set them, including docs and everything.
The rendering-functions also allow now switching on the metadata-embedding, so there's no excuse anymore to not use it.
LangPack Compare-script
This is probably useful for translators among you. I wrote a script, which compares two ReaperLangPack-files and returns the differences between the two into the clipboard.
That way you can compare the most recent official LangPack with a former one and can see immediately, what has been added/altered and into where, so you can update your translation accordingly.
Just run the "Script: ultraschall_Add_Developertools_To_Reaper.lua"-script after installing the update and there you have it.
Envelope Activation
When working with envelopes, especially when scripting, you can not really work with envelopes, unless they are activated. Funny enough: there's no "Activate"Envelope"-function in Reaper's own API.
So I tried to find ways around it.
With ActivateEnvelope(good for send-envelopes), ActivateTrackPanEnv, ActivateTrackPreFXPanEnv, ActivateTrackPreFXVolumeEnv, ActivateTrackTrimVolumeEnv, ActivateTrackVolumeEnv you can activate most of the most important envelopes and therefore script them.
Some are still missing, so I hope, I can add the missing ones too...
TrackManager
It has been requested in the feature-request subforum and the general-forum: functions for the trackmanager.
Thing is, it is quite useful, but there are simply no actions available for it, even though having shortcuts set to some of the basics can be very handy.
So I added TrackManager_ClearFilter, TrackManager_OpenClose, TrackManager_ShowAll, TrackManager_SelectionFromProject, TrackManager_SelectionFromList, TrackManager_SetFilter who allow you to script many of the ui-elements of the track manager.
Lokasenna's Gui Lib v2
now part of Ultraschall-API. Just run the function Lokasenna_LoadGuiLib_v2, which loads the GUI-Lib version deployed with Ultraschall-API including all its classes and the rest is the same as you are used to.
There's nothing to worry, if you've already installed Lokasenna's GuiLib v2, as the version I deploy is independent of it.
So you can safely use both on one system.
Ignore-Audio checkbox of video-items
This is requested from time to time again, so I finally added it: the possibility to set the "ignore audio"-checkbox of a video-item.
GetItem_Video_IgnoreAudio and SetItem_Video_IgnoreAudio are the functions of your choice.
Setting Aliasnames for FX-plugins
Not available in the regular API, but in Ultraschall-API. This has been requested shortly before this release, a way to set the alternative/alias name of track and item-fx.
A demofile US_Api_Examples_SetAliasNamesOfFX-Plugins.lua shows, what you can do with it...
SetTimeUnit
Allows setting the timeunit of the transportfield, the ruler and the alternative ruler. Good for toggling through-actions...
Image Handling
ResizeJPG, ConvertPNG2JPG and ConvertJPG2PNG give you more control over managing different image-files.
Bugfixes and other stuff
For rendering, FXChains(as requested), updated nomenclature of functions, SLEM allows now getting more than just the last error-message, etc, etc
New features in 4.1.003
- Developer Tools: Developer LangPack - added developer-langpack for Reaper 6.12c
- Developer Tools: ultraschall_developertool_Theme_Parameter_Monitor.lua - monitor and manipulate theme-parameters(like from the default Reaper6-theme)
- Developer Tools: ultraschall_developertool_Compare_LangPacks.lua - allows you to select two ReaperLangPack-files and puts missing/changed entries from each file into the clipboard
- Envelopes: ActivateEnvelope - activates an envelope, so it can be shown in the arrangeview(thanks to sexan; requested by daniellumertz)
- Envelopes: ActivateTrackPanEnv - activates the pan-envelope lane of a track
- Envelopes: ActivateTrackPanEnv_TrackObject - activates the pan-envelope lane of a trackobject
- Envelopes: ActivateTrackPreFXPanEnv - activates the pre-fx-pan-envelope lane of a track
- Envelopes: ActivateTrackPreFXPanEnv_TrackObject - activates the pre-fx-pan-envelope lane of a trackobject
- Envelopes: ActivateTrackPreFXVolumeEnv - activates the pre-fx-volume-envelope lane of a track
- Envelopes: ActivateTrackPreFXVolumeEnv_TrackObject - activates the pre-fx-volume-envelope lane of a trackobject
- Envelopes: ActivateTrackTrimVolumeEnv - activates the trim-volume-envelope lane of a track
- Envelopes: ActivateTrackTrimVolumeEnv_TrackObject - activates the trim-volume-envelope lane of a trackobject
- Envelopes: ActivateTrackVolumeEnv - activates the volume-envelope lane of a track
- Envelopes: ActivateTrackVolumeEnv_TrackObject - activates the volume-envelope lane of a trackobject
- Envelopes: GetTakeEnvelopeUnderMouseCursor - returns the take-envelope currently under the mouse
- FXManagement: GetTakeFX_AlternativeName - gets the alternative/aliasname of a takefx(requested by dimtok)
- FXManagement: GetTrackFX_AlternativeName - gets the alternative/aliasname of a trackfx(requested by dimtok)
- FXManagement: SetTakeFX_AlternativeName - sets the alternative/aliasname of a takefx(requested by dimtok)
- FXManagement: SetTrackFX_AlternativeName - sets the alternative/aliasname of a takefx(requested by dimtok)
- GUI: Lokasenna's Gui Lib v2 - added his Gui-Lib v2 into Ultraschall-API; will not affect other possible GuiLib-installations on the current Reaper-installation
- GUI: Lokasenna_LoadGuiLib_v2 - loads Lokasennas Gui-Lib and all available classes into your script
- Image Handling: ResizeJPG - resizes jpgs to new jpgs
- Image Handling: ConvertPNG2JPG - converts png into jpg
- Image Handling: ConvertJPG2PNG - converts jpg into png
- MediaItem Management: GetItem_Video_IgnoreAudio - gets the current state of the ignore audio-checkbox of a video-source of a MediaItem's take(requested by earhax)
- MediaItem Management: SetItem_Video_IgnoreAudio - sets the state of the ignore audio-checkbox of a video-source of a MediaItem's take(requested by earhax)
- Metadata Management: Metadata_BWF_GetSet - gets, sets BWF-metadata-tags from/in the current project
- Metadata Management: Metadata_CART_GetSet - gets, sets CART-metadata-tags from/in the current project
- Metadata Management: Metadata_CUE_GetSet - gets, sets CUE-metadata-tags from/in the current project
- Metadata Management: Metadata_ID3_GetSet - gets, sets ID3-metadata-tags from/in the current project
- Metadata Management: Metadata_INFO_GetSet - gets, sets INFO-metadata-tags from/in the current project
- Metadata Management: Metadata_IXML_GetSet - gets, sets IXML-metadata-tags from/in the current project
- Metadata Management: Metadata_VORBIS_GetSet - gets, sets VORBIS-metadata-tags(for Opus/Ogg-files) from/in the current project
- Render Management: GetRender_AddRenderedFilesToProject - gets the checkbox-state for add rendered items to new tracks in project-checkbox in the Render to File-dialog
- Render Management: GetRender_EmbedMetaData - gets the checkbox-state for embed-metadata in the Render to File-dialog
- Render Management: GetRender_NoSilentFiles - gets the checkbox-state for "Do not render files that are likely silent"-checkbox in the Render to File-dialog
- Render Management: GetRender_TailLength - gets the current taillength, as set in the Render to File-dialog
- Render Management: SetRender_AddRenderedFilesToProject - gets the checkbox-state for add rendered items to new tracks in project-checkbox in the Render to File-dialog
- Render Management: SetRender_EmbedMetaData - sets the checkbox for embed-metadata in the Render to File-dialog
- Render Management: SetRender_NoSilentFiles - sets the checkbox-state for "Do not render files that are likely silent"-checkbox in the Render to File-dialog
- Render Management: SetRender_TailLength - sets the current taillength, as set in the Render to File-dialog
- Theme Management: ApplyAllThemeLayoutParameters - applies changes theme-layout parameters to the current theme; use GetAllThemeLayoutParameters to get an alterable table
- Theme Management: GetThemeParameterIndexByDescription - gets the theme parameter's values by its description
- Theme Management: GetThemeParameterIndexByName - gets the theme parameter's values by its name
- Theme Management: SetThemeParameterIndexByDescription - sets the theme parameter's values by its description
- Theme Management: SetThemeParameterIndexByName - sets the theme parameter's values by its name
- Track Management: GetAllVisibleTracks_Arrange - returns all tracks currently visible in viewable part of the arrange-view
- Track Manager: TrackManager_ClearFilter - clears the filter of the opened track manager(requested by Monomirror)
- Track Manager: TrackManager_OpenClose - open, closes and toggles opening of the track manager(requested by Monomirror)
- Track Manager: TrackManager_ShowAll - shows all tracks of the opened track manager(requested by Monomirror)
- Track Manager: TrackManager_SelectionFromProject - sets the selection of the opened track manager to the track-selection of the project(requested by Monomirror)
- Track Manager: TrackManager_SelectionFromList - sets the track-selection of the project into the track-selection of the opened track manager(requested by Monomirror)
- Track Manager: TrackManager_SetFilter - sets the filter of the opened track manager(requested by Monomirror)
- User Interface: GetTrackManagerHWND - gets the tcp of the trackmanager, if opened
- User Interface: SetTimeUnit - sets the timeunit for transport, ruler and secondary ruler
- User Interface: TCP_SetWidth - allows setting a new width of the tcp(initial code by amagalma, thanks for that :) )
- Video Management: ProjectSettings_GetVideoFramerate - gets the currently set project's video-framerate
- Video Management: ProjectSettings_SetVideoFramerate - sets the currently set project's video-framerate and optionally the default for new projects
Changes from 4.1.002 to 4.1.003
- API: Requirements - requires now JS-extension 1.215
- API: titles will now be references to FarScape-episode-titles, until I conquered the farscape of Gui-development
- Docs: GetRender_AutoIncrementFilename - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_EmbedMetaData - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_EmbedStretchMarkers - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_NoSilentFiles - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_OfflineOnlineMode - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_ProjectSampleRateForMix - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_QueueDelay - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_ResampleMode - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: GetRender_SaveCopyOfProject - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: Reaper Internals - updated to Reaper 6.12, fixed nonconverted markdown-links
- Docs: SetRender_AutoIncrementFilename - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_EmbedMetaData - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_EmbedStretchMarkers - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_NoSilentFiles - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_OfflineOnlineMode - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_ProjectSampleRateForMix - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_QueueDelay - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_ResampleMode - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- Docs: SetRender_SaveCopyOfProject - moved in the index to Rendering Projects -> Render Settings, where I would expect such functions
- GFX: GFX_Init - produced nil-error, when the optional-parameters weren't set due missing default-values on my side -> fixed
- Error Management: error-messages - optional boolean errormessages include now, which is the default value when using nil
- Error Management: ShowLastErrorMessage - allows now to access the messages before the last one as well
- Error Management: SLEM - allows now to access the messages before the last one as well
- Envelopes: ActivateMute - had wrong returnvalue in errormessages for parameter track -> fixed
- Envelopes: DeactivateMute - had wrong returnvalue in errormessages for parameter track -> fixed
- FXManagement: GetFXStateChunk - had numerous problems so I reimplemented it from scratch; returns now the linenumber at which the found FXStateChunk starts in the passed StateChunk
- Helper functions: OpenURL - didn't work on Linux -> fixed
- MediaItem Management: SelectMediaItems_MediaItemArray - updates now arrangeview, so selected items are now visible as such
- ReaMote: AutoSearchReaMoteClients - renamed from AutoSearchReaMoteSlaves; the old name is still available but deprecated
- Render Management: AddRenderPreset - added option for embed-metadata-checkbox
- Render Management: ApplyRenderTable_Project - added option for embed-metadata-checkbox
- Render Management: ApplyRenderTable_ProjectFile - added option for embed-metadata-checkbox
- Render Management: CreateNewRenderTable - added option for embed-metadata-checkbox
- Render Management: GetRenderTable_Project - added option for embed-metadata-checkbox
- Render Management: GetRenderTable_ProjectFile - added option for embed-metadata-checkbox
- Render Management: GetRenderPreset_RenderTable - added option for embed-metadata-checkbox
- Render Management: GetRenderToFileHWND - didn't return render to file-dialog-hwnd on recent Reaper-versions -> fixed
- Render Management: IsValidRenderTable - added option for embed-metadata-checkbox
- Render Management: RenderProject_RenderTable - added option for embed-metadata-checkbox
- Render Management: SetRenderPreset - added option for embed-metadata-checkbox
- Routing Management: GetAllAUXSendReceives - could produce a nil-error and returned wrong track-guid, PLEASE CHECK, IF YOUR ROUTING-CODE IS BUGGY NOW AND REPORT BACK2ME, Thanx! -> fixed
- TrackGroups: GetTrackGroupFlagsState - updated nomenclature to Reaper's new one
- TrackGroups: GetTrackGroupFlags_HighState - updated nomenclature to Reaper's new one
- TrackGroups: SetTrackGroupFlagsState - updated nomenclature to Reaper's new one
- TrackGroups: SetTrackGroupFlags_HighState - updated nomenclature to Reaper's new one
- Theme Management: GetAllThemeLayoutNames - didn't return themelayout index 0 -> fixed
- Theme Management: GetAllThemeLayoutParameters - didn't return themeparameter index 0; had off-by-one error in retval index -> fixed
- User Interface: GetHWND_ArrangeViewAndTimeLine - returns now tracklistwindow-tcp as well; didn't find TCP-hwnd when TCP was on the right side of the arrange-view -> fixed(thanks to Edgemeal)
4.1.002 - "The Buzzcocks - Why can't I touch it" - 8th of June 2020
Has now 1146 functions, with 17 new ones
new in this release:
Video window-Toggle Fullscreen
You can now toggle the video-window fullscreen/non-fullscreen via VideoWindow_FullScreenToggle.
Activate/Deactivate Mute-envelopes
Wasn't possible until now: activation and deactivation of Mute-Envelopes, as otherwise you cannot write to them.
MuteActions more stable
They should now set mute-envelope-points properly, no matter of mute-env-armstate and/or automation-mode.
Project-Diffs-Developertool
Reimplemented, so it shows only the diff-lines now.
Benchmarking-functions
You can have multiple benchmark-slots, so benchmarking multiple values at the same time is now possible.
That way, you can benchmark the whole script and individual functions in one go.
Item Buttons can be now toggled
Now, you can toggle the buttons shown at the top of the MediaItem, like mute, FX, Envelopes, etc. Change them in one go, to have different "profiles" of MediaItem-buttons, that reflect the usecases of your different projects.
PreventUIRefresh and RestoreUIRefresh Like Reaper's own PreventUIRefresh, but prevents accidental misuse of its counter, as the counting up is done by PreventUIRefresh and the "reset" of a
PreventUIRefresh can be undone by RestoreUIRefresh.
When using RestoreUIRefresh(true), all ultraschall.PreventUIRefresh-calls are reset, so the user-interface of Reaper is useable again.
bugfixes and readdition of accidentally deleted function..oops ;)
New features in 4.1.002
- Benchmarking: Benchmark_GetAllStartTimesAndSlots - returns the starttimes of all current benchmark-measuring-slots as a handy table(index=slot number)
- Envelope Management: SetEnvelopeState_Act - sets bypass and automation-items-behavior
- Envelope Management: SetEnvelopeState_DefShape - sets the default-envelope shapes and pitch-snap-settings
- Envelope Management: SetEnvelopeState_LaneHeight - sets the height and compacted state of an envelope
- Envelope Management: SetEnvelopeState_Vis - sets the visibility-state of an envelope
- Mute Management: ActivateMute - activates a mute-envelope of a track
- Mute Management: ActivateMute_TrackObject - activates a mute-envelope of a track
- Mute Management: DeactivateMute - deactivates a mute-envelope of a track
- Mute Management: DeactivateMute_TrackObject - deactivates a mute-envelope of a track
- Take Management: GetTake_ReverseState - returns, if a take is reversed or not
- User Interface: GetItemButtonsVisible - gets the individual item-buttons visible/invisible-state
- User Interface: GetPreventUIRefreshCount - the number of times you need to restore UI-refresh
- User Interface: PreventUIRefresh - prevents refreshing of the user-interface, more solid, than Reaper's own PreventUIRefresh-function
- User Interface: RestoreUIRefresh - restores a prevented UI-refreshing
- User Interface: SetItemButtonsVisible - sets the individual item-buttons visible/invisible
- User Interface: VideoWindow_FullScreenToggle - toggles full-screen-state of the video-processor-window(requested by vectorwarrior)
Changes from 4.1.001 to 4.1.002
- Benchmarking: Benchmark_GetStartTime - has now additional optional parameter slot to get the starttime of a certain benchmarking-slot(requested by rstockm)
- Benchmarking: Benchmark_MeasureTime - has now additional optional parameter slot, with which you can store multiple measurings into different slots, for more benchmarks than just one(requested by rstockm)
- Developer Tools: ultraschall_developertool_Project_State_Diffs_Monitor.lua - improved so it now only shows changed lines and therfore proper diffs
- Docs: Reaper internals - updated to Reaper 6.11, SWS 2.11.0 and JS-extension 1.215; added accidentally missing functions
- Docs: US-docs - functionname's last ) was not bold for some reason -> fixed
- Envelope Management: GetEnvelopeState_DefShape - added missing descriptions for returnvalues for pitch-snap
- GUI: Scythe - loads its libraries from UserPlugins\ultraschall_api\3rd_party_modules\Scythe\ now, so it shouldn't get in conflict with user's own installation of a Scythe-instance
- Marker Management: CountNormalMarkers - optimized speed
- Marker Management: GetAllMarkersBetween - parameters can be nil now, allowing to be used for projectstart and projectend
- Marker Management: GetAllRegionsBetween - parameters can be nil now, allowing to be used for projectstart and projectend
- Marker Management: EnumerateNormalMarkers - optimized speed
- Marker Management: SetNormalMarker - optimized speed
- Marker Management: DeleteNormalMarker - optimized speed
- Marker Management: IsMarkerNormal - optimized speed
- Mute Management: GetNextMuteState - returns now the mutestate, even if no mute-envelope is active
- Mute Management: GetNextMuteState_TrackObject - returns now the mutestate, even if no mute-envelope is active
- Mute Management: GetPreviousMuteState - returns now the mutestate, even if no mute-envelope is active
- Mute Management: GetPreviousMuteState_TrackObject - returns now the mutestate, even if no mute-envelope is active; didn't return envIDX correctly -> fixed
- Mute Management: ToggleMute - sets now mute-envelope point regardless of env-recarm or automation-mode; activates inactive mute-envelopes now as well
- Mute Management: ToggleMute_TrackObject - sets now mute-envelope point regardless of env-recarm or automation-mode; activates inactive mute-envelopes now as well
- Project Files: GetProject_MarkersAndRegions - supports now returning regions-states of selected and region render-matrix; fixed bugs with selected regions not recognized(thanks to aurelien)
- Render: ApplyRenderTable_Project - had problem, when applied twice in a script -> fixed(thanks to aurelien)
- Render: ApplyRenderTable_ProjectFile - had problem, when applied twice in a script -> fixed(thanks to aurelien)
- SetRender_SaveCopyOfProject - got accidentally deleted, readded it now (thanks to aurelien)
4.1.001 - "Radiohead - Spectre"
Has now 1129 functions, with 18 new ones
new in this release:
Automation Items
You can get all automation-items as well as deleting the ones you want to delete.
That's right, you can now safely delete one programmatically!
Rendering functions
Support now the new rendering options of Reaper 6.10: embedding Take markers as well as Do not render files that are likely silent.
Note: Reaper 6.10 has a bug, which prevents simultaneously from setting Add to Project and Do not render files likely silent-checkboxes of the Render to File-dialog. Fixed in later versions of Reaper.
SetTrack_LastTouched
Allows you to set a track as last touched, which wasn't possible before.
SetTrack_Trackheight_Force
Sets the trackheight of a track to any height you like, including heights not allowed by the theme.
That way, you can set the trackheight to e.g. 1px, allowing you better organisation of your arrangeview's tracks.
CollapseTrackHeight
Speaking of trackheight, this function collapses tracks to the minimum height allowed by the currently selected theme.
GFX_GetDropFile
Call it frequently when having opened your gfx-window, and it will return drag'n'dropped files as well as the dropping-position within the gfx.init-window. No need to fiddle it out by yourself.
ActionsList_GetSelectedActions
Returns all selected entries from the opened actionlist, including Action Command Ids, texts, etc.
Kudos to Edgemeal, who wrote the initial version of it.
IsTimeSigmarkerAtPosition
Already implemented for markers and regions, I added it for time-signature-markers as well.
Returns, if a time-signature-maker is at a certain position.
and more plus bugfixes
Kudos to Lokasenna and to Xenakios. Hope you both return at some point to the Reaper-community.
New features in 4.1.001
- Actions: ActionsList_GetSelectedActions - gets the selected actions from the opened Action List(prototype code provided by Edgemeal. Thank you!)
- Automation Items: AutomationItems_GetAll - returns all automation-items of the current project
- Automation Items: AutomationItem_Delete - deletes an automation-item, including the option of retaining the envelope-points
- Envelopes: GetAllTakeEnvelopes - returns all TakeEnvelopes in the current project
- Envelopes: GetAllTrackEnvelopes - returns all TrackEnvelopes in the current project
- GFX-Management: GFX_GetDropFile - gets the last dropped files from the gfx-window, including the drop-coordinates(requested by rstockm)
- Helperfunctions: Benchmark_GetStartTime - returns the last starttime of the currently running benchmark-measure(requested by rstockm)
- Helperfunctions: Benchmark_MeasureTime - starts/resets a benchmark-measure(requested by rstockm)
- Helperfunctions: EscapeMagicCharacters_String - escapes the magic-characters, used for pattern matching, from a string, so it can be used without triggering "magic"-pattern-matching-features
- Marker Management: IsTimeSigmarkerAtPosition - returns, if at a position/measure is a time-signature marker(requested by tompad)
- MediaItems: MediaItems_Outtakes_AddSelectedItems - adds selected items into the outtakes-vault; this allows you to store outtakes of recordings easily
- MediaItems: MediaItems_Outtakes_GetAllItems - gets all outtakes-items stored in the outtakes-vault
- MediaItems: MediaItems_Outtakes_InsertAllItems - inserts all outtakes-items stored in the outtakes-vault into a project
- ProjectManagement: IsTimeSelectionActive - returns, if there's a time-selection(requested by tompad)
- Track Management: CollapseTrackHeight - collapses the height of a track to the minimum height, as defined by the theme
- Track Management: GetTrackByTrackName - search tracknames follwing a certain pattern or for a certain name
- Track Management: SetTrack_LastTouched - sets a track to be last-touched track
- Track Management: SetTrack_Trackheight_Force - sets the trackheight of a track and allows setting heights beyond the limitations set by the theme
- Web Interface: WebInterface_GetInstalledInterfaces - returns all installed webinterfaces(webrc) of the current Reaper installation, custom and Reaper-defaults
Changes from 4.00 to 4.1.001
- API: GetApiVersion - updated docs to reflect the current behavior
- DeveloperTools: ultraschall_Add_Developertools_To_Reaper.lua - weren't installed using this action -> fixed
- DeveloperTools: Ultraschall State Inspector - extended number of saveslots to 20; didn't correctly store and load gmem-states from the stateslots -> fixed (thanks to lexaproductions)
- Docs: Reaper-Internals - updated to Reaper 6.10, JS-extension 1.002
- Docs: Render-Presets - updated to Reaper 6.10
- Docs: Routing_001_Introduction - corrected typo
- Docs: ShowMenu - falsely claimed, that y-coordinates on Mac are buggy because they are reversed -> corrected
- FX-Management: CountParmLearn_FXStateChunk - added error-message, when fxid==0, as the first fxid must be 1 or higher(thanks to TonE)
- Helperfunctions: IsValidMatchingPattern - wasn't reporting unfinished captures all the time -> improved
- Markers: CountNormalMarkers_NumGap - had inner variables exposed -> fixed (thanks to fernsehmuell)
- MediaItems: GetAllSelectedMediaItems - returns now an MediaItemStateChunkArray as well
- MediaItems: IsValidMediaItemStateChunkArray - didn't always return true, when MediaItemStateChunkArrays were passed over it -> fixed
- Project Management: GetProject_AddMediaToProjectAfterRender - added "do not likely silently files"-setting
- Project Management: GetProject_RenderStems - added Embed take markers-setting
- Project Management: SetProject_AddMediaToProjectAfterRender - added "do not likely silently files"-setting
- Project Management: SetProject_RenderStems - added Embed take markers-setting
- Render: AddRenderPreset - supports new Embed Take-markers; added missing information to docs
- Render: ApplyRenderTable_Project - supports new Embed Take-markers and no silent render-features; improved Embed stretch-markers support; accidentally reversed true and false in parameter OnlyMonoMedia -> fixed (thanks to aurelien)
- Render: CreateNewRenderTable - supports new Embed Take-markers and no silent render-features
- Render: GetRenderPreset_RenderTable - supports new Embed Take-markers
- Render: GetRenderTable_Project - supports new Embed Take-markers and no silent render-features; improved Embed stretch-markers support
- Render: GetRenderTable_ProjectFile - supports new Embed Take-markers and no silent render-features; improved Embed stretch-markers support
- Render: IsValidRenderTable - supports new Embed Take-markers and no silent render-features; improved Embed stretch-markers support
- Render: SetRenderPreset - supports new Embed Take-markers; added missing information to docs
- TrackManagement: DeleteTracks_TrackString - didn't correctly delete the right tracks, sometimes throwing Lua-error -> fixed (thanks to aurelien)
- Ultraschall: IsTrackSoundboard - had inner variable exposed -> fixed
- Ultraschall: IsTrackStudioLink - had inner variable exposed -> fixed
- Ultraschall: IsTrackStudioLinkOnAir - had inner variable exposed -> fixed
4.00 - "Aphrodite's Child - Four Horsemen"
Changes from Beta 2.9 to Final
- API: GetApiVersion - returns now the build-number as well
- API: Reapack-API-xml-generator.lua - fixed filename-creation for non-beta-versions
- FileManagement: CheckForValidFileFormats - improved check for jpg and jpg with exif-metadata
- FXManagement: SetFXStateChunk - allows now adding FXStateChunks to StateChunks with no existing FXStateChunk as well; didn't add FXStateChunks correctly under some circumstances -> fixed(thanks to XRaym)
- Image Handling: CaptureScreenAreaAsPNG - doesn't work on Mac under some still unknown circumstances
- Image Handling: CaptureWindowAsPNG - doesn't work on Mac under some still unknown circumstances
4.00 Beta 2.9: - "Gentle Giant - Two weeks in Spain"
Has now 1111 functions, with 32 new ones
This is the last beta-release for the Ultraschall-API4.00 and the feature-freeze-version. Until the final one, I will only fix bugs.
new in this release:
Render_Loop
You can render now loops, including so called "wet-loops" which are loops, who include reverb and other such effects.
For them to be renderable properly, they need to "build up" the effects first until it sounds right.
Render_Loop does exactly that with 2-pass-rendering. The first one is the part, which includes the loop itself+the effects-buildup.
So it renders the part of the project until the reverb is build up fully+the actual part to be looped.
The second pass will cut the actual loop out of the first-pass-render and put it where you want it to be.
You can also influence the fadein/out time and style of the second-pass-rendering, so you can avoid clickings and pops due harsh cuts at the beginning or the end of a loop.
Secondary Rendering Support
This is so hot, it only exists(yet) in pre-releases of Reaper. You can set a secondary render-format. And if you render your project, it will render out into both files.
That means, you can render your project as WAV+MP3 at the same time.
And all rendering-functions of Ultraschall-API support that new feature, including the current project, projectfiles, render-presets.
Marker-functions and Guids
All marker/region-functions return now the guid of the marker/region as well. Which is really nice for storing additional metadata for markers/regions.
You can also request the markers/regions by guid now.
Envelope States
You can read now all envelope-states available. Setting will come soon as well.
GFX_Init
Allows you now to center the window by setting x and/or y-position to nil
MoveFileOrFolder
Tired of copying your files around when you just want to move them? Or folders? Behold: MoveFileOrFolder moves files and folders for you.
This speeds up moving files around in Lua by magnitudes.
FXStateChunks and RFXChainFiles
You can load/store FXStateChunks from/to RFXChainFiles, which are the FX-Chain-files you can save within the FX-Chain-window.
Capturing Screen and Windows
You can now capture screens and windows for screenshots(CaptureScreenAreaAsPNG and CaptureWindowAsPNG).
Thanks to edgemeal for that.
GetTCPWidth
returns the width of the TrackControlPanel.
More and bugfixes
as usual ;)
New features in 4.00beta2.9
- API: StuffMidiMessage-AllMessages_Englisch_Windows.ini - contains all names for all potential StuffMIDIMessage-messages
- Docs: Concepts: DeferScripts_004_Manipulating_and_Protecting_Defer_loops - describes manipulation of ultraschall.Defer-cycles and how to protect them from manipulation
- Docs: Concepts: ExtStateManagement_008_MarkerExtStates - describes the marker-extstate-functions
- Envelope Management: GetEnvelopeState_Act - returns the values of the ACT-entry of a TrackEnvelope/EnvelopeStateChunk
- Envelope Management: GetEnvelopeState_DefShape - returns the values of the DEFSHAPE-entry of a TrackEnvelope/EnvelopeStateChunk
- Envelope Management: GetEnvelopeState_LaneHeight - returns the values of the LANEHEIGHT-entry of a TrackEnvelope/EnvelopeStateChunk
- Envelope Management: GetEnvelopeState_EnvName - returns the envelope-name and possible additional values, if it's an FX-envelope
- Envelope Management: GetEnvelopeState_NumbersOnly - returns all values of a parameter from an EnvelopeStateChunk, including the undocumented ones when the devs add them
- Envelope Management: GetEnvelopeState_PooledEnvInstance - returns the attributes of an automation-item within an EnvelopeStateChunk, including the undocumented ones when the devs add them
- Envelope Management: GetEnvelopeState_PT - returns the attributes of an envelope-point within an EnvelopeStateChunk, including the undocumented ones when the devs add them
- Envelope Management: GetEnvelopeState_Vis - returns the values of the VIS-entry of a TrackEnvelope/EnvelopeStateChunk
- File Management: MoveFileOrFolder - moves a file or folder from its old path to a new path
- FXManagement: GetAllRFXChainfiles - returns all RFXChainfiles currently available in ResourcePath/FXChains
- FXManagement: GetRecentFX - returns the recent fx-list
- FXManagement: LoadFXStateChunkFromRFXChainFile - loads an FXStateChunk from an RFXChain-file(requested by XRaym)
- FXManagement: SaveFXStateChunkAsRFXChainfile - writes an FXStateChunk into an RFXChain-file(requested by XRaym)
- Image Handling: CaptureScreenAreaAsPNG - captures a screenarea and writes it as png-file(written by edgemeal, big thanks for that!)
- Image Handling: CaptureWindowAsPNG - captures a window-area and writes it as a png-file(written by edgemeal, big thanks for that!)
- Image Handling: ResizePNG - resizes a png-file into a new file
- KB.ini-Management: QueryKeyboardShortcutByKeyID - returns the actual shortcutname as stored by the modifier-key-values in reaper-kb.ini's KEY-entries
- Metadata-Management: ProjExtState_CountAllKeys - counts the number of keys within a section of a ProjectExtState
- MIDI-Management: QueryMIDIMessageNameByID - returns the midi-message-name of a midi-message as sendable using StuffMIDIMessage
- Project Bay: IsValidProjectBayStateChunk - checks, if a ProjectBayStateChunk is a valid one
- Project Bay: GetAllMediaItems_FromProjectBayStateChunk - returns all items from a ProjectBayStateChunk as MediaItemStateChunkArray
- Project Management: GetRecentProjects - gets the last x recent projectfilenames, as listed in the recent projects-menu
- Rendering: Render_Loop - renders a part of a project for later use as loop; supports also the creation of "wetloops" like ones with reverb(requested by musicbynumbers)
- Scripts: US_Api_Examples_Working_with_FXStateChunks_and_MediaItems.lua - example of working with FXChainStateChunks
- Themeing: GetAllThemeLayoutNames - returns all layout-names and values of the current theme
- Themeing: GetAllThemeLayoutParameters - returns all theme-layout-parameter attributes of the current theme
- Ultraschall Soundboard: Soundboard_PlayFadeIn - starts a sound with fadein, when having the Ultraschall4.00-Soundboard installed
- User Interface: GetHelpDisplayMode - returns the current help-display-mode
- User Interface: GetTCPWidth - gets the current width of the TCP(requested by nofish)
- User Interface: SetHelpDisplayMode - sets the current help-display-mode
- User Interface: WiringDiagram_GetOptions - gets the current wiring-diagram-options
- User Interface: WiringDiagram_SetOptions - sets the wiring-diagram-options
Changes from Beta 2.8 to Beta 2.9
- ChildScripts: GetScriptParameters - produced Lua-error when no parameter was existing -> fixed
- ChildScripts: GetScriptReturnvalues - docs fixed; didn't reset returnvalue-counter; produced Lua-error when no parameter was existing; had another stupid bug in it that I don't wanna mention... :/ -> fixed
- ConfigurationManagement: GetIniFileValue - checks now, if the ini-file exists in the first place
- Defer Management: Defer - returns now boolean always, as well as the defer_identifier
- Envelope Management: GetArmState_Envelope - reimplemented, should now return future parameters as well, when added by the Reaper-devs
- FileManagement: GetAllFilenamesInPath - returns now the paths with / as separator only
- FileManagement: GetMediafileAttributes - did not recognize jpgs with exif-data -> should be fixed now(thanks to rstockm)
- FileManagement: WriteValueToFile - produced Lua-error when passing a nil-value as filename_with_path -> fixed
- FXManagement: GetFXStateChunk - counted FXStateChunks, not Takes by parameter TakeFXChain_id -> fixed
- FXManagement: RemoveFXStateChunkFromItemStateChunk - counted FXStateChunks, not Takes by parameter take_id -> fixed
- FXManagement: SetFXStateChunk - counted FXStateChunks, not Takes by parameter TakeFXChain_id -> fixed
- GFX: GFX_Init - when x and/or y position are set to nil, the window will be centered now horizontally, vertically or both
- Helper Functions: PrintProgressBar - did produce a Lua-error, when percentage==false -> fixed now
- Marker Management: AddCustomMarker - returns now the indexnumber and guid of the newly added marker as well
- Marker Management: AddEditMarker - returns now the guid of the marker; did not return the correct marker-id, but rather the shown id; did not add a : after _edit -> fixed
- Marker Management: AddEditRegion - returns now the guid of the region; did not return the correct marker-id, but rather the shown id -> fixed
- Marker Management: AddNormalMarker - returns now the guid of the marker; did not return the correct marker-id, but rather the shown id -> fixed
- Marker Management: AddPodRangeRegion - returns now the guid of the region; did not return the correct marker-id, but rather the shown id -> fixed
- Marker Management: EnumerateCustomMarkers - returns now the guid of the marker as well
- Marker Management: EnumerateEditMarkers - returns now the guid of the marker as well
- Marker Management: EnumerateEditRegion - returns now the guid of the region as well
- Marker Management: EnumerateNormalMarkers - returns now the guid of the marker as well
- Marker Management: GetAllCustomMarkers - returns now the guid of the marker as well
- Marker Management: GetAllEditMarkers - returns now the guid of the editmarkers as well
- Marker Management: GetAllMarkersBetween - returns now the guid of the markers as well
- Marker Management: GetAllNormalMarkers - returns now the guid of the markers as well
- Marker Management: GetAllRegions - returns now the guid of the regions as well
- Marker Management: GetAllRegionsBetween - returns now the guid of the regions as well
- Marker Management: GetMarkerAndRegionsByIndex - returns now the guid of the found marker as well
- Marker Management: GetMarkerByName - returns now an array of guids as well; returned marker-numbers weren't useable with Reaper's own marker-functions due off by 1-error -> fixed
- Marker Management: GetMarkerByName_Pattern - returns now an array of guids as well; returned marker-numbers weren't useable with Reaper's own marker-functions due off by 1-error -> fixed
- Marker Management: GetMarkerByScreenCoordinates - retina will now be automatically set; parameter retina removed(please update your scripts!)
- Marker Management: GetMarkerByTime - retina will now be automatically set; parameter retina removed(please update your scripts!)
- Marker Management: GetPodRangeRegion - returns now the guid of the podrangeregion as well
- Marker Management: GetRegionByScreenCoordinates - retina will now be automatically set; parameter retina removed(please update your scripts!)
- Marker Management: GetRegionByTime - retina will now be automatically set; parameter retina removed(please update your scripts!)
- Marker Management: GetTimeSignaturesByScreenCoordinates - had typo in functionname, which I corrected(old scripts will still run);retina will now be automatically set; parameter retina removed(please update your scripts!)
- Marker Management: GetTimeSignaturesByTime - retina will now be automatically set; parameter retina removed(please update your scripts!)
- Miscellaneous: WinterlySnowflakes - did produce Lua-error, when number of snowflakes was >5000; limited to 5000 now
- ParmAlias: GetParmAlias_MediaTrack - had wrong functionname in error-messages -> fixed
- ParmAlias: Docs - all functions ParmLearn-function in the docs move to proper subchapters for clearer index-navigation
- Project Management: GetAllMediaItems_FromProjectBayStateChunk - didn't return ProjectBayStateChunk properly -> fixed
- Project Management: GetProject_RenderCFG - returns now the render-cfg-string for the secondary renderformat as well
- Project Management: SetProject_RenderCFG - allows now setting of secondary render-format as well; backwards compatible with old scripts, who set only primary rendering format in ProjectStateChunks
- Rendering: AddRenderPreset - allows now adding the render-cfg-string for secondary renderformat as well; had inner variable exposed -> fixed
- Rendering: ApplyRenderTable_Project - allows now setting the render-cfg-string for secondary renderformat as well
- Rendering: CreateNewRenderTable - allows now adding the render-cfg-string for secondary renderformat as well; had wrong functionname in docs -> fixed
- Rendering: DeleteRenderPreset_FormatOptions - deletes now the render-cfg-string for secondary renderformat, if existing
- Rendering: GetRenderPreset_RenderTable - returns now possible render-cfg-string for secondary renderformat as well; some error-messages didn't work -> fixed
- Rendering: GetRenderTable_Project - returns now a render-cfg-string for secondary renderformat
- Rendering: GetRenderTable_ProjectFile - returns now a render-cfg-string for secondary renderformat
- Rendering: IsValidRenderTable - checks now for the render-cfg-string for secondary renderformat as well
- Rendering: RenderProject - allows now setting the render-cfg-string for secondary renderformat as well; checks now, if projectfilename is a valid project
- Rendering: RenderProject_RenderTable - allows now setting the render-cfg-string for secondary renderformat as well; checks now, if projectfilename is a valid project
- Rendering: SetRenderPreset - allows now setting the render-cfg-string for secondary renderformat as well; set RenderString2="" to remove the secondary renderformat
- Track Management: GetTrackState_NumbersOnly - had wrong description in the docs -> fixed
- User Interface: GetHWND_ArrangeViewAndTimeLine - moved to User Interface -> Reaper-Windowhandler in the index of the docs
4.00 Beta 2.80: - "Starsailor - Four to the Floor"
Note: Ultraschall-API needs now Reaper 6.02 or higher. Please update to Reaper 6. It's worth it!
Has now 1079 functions, with 20 new ones and 23 deprecated ones removed
new in this release:
Improved Defer Management
Ultraschall.Defer allows you now to set and get the timer-settings of a given ultraschall.Defer-cycle.
You can even do this from the outside of the deferred script!
You can also protect now ultraschall.Defer-cycles from being stopped from the outside.
Rendering functions
The RenderPreset-functions do work again, after some changes in the way Reaper stores render-presets since Reaper 6.02.
They also allow you to use: preset-names with spaces. (I know, this should have been in there from the beginning... ;) )
GetItem_ClickState
Is now fully functional. That means, if you call this function in every defer-cycle of a script, you can actually monitor clicked and dragged MediaItems.
This will open up new ways of editing and item-manipulation, like RippleDrag, etc.
FXStateChunk
They can now be counted, added, removed and gotten. Means: I added the missing functions for working with them, so you can fully work with FXStateChunks now.
XRaym will love that :D
GetProjectLength
unlike Reaper's own API-function GetProjectLength, this one returns the end of the last itemedge, the last regionedge, marker and time-sigmarker
Easy Clipboarding
FromClip and ToClip allow you now to get/put strings from/to the clipboard without having to type gazillions of characters.
GetProject and GetTrackState-functions
I completely reworked most of them, so they will now return all values, even those, which I haven't put into the docs yet.
That means, if the devs add new values, you can retrieve them right away, without being dependent on me to add them.
Will do the same with the Set-functions in the future.
New features in 4.00beta2.80
- Helper functions: FloatCompare - compares two float-numbers, with the a chance to set a precision to compare against(thanks to fernsehmuell)
- Helper functions: FromClip - gets a string from the clipboard
- Helper functions: ToClip - puts a string into the clipboard
- DeferManagement: GetDeferCycleSettings - allows getting mode and timer-settings of running ultraschall.Defer-cycles at runtime and even from the outside of the deferred script
- DeferManagement: SetDeferCycleSettings - allows setting mode and timer-settings of running ultraschall.Defer-cycles at runtime and even from the outside of the deferred script
- FXManagement: CountFXStateChunksInStateChunk - counts the FXStateChunks within a Project-/Track-/ItemStateChunk(requested by XRaym)
- FXManagement: RemoveFXStateChunkFromTrackStateChunk - removes a FXStateChunk from a TrackStateChunk(requested by XRaym)
- FXManagement: RemoveFXStateChunkFromItemStateChunk - removes a certain FXStateChunk from an ItemStateChunk(requested by XRaym)
- MediaItems: GetEndOfItem - returns the endposition of a MediaItem(thanks to fernsehmuell)
- MediaItems: GetAllMediaItemAttributes_Table - returns all attributes of a MediaItem as a handy table(requested by fernsehmuell)
- MediaItems: GetAllSelectedMediaItemsBetween - returns all selected MediaItems between start- and endposition within certain tracks of your choice(requested by fernsehmuell)
- MediaItems: SetAllMediaItemAttributes_Table - sets all attributes of a MediaItems using an attributes table, like the one returned by GetAllMediaItemAttributes_Table(requested by fernsehmuell)
- Reaper Internals: Jumping_FX_Button_in_TCP-demo.zip - demoes, how Set/GetLayout-functions work; includes a demo theme and a script, that influences it, including comments
- Reaper Internals: RenderPreset-Configfile.txt - documentation of the Render-Presets of Reaper
- Reaper Internals: Reaper-ProjectDefault-ConfigSettings.txt - documents all reaper.ini-entries, responsible for default project settings
- Reaper Internals: Reaper-StuffMidiMessage-Codes(engl_shortlist).txt - holds all messages and their meaning for StuffMIDIMessage
- Reaper Internals: StuffMidiMessage-docs.txt - describes the usage of the StuffMIDIMessage-function
- Render Management: GetRender_EmbedStretchMarkers - gets the current state of the "Embed stretch markers/transient guides"-checkbox from the Render to File dialog
- Render Management: SetRender_EmbedStretchMarkers - sets the current state of the "Embed stretch markers/transient guides"-checkbox from the Render to File dialog
- ProjectManagement: GetProjectState_NumbersOnly - returns all numerical values, associated with a certain state
- ProjectManagement: GetProject_PooledEnvAttach - gets the pooled-envattach-state
- ProjectManagement: GetProjectLength - gets the length of the current active project, as well as the position of the last itemedge, regionend, marker, time-sig-marker(requested by rstockm)
- TrackManagement: GetTrackState_NumbersOnly - returns all numerical values, associated with a certain state
Changes from Beta 2.79 to Beta 2.80
- API: deprecated - allows showing a warning message, if a script uses a deprecated function in a script; will be shown only once until Reaper restarts, so scripts are stil useable
- Defer Management: GetDeferIdentifier - removed
- Defer Management: GetDeferRunState - removed Defer01-Defer20 management; threw Lua-error, when passing nonstring as identifier -> fixed
- Defer Management: Defer1 through Defer20 - removed
- Defer Management: Defer - mode and timer can also be set now from the outside of the defer-cycle; can now be protected from stopping it from the outside; couldn't be stopped from the outside when mode~=2 -> fixed
- Defer Management: GetDeferRunState - was missing parameters in the docs due typo -> fixed
- Defer Management: StopDeferCycle - didn't work, when mode=2 of a ultraschall.Defer-cycle -> fixed
- Docs: DeferScripts_004_Working_with_Defer_Identifiers - removed
- Docs: Defer - reworked docs and removed all references to Defer1 through Defer20
- Docs: JS-Extension - updated to 0.998
- Docs: Reaper - updated to Reaper 6.03
- Docs: render-codes-decoded-base64-strings.txt - removed last 00-byte in every string(except DDP), as it was wrongly there
- Event Manager: Eventmanager_RemoveEvent - couldn't be found due typo in new module-loader -> fixed (thanks to rstockm)
- Event Manager: EventManager_RemoveAllEvents_Script - couldn't be found due typo in new module-loader -> fixed
- Helper functions: Base64_Decoder - removed small bug, which added a nullbyte at end of strings
- MediaItems: GetSelectedMediaItemsAtPosition - sped up a little; returns now a MediaItemStateChunkArray as well
- ProjectManagement: GetProject_AddMediaToProjectAfterRender - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_AutoCrossFade - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_CursorPos - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_DefPitchMode - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_EnvAttach - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Feedback - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_GlobalAuto - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Grid - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_GroupDisabled - simplified implementation, future values added by Reaper-devs will now be returned properly; didn't return anything, when no groups were disabled -> fixed
- ProjectManagement: GetProject_GroupOverride - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_HorizontalZoom - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_ItemMixBehavior - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Lock - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Loop - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_LoopGran - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterAutomode - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterFXByp - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterMuteSolo - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterNChans - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterPanMode - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterSel - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterTrackColor - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterTrackHeight - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterTrackView - didn't return the new values added in recent Reaper-versions -> fixed and stabilized
- ProjectManagement: GetProject_MasterTrackView - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterVolume - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MasterWidth - simplified implementation, future values added by Reaper-devs will now be returned properly; didn't return 1 in case of +100 width -> fixed
- ProjectManagement: GetProject_MaxProjectLength - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_MixerUIFlags - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_PanLaw - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_PanMode - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_PeakGain - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Playrate - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_ProjOffsets - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_RecMode - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_RenderDitherState - simplified implementation, future values added by Reaper-devs will now be returned properly; updated docs with new options like embed stretch markers
- ProjectManagement: GetProject_RenderFreqNChans - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_RenderRange - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_RenderResample - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_RenderSpeed - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_RenderStems - simplified implementation, future values added by Reaper-devs will now be returned properly; updated docs with new rendering selected tracks/media through master-options
- ProjectManagement: GetProject_RippleState - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_SMPTESync - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_SampleRate - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Selection - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_TakeLane - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Tempo - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_TempoTimeSignature - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_TimeBase - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_Timemode - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_TrackMixingDepth - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_UseRecConfig - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_VerticalZoom - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: GetProject_VideoConfig - simplified implementation, future values added by Reaper-devs will now be returned properly
- ProjectManagement: SetProject_RenderDitherState - updated docs with new options like embed stretch markers
- ProjectManagement: SetProject_RenderStems - updated docs with new rendering selected tracks/media through master-options
- Reaper Internals: render-codes-decoded-base64-strings.txt - added new settings for AIFF
- Render Management: AddRenderPreset - supports now embed stretch markers-checkbox; works only with render-presets as of Reaper 6; supports now presetnames with spaces in it
- Render Management: ApplyRenderTable_Project - supports now embed stretch markers-checkbox as of Reaper 6
- Render Management: ApplyRenderTable_ProjectFile - supports now embed stretch markers-checkbox as of Reaper 6
- Render Management: CreateRenderCFG_AIFF - added Embed Beat Length-checkbox, as included with Reaper 6
- Render Management: CreateNewRenderTable - added new "Embed stretch markers/transient guides"-settings as of Reaper 6; CloseAfterRender wasn't accepted as boolean -> fixed
- Render Management: GetRenderCFG_Settings_AIFF - returns Embed Beat Length-checkbox, as included with Reaper 6
- Render Management: GetRenderPreset_Names - reimplemented; supports now presetnames with spaces in them as well
- Render Management: GetRenderTable_Project - supports now "Embed stretch markers/transient guides"-settings as of Reaper 6
- Render Management: GetRenderTable_ProjectFile - supports now "Embed stretch markers/transient guides"-settings as of Reaper 6
- Render Management: GetRenderPreset_RenderTable - reimplemented due changed reaper-render.ini-format in Reaper 6, should be more stable now; backwards compatible to old Reaper 5 presets
- Render Management: DeleteRenderPreset_Bounds - supports now presetnames with spaces in it
- Render Management: DeleteRenderPreset_FormatOptions - supports now presetnames with spaces in it
- Render Management: IsValidRenderTable - checks now as well new "Embed stretch markers/transient guides"-settings as of Reaper 6
- Render Management: RenderProject_RenderTable - supports now new Embed stretch markers/transient guides-checkbox as of Reaper 6
- Render Management: SetRenderPreset - supports now new Embed stretch markers/transient guides-checkbox as of Reaper 6; supports now spaces in preset-names as well
- TakeManagement: GetFXStateChunk - parameter TakeFXChain_id wasn't optional due typo -> fixed(thanks to XRaym)
- TakeManagement: SetFXStateChunk - docs were unclear, that only setting NOT inserting is possible; could crash, if no FXStateChunk for setting could be found -> fixed(thanks to XRaym)
- TrackManagement: GetTrackPeakColorState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackBeatState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackAutoRecArmState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackMuteSoloState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackIPhaseState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackIsBusState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackBusCompState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackShowInMixState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackFreeModeState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackRecState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackVUState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackHeightState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackINQState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackNChansState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackBypFXState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackPerfState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackMIDIOutState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackMainSendState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackLockState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackAutomodeState - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackMidiCTL - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackWidth - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackPanMode - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackScore - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- TrackManagement: GetTrackVolPan - improved implementation, it returns now new values as well, who are added by the Reaper-devs and aren't documented yet
- User Interface: GetReaperWindowPosition_Left - removed
- User Interface: GetReaperWindowPosition_Right - removed
- User Interface: GetItem_ClickState - remembers now the dragged item+take, even if mouse-cursor is not above it anymore
4.00 Beta 2.79: - "Yes - Owner of a lonely heart"
Has now 1082 functions, with 12 new ones
New in this release:
NOTE: There are some new features, who make use of Reaper v6-features. Please update soon, as Reaper 6 will be a requirement soon!
Speedup when loading US-API
I made a modules-system, which speeds up loading and initalization as well as memory-use of the Ultraschall-API by magnitudes.
This approach loads only the functions needed by your script(used to load all functions in earlier versions).
The loading is now about 86% faster and memoryuse is 56% less.
And what do you need to do to make use of the modules approach?
Well, nothing. The Ultraschall-API does it for you! (requested by many, so hope, this helps you a lot).
Marker/Region Extstates
Reaper 6.02 added some new features, which gives a unique guid for a marker. This again, helped me adding a feature I wanted to have for a long time: Marker/Region Extstates. They work like regular ProjectExtStates, but have the benefit, that they allow saving additional key-value stores associated with a certain marker/region.
And even if you change the whole order of the markers, the extstates will still be attached to the marker of your choice.
Possible usecase: storing the render-format-settings as region-extstates for region-rendering or simply adding additional metadata to markers/regions, that are needed but would spam the markertitle shown in the arrangeview.
Experiment with it, you'll quickly get the idea and ideas for practical usecases!
Blitting an image centered
Sometimes, you want to blit an image into gfx-windows centered. Problem is: it's not easy to do. Until now, as I added the function GFX_BlitImageCentered, which does exactly that.
That means, you can pass to the function the position of the center of the image and change rotate/scale. This makes zooming in and out of images much more easier, as they stay at their position.
Subtitles SRT-import/export
You can import and export now SRT-files for subtitles. This should allow you to use regions as subtitle-feature.
ConvertStringToBits and ConvertBitsToString
This can be helpful, if you have a string, which represents a binary-number: Just convert it with this function and voila, you can work with the bits themselves.
And if you need to do it the other direction, use ConvertBitsToString. That way, you can work easily on a bitlevel, if fiddling with bitshifting is too difficult for you.
Bugfixes with ArrangeViewSnapShots, Markers
Should now work like a charm.
New features in 4.00beta2.79
- API: loadspeed - sped up loading speed by 86%, as API will now only load functions, actually needed, not all of them; memory need is reduced by about 56%.
- Docs: Reaper Internals - updated to Reaper 6.02
- ExtStateManagement: GetMarkerExtState - gets an extstate from a specific marker/region
- ExtStateManagement: SetMarkerExtState - sets an extstate for a specific marker/region
- GFX: GFX_BlitImageCentered - blits an image centered at a given position, to make "zooming"-effects easy to produce
- Helper Functions: ConvertBitsToString - converts a table with bits(entries with 0 or 1) into its string-representation
- Helper Functions: ConvertStringToBits - converts a string into its bit-representation
- Markermanagement: GetMarkerIDFromGuid - get the markerid from a guid
- Markermanagement: GetGuidFromMarkerID - get the guid from a marker
- Scrubbing: Scrubbing_MoveCursor_GetToggleState - gets the current toggle-state for when scrubbing using an action/surface
- Scrubbing: Scrubbing_MoveCursor_Toggle - toggles the state for when scrubbing using an action/surface
- Subtitles: ReadSubtitles_SRT - imports a SubRip-srt-subtitlefile
- Subtitles: SaveSubtitles_SRT - export a SubRip-srt-subtitlefile
Changes from Beta 2.78 to Beta 2.79
- API: Reapack-API-xml-generator.lua - didn't correctly create zip-archive of the API stored in GitHub -> fixed
- ArrangeView Snapshots: DeleteArrangeviewSnapshot - deleted all Arrangeview-Snapshots instead of the slot-one and didn't check for valid value for parameter slot -> fixed
- ArrangeView Snapshots: IsValidArrangeviewSnapshot - regression, didn't return false, if no snapshot was available in a certain slot -> fixed
- ArrangeView Snapshots: RetrieveArrangeviewSnapshot - had inner variable exposed -> fixed
- ConfigurationManagement: CountValuesByPattern - didn't count at all(for some reason), errors in docs -> fixed(thanks to reapero)
- Developer: ultraschall_developertool_Display-Altered-Config-Vars.lua - didn't work with rc-pre-releases of Reaper -> fixed
- Marker Management: AddCustomRegion - was expecting length, although declared as regionend in the docs -> fixed
- Marker Management: MoveRegionsBy - still had debug-code in it, which could display messageboxes and overwrite global variables -> fixed (sorry for that)
- Marker Management: SetCustomRegion - had docs of AddCustomRegion -> fixed
- Project Management: GetProject_MarkersAndRegions - supports now guids of markers and regions, as introduced in Reaper 6.02
4.00 Beta 2.78: - "Tchaikovski - Overture 1812" - 5th of November 2019
Has now 1070 functions, with 41 new ones
New in this release:
Event Manager
Additional functions and features to improve handling, development, monitoring and debugging of events.
Fixed some bugs, that need startup-events to be readded again. Sorry for that.
SLEM
like ultraschall.ShowLastErrorMessage() but faster to type. I should have added this much more earlier.
MIDI-notes
Now you can send easily Midi: notes, cc-messages, pc and pitchbends.
Defer
One Defer-function to rule them all. You can set, how often to run the defer-cycle and give it an identifier.
With that identifier, you can stop that specific defer-cycle from the outside!
Way better than killing all scripts with the action "ReaScript: Close all running reaScripts".
PingMe
Puts out a message including linenumber and function, in which the PingMe-function was executed.
You can output the message in the ReaScript-console, as messagebox and into the clipboard, even retaining old clipboard-contents.
This can be used as simpler version of hooks to monitor internal behavior.
StateInspector supports gmem
You can monitor now gmem-states as well, which is handy for developers of JSFX and Video-Processor-related scripts.
New features in 4.00beta2.78
- DeferManagement: Defer - runs a deferred loop; you can decide how often it runs; allows you to give it a unique identifier to access, watch and stop it from anywhere! better than Defer1 through Defer20! Use this one, when in doubt! (requested by rstockm)
- Debug: PingMe - shows a message with the current scriptfilename and linenumbers of execution for debugging purposes, like hooks but "lighter"
- Docs: Concepts - added chapters EventManager_The_Basic_Concept, EventManager_AlterRetrieve and EventManager_Debugging
- ErrorMessagingSystem: SLEM - this works like ultraschall.ShowLastErrorMessage() but is easier to type.
- EventManager: EventManager_DebugMode - starts/stops the debug-mode of the EventManager, which adds additional debugging features
- EventManager: EventManager_DebugMode_UserSpace - allows getting the contents of the userspace as used by a registered eventcheck-function, for debugging purposes(DebugMode must be set to on)
- EventManager: EventManager_GetEventIdentifier - returns the EventIdentifier of a registered event, by id
- EventManager: EventManager_GetLastCheckfunctionState - returns the last state of the checkfunction of a certain event, by numbered id(requested by rstockm)
- EventManager: EventManager_GetLastCheckfunctionState2 - returns the last state of the checkfunction of a certain event, by EventIdentifier(requested by rstockm)
- EventManager: EventManager_GetLastUpdateTime - returns the last time, when any event got updated(requested by rstockm)
- EventManager: EventManager_GetPausedState - returns, if a certain event is paused or not, by numbered id(requested by rstockm)
- EventManager: EventManager_GetPausedState2 - returns, if a certain event is paused or not, by EventIdentifier(requested by rstockm)
- EventManager: EventManager_GetRegisteredEventID - returns the id of a certain event by EventIdentifier, which is the position within all currently registered events
- Examplescript: US_Api_Examples_EventManager_HowTo.lua - an example on how to add an event to the EventManager(requested by rstockm)
- Helper Functions: ConvertFunction_FromHexString - converts and loads a function from hexstring as generated by function ConvertFunction_ToHexString
- Helper Functions: ConvertFunction_ToHexString - converts a function into a hexstring which can be reconverted into a function by function ConvertFunction_FromHexString
- MIDIManagement: MIDI_SendMidiCC - sends a MIDI-CC-message to a device or virtual keyboard or Reaper itself as shortcut
- MIDIManagement: MIDI_SendMidiNote - sends a MIDI-note to a device or virtual keyboard or Reaper itself as shortcut
- MIDIManagement: MIDI_SendMidiPC - sends a MIDI-PC-message to a device or virtual keyboard or Reaper itself as shortcut
- MIDIManagement: MIDI_SendMidiPitch - sends a MIDI-Pitchbend-message to a device or virtual keyboard or Reaper itself as shortcut
- Project Management: SetProject_MasterFXByp - sets the fx-bypass-state of the master-track in a projectfile or a ProjectStateChunk
- Project Management: SetProject_MasterMuteSolo - sets the mute-solo-state of the master-track in a projectfile or a ProjectStateChunk
- Project Management: SetProject_MasterNChans - sets the number of channels and vu-metering-settings of the mastertrack in a projectfile or a ProjectStateChunk
- Project Management: SetProject_MasterPanMode - sets the panmode of the track
- Project Management: SetProject_MasterTrackColor - sets the color of the track
- TrackManagement: AnyTrackFreeItemPositioningMode - returns, if any track has free item positioning mode activated
- TrackManagement: AnyTrackFXBypass - returns, if any track has fx-bypass activated(optionally with master-track)
- TrackManagement: AnyTrackHiddenTCP - returns, if any track is hidden in TCP(optionally with master-track)
- TrackManagement: AnyTrackHiddenMCP - returns, if any track is hidden in MCP(optionally with master-track)
- TrackManagement: AnyTrackPhased - returns, if any track is phase-inverted
- TrackManagement: AnyTrackRecarmed - returns, if any track is recarmed
- TrackManagement: AnyTrackRecMonitored - returns, if any track is rec-monitored
- UltraschallSoundboard: Soundboard_Play - starts playing a certain player within the Ultraschall Soundboard
- UltraschallSoundboard: Soundboard_PlayList_Next - starts the next Soundboard-player-slot
- UltraschallSoundboard: Soundboard_PlayList_Previous - starts the previous Soundboard-player-slot
- UltraschallSoundboard: Soundboard_PlayList_SetIndex - sets the current Soundboard-player-slot, optionally starts playing it
- UltraschallSoundboard: Soundboard_PlayList_CurrentIndex - returns the current Soundboard-player-slot
- UltraschallSoundboard: Soundboard_Stop - stops playing a certain player within the Ultraschall Soundboard
- UltraschallSoundboard: Soundboard_StopAllSounds - stops all player within the Ultraschall Soundboard
- UltraschallSoundboard: Soundboard_TogglePlay_FadeOutStop - toggles playing and stop with fadeout of a certain player within the Ultraschall Soundboard
- UltraschallSoundboard: Soundboard_TogglePlayStop - toggles play-stop of a certain player within the Ultraschall Soundboard
- UltraschallSoundboard: Soundboard_TogglePlayPause - toggles play-pause of a certain player within the Ultraschall Soundboard
Changes from Beta 2.77 to Beta 2.78
- Configuration Management: GetIniFileExternalState - was missing retval in the docs
- DeferManagement: GetDeferRunState - gets now Defer-cycles-runstate, of deferred-functions, started by the new function Defer, as well
- DeferManagement: StopDeferCycle - stops now Defer-cycles, started by the new function Defer, as well
- DeveloperTools: StateInspector - supports now displaying gmem-states as well(hit g or look in the menu)
- Docs: Reaper-Internals - updated JS-extension to 0.995
- DocEngine: Docs_GetUSDocBloc_Description - didn't return right markup-type and version -> fixed
- EventManager: EventManager_EnumerateStartupEvents - was missing retval paused -> fixed
- EventManager: EventManager_EnumerateStartupEvents2 - was missing retval paused -> fixed
- EventManager: EventManager_PauseEvent - had typo in parameter-name, so it was ignored -> fixed(thanks to rstockm)
- EventManager: EventManager_RemoveStartupEvent2 - had wrong functionname in docs -> fixed
- EventManager: EventManager_ResumeEvent - had typo in parameter-name, so it was ignored -> fixed(thanks to rstockm)
- EventManager: EventManager_SetEvent - you can now pass nil for parameters, who you don't want to change
- EventManager: EventManager_SetStartupEvent - you can now pass nil for parameters, who you don't want to change
- EventManager: EventManager_Start - checks now, if EventManager-script exists and returns false if not; didn't unregister the EventManager-script again, after it was run -> fixed(thanks to rstockm)
- EventManager: StartupEvent-functions - had to rewrite the function-encoding, so StartupEvents must be re-registered by you to work, sorry for that
- EventManager: EventManager-script - returns now the current event-check-function's state and a debugmode
- Helper Functions: Base64_Encoder - was completely broken due "improvements" -> fixed now
- Helper Functions: GetApiVersion - put retval "number versionnumber" as first returnvalue, for easier versioncomparison(sorry for any inconvenience)
- RenderManagement: RenderProject_RenderTable - didn't return filearray -> fixed
- TrackManagement: AnyTrackMute - hadn't parameter master documented -> fixed
- Ultraschall.ini: CountUSExternalState_key - allows now to set a different filename within the Ressource-folder, other than ultraschall.ini
- Ultraschall.ini: CountUSExternalState_sec - allows now to set a different filename within the Ressource-folder, other than ultraschall.ini
- Ultraschall.ini: DeleteUSExternalState - allows now to set a different filename within the Ressource-folder, other than ultraschall.ini; didn't work for the last key in the ini-file -> fixed
- Ultraschall.ini: EnumerateUSExternalState_key - allows now to set a different filename within the Ressource-folder, other than ultraschall.ini
- Ultraschall.ini: EnumerateUSExternalState_sec - allows now to set a different filename within the Ressource-folder, other than ultraschall.ini
- Ultraschall.ini: GetUSExternalState - allows now to set a different filename within the Ressource-folder, other than ultraschall.ini
- Ultraschall.ini: SetUSExternalState - allows now to set a different filename within the Ressource-folder, other than ultraschall.ini
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.
4.00 Beta 2.761: - "Coldplay - Fix You" - 23rd of August 2019
Has now 985 functions with 8 new ones!
IMPORTANT!: This is a massive critical bugfix release. About 60 functions returned wrong returnvalues in case of an error.
If you use any of the functions listed in Changes from Beta 2.76 to Beta 2.761, you should check, if your scripts still work.
This is totally my fault, as I had some of them wrong to begin with.
My apologies for any inconvenience.... :/
New in this release:
Critical Bugfixes
In case of errors, many functions returned wrong returnvalues or had faulty returnvalues stated in the docs. All of them are fixed now.
Please check, if your scripts use any of the functions listed in Changes for more details.
Hope this is the last time, stuff like that happened...
GetProjectStateChunk
gets a full StateChunk of the current project(finally working!)
Now you can get all states of your project!
MediaExplorer
Get the HWND(GetMediaExplorerHWND), update the listview(UpdateMediaExplorer) and run an action, associated with the MediaExplorer-section(MediaExplorer_OnCommand).
ConvertYCoordsMac2Win
Y-coordinates on Mac are different from the ones in Windows/Linux, meaning, pixel 0 is at the bottom, while Windows/Linux start on top.
This function converts the y-coordinates between these two coordinate-systems.
New version of Config-Vars-displayer-script
Shows changes with doubles without a problem now, is faster, uses the config-var-docs included with the API to get the currently accepted config-vars. I also improved the layout a bit.
New features in 4.00beta2.761
- Helper functions: FindPatternsInString - finds all occurrences of a matching-pattern in a string
- Helper functions: IsWithinTimeRange - returns, if a time is within a start and endtime, takes care of the precision-problem time-positions in Lua have
- ProjectManagement: GetProjectStateChunk - returns the ProjectStateChunk of the current project(finally working!)
- Scripts: ultraschall_developertool_Display-Altered-Config-Vars.lua - new version, which solves the faulty-displaying-of-double-issue, faster and improved layout. Uses now ConfigVars-Docfile to read the currently supported ConfigVars.
- Trackmanagement: IsSplitAtPosition - returns, if a split/mediaitemend/mediaitemstart exists at a certain position, within certain tracks
- User Interface: ConvertYCoordsMac2Win - converts y-coordinates between Windows/Linux and Mac related coordinatesystems
- User Interface: GetMediaExplorerHWND - gets the HWND-windowhandler of the Media Explorer
- User Interface: UpdateMediaExplorer - updates the listview of the Media Explorer
- User Interface: MediaExplorer_OnCommand - runs an Media Explorer action(just like Reaper's Main_OnCommand and Midi_OnCommand-functions); runs no scripts yet, only native/extension actions
Changes from Beta 2.76 to Beta 2.761
- Automation Items: GetProject_CountAutomationItems - didn't return the right retval in case of an error -> fixed
- ColorManagement: RGB2Grayscale - didn't return the right retval in case of an error -> fixed
- Configuration Files: CountIniFileExternalState_sec - did count keys instead of sections -> fixed(thanks to rstockm)
- Configuration Files: CountUSExternalState_sec - did count keys instead of sections -> fixed(thanks to rstockm)
- Configuration Files: CountUSExternalState_key - didn't return the right retval in case of an error -> fixed
- Configuration Files: DeleteKBIniActions - didn't return the right retval in case of an error -> fixed
- Configuration Files: DeleteKBIniScripts - didn't return the right retval in case of an error -> fixed
- Configuration Files: DeleteKBIniKeys - didn't return the right retval in case of an error -> fixed
- Configuration Files: EnumerateIniFileExternalState_sec - did enumerate keys instead of sections -> fixed(thanks to rstockm)
- Configuration Files: EnumerateKeysByPattern - didn't return the right retval in case of an error -> fixed
- Configuration Files: EnumerateSectionsByPattern - didn't return the right retval in case of an error -> fixed
- Configuration Files: EnumerateUSExternalState_sec - didn't return the right retval in case of an error -> fixed
- Configuration Files: EnumerateUSExternalState_key - didn't return the right retval in case of an error -> fixed
- Configuration Files: EnumerateValuesByPattern - didn't return the right retval in case of an error -> fixed
- Configuration Files: SetIniFileExternalState - didn't return the right retval in case of an error -> fixed
- Docs: Api-docs - went through all of them and removed MarkDown-issues, though I should do something on this MarkDown-issue. It's a drag...
- Docs: Doc-Engine - had wrong parameters and retvals in numerous functions...fixed(ooops)
- Docs: Doc-Engine: Docs_ConvertPlainTextToHTML - was missing html-codes in the description due me encoding it wrong
- Docs: GetRenderingToFileHWND - had parameters described, that don't exist -> fixed
- Docs: Reaper Internals - updated to Reaper 5.982, JSextension 0.990 added configvars from developer-releases
- Docs: Reaper: GetTrackSendInfo_Value - fixed Markdown-formatting-problems
- Docs: Reaper: print-functions - all print-functions, like sprint, fprint, gfx.printf, etc include now formatting information in the description.
- Docs: Reaper: SetTrackSendInfo_Value - fixed Markdown-formatting-problems
- EnvelopeManagement: SetArmState_Envelope - didn't return the right retval in case of an error -> fixed
- FileManagement: CountLinesInFile - didn't return the right retval in case of an error -> fixed
- FileManagement: GetLengthOfFile - didn't return the right retval in case of an error -> fixed
- FileManagement: MakeCopyOfFile_Binary - didn't return the right retval in case of an error -> fixed
- FileManagement: ReadValueFromFile - didn't return the right retval in case of an error -> fixed
- FileManagement: ReadBinaryFileUntilPattern - didn't return the right retval in case of an error -> fixed
- FileManagement: ReadBinaryFileFromPattern - didn't return the right retval in case of an error -> fixed
- FXManagement: AddParmLFOLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a LFOLEARN entry to become PARMLEARN(thanks to Justin and Schwa for helping me with that)
- FXManagement: AddParmLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a PARMLEARN entry to become LFOLEARN(thanks to Justin and Schwa for helping me with that)
- FXManagement: AddParmAlias_FXStateChunk - enhanced doc-description
- FXManagement: CountParmAlias_FXStateChunk - returns now -1 in case of an errorenhanced doc-description
- FXManagement: CountParmLearn_FXStateChunk - returns now -1 in case of an error; enhanced doc-description
- FXManagement: CountParmLFOLearn_FXStateChunk - returns now -1 in case of an error; enhanced doc-description
- FXManagement: DeleteParmAlias_FXStateChunk - enhanced doc-description
- FXManagement: DeleteParmLFOLearn_FXStateChunk - enhanced doc-description
- FXManagement: GetParmModulationChunk_FXStateChunk - enhanced doc-description
- FXManagement: GetParmLFOLearn_MediaTrack - enhanced doc-description
- FXManagement: GetFXStateChunk - had layoutproblem, when the passed StateChunk was taken from a ProjectStateChunk -> fixed(thanks to lossius)
- FXManagement: SetFXStateChunk - didn't return the right retval in case of an error -> fixed
- FXManagement: SetParmLFOLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a LFOLEARN entry to become PARMLEARN(thanks to Justin and Schwa for helping me with that)
- FXManagement: SetParmLearn_FXStateChunk - enhanced doc-description; fixed bug that could cause a PARMLEARN entry to become LFOLEARN(thanks to Justin and Schwa for helping me with that)
- FXManagement: SetParmAlias_FXStateChunk - enhanced doc-description
- Helper Functions: CompareStringWithAsciiValues - returned -1 in case of an error, although boolean should be returned -> fixed
- Helper Functions: ConvertIntegerIntoString2 - didn't return the right retval in case of an error -> fixed
- Helper Functions: GetScriptFilenameFromActionCommandID - didn't return the right retval in case of an error -> fixed
- Helper Functions: GetUserInputs - did change the tables passed as default-retvals -> fixed now
- Helper Functions: IsItemInTrack - changed error-retval to nil; didn't return the right retval in case of an error -> fixed
- Helper Functions: LoadFunctionFromExtState - didn't return the right retval in case of an error -> fixed
- Helper Functions: SetIntConfigVar_Bitfield - didn't return the right retval in case of an error -> fixed
- Helper Functions: ToggleStateAction - wrongly stated to return boolean instead of integer in the docs -> fixed
- Helper Functions: ToggleStateButton - wrong retval-description in the docs -> fixed
- Marker Management: DeleteNormalMarker - returned wrong retval in case of an error -> fixed
- Marker Management: DeleteEditMarker - returned wrong retval in case of an error -> fixed
- Marker Management: EnumerateEditRegion - returned wrong retval in case of an error -> fixed
- Marker Management: SetMarkerByIndex - returned wrong retval in case of an error -> fixed
- MediaItem Management: GetItemSpectralConfig - didn't return the right retval in case of an error -> fixed
- MediaItem Management: GetItemSpectralVisibilityState - didn't return the right retval in case of an error -> fixed
- MediaItem Management: GetMediaItemTake - didn't return the right retval in case of an error -> fixed
- MediaItem Management: RippleInsert_MediaItemStateChunks - had inner variable exposed
- MediaItem Management: SetItemLength - didn't return the right retval in case of an error -> fixed
- MediaItem Management: SetItemPosition - didn't return the right retval in case of an error -> fixed
- MediaItem Management: SetItemUSTrackNumber_StateChunk - didn't return in some errorcases, potentially resulting in a Lua-error -> fixed
- MediaItem Management: SplitMediaItems_Position - didn't return the right retval in case of an error -> fixed
- Project Management: GetProject_GetRegion - returned wrong retval in case of an error -> fixed
- Project Management: GetProject_CountMasterHWOuts - returned wrong retval in case of an error -> fixed
- Project Management: GetProject_MasterGroupFlagsState - returned wrong retval in case of an error -> fixed
- Project Management: GetProject_MasterGroupFlagsHighState - returned wrong retval in case of an error -> fixed
- Rendering: ApplyRenderTable_Project - stated nil as retval in case of an error, though it is false -> fixed
- Rendering: ApplyRenderTable_ProjectFile - stated nil as retval in case of an error, though it is false -> fixed
- Rendering: GetRenderPreset_RenderTable - stated false as retval in case of an error, though it is nil -> fixed
- Track Management: RemoveMediaItem_TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
- Track Management: RemoveMediaItemByIGUID_TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
- Track Management: RemoveMediaItemByGUID_TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
- Track Management: SetMediaItemStateChunk_in_TrackStateChunk - docs incorrectly stated nil as retval in case of an error -> fixed
- User Interface: GetVideoHWND - returned wrong retval in case of an error -> fixed
- Video: VID_Pixels2VideoUIStateCoords - returned wrong retval in case of an error -> fixed
- Video: VID_VideoUIStateCoords2Pixels - returned wrong retval in case of an error -> fixed
4.00 Beta 2.76: - "The Police - Walking on the Moon" - 20th of July 2019
Has now 977 functions with 42 new ones!
New in this release:
Parameter Learn
You can set/get/delete parameter-learning in Statechunks.
1) get a StateChunk
2) get its FXStateChunk using GetFXStateChunk
3) alter this FXStateChunk using the ParmLearn-functions
4) set this FXStateChunk using SetFXStateChunk
5) (re-)apply the final StateChunk to the Track/Item
Localize
You can localize your scripts using an external localize-file.
If that exists, ultraschall.Localize will convert your string into it's localized one, otherwise it uses it's original text.
DocEngine
long time on my list, functions for the DocEngine. With them, you can use my Reaper-internal-sourcefiles (.USDocML) and create your own conversions of them.
get_action_context_MediaItemDiff
a function, which helps you to get the diff of an MediaItem since last time calling this function. Good for RippleDrag-features.
AddSelectedItemsToRenderQueue
this adds MediaItems into the Render-Queued, either as single-queued or multiqueued-project-files(requested by Travesty)
GetUserInputs
allows now setting the length of the captions-fields.
No more cutting off of longer captions!(requested by Julian Sader)
More functions, more bugfixes, updated Reaper-docs, speedups
New features in 4.00beta2.76
- Actions: GetAllActions - gets all actions, actioncommandids and scriptnames of all actions in a specific section
- DocEngine: Docs_ConvertPlainTextToHTML - converts a plaintext into html
- DocEngine: Docs_GetAllUSDocBlocsFromString - gets all US_DocBlocs from a string
- DocEngine: Docs_GetUSDocBloc_ChapterContext - gets the chapters of an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Description - gets the description of an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Functioncall - gets a functioncall of an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_NextChapter - gets the slug of the next chapter of the US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Params - gets the parameters of an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_PreviousChapter - gets the slug of the previous chapter of the US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Requires - gets the requires-tag from an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Retvals - gets the retvals of an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Slug - gets the slug from an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_SourceDocument - gets the source-document-entry from an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_TargetDocument - gets the target-document-entry from an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Tags - gets the tags-entry from an US_DocBloc
- DocEngine: Docs_GetUSDocBloc_Title - gets the title from an US_DocBloc
- DocEngine: Docs_RemoveIndent - removes indentation from a text(usually taken from an US_DocBloc)
- Docs: Concepts: Localize_001_Introduction - Introduction to Localization
- Docs: Concepts: Localize_002_LangPack_Fileformat - How to write the translation-file
- Docs: Concepts: Localize_003_Localize_Functions - usage of Localization functions
- FXManagement: AutoDetectVSTPlugins - auto-searches for the vst-plugin-folder
- FXManagement: AddParmAlias_FXStateChunk - adds a parameter-alias-entry to an FXStateChunk
- FXManagement: AddParmLearn_FXStateChunk - adds a parameter-learn-entry to an FXStateChunk
- FXManagement: AddParmLFOLearn_FXStateChunk - adds a parameter-lfo-learn-entry to an FXStateChunk
- FXManagement: CountParmAlias_FXStateChunk - counts parameter-alias-entries in an FXStateChunk
- FXManagement: CountParmLearn_FXStateChunk - counts parameter-learn-entries in an FXStateChunk
- FXManagement: CountParmLFOLearn_FXStateChunk - counts parameter-lfo-learn-entries in an FXStateChunk
- FXManagement: DeleteParmAlias_FXStateChunk - deletes a parameter-alias-entry from a specific fx in an FXStateChunk
- FXManagement: DeleteParmLFOLearn_FXStateChunk - deletes a parameter-lfo-learn-entry from a specific fx in an FXStateChunk
- FXManagement: DeleteParmLearn_FXStateChunk - deletes a ParmLearn-entry from a specific fx in an FXStateChunk
- FXManagement: ScanDXPlugins - rescans all DX(DirectX)-plugins, optionally scans all or just the new ones
- FXManagement: ScanVSTPlugins - rescans all vst-plugins, optionally clears vst-plugin-cache first
- FXManagement: SetFXStateChunk - sets an FXStateChunk into a TrackStateChunk or MediaItemStateChunk
- FXManagement: SetParmAlias_FXStateChunk - sets a parameter-alias-entry from a specific fx in an FXStateChunk
- FXManagement: SetParmLearn_FXStateChunk - sets a parameter-learn-entry from a specific fx in an FXStateChunk
- FXManagement: SetParmLFOLearn_FXStateChunk - sets a parameter-lfo-learn-entry from a specific fx in an FXStateChunk
- GFX-Management: GFX_SetFont - sets a font to be used in a gfx-window; adjust Mac-fonts to match the size of Windows-fonts(unlike Reaper's own gfx.setfont)(code by lokasenna with contributions by Justin and Schwa)
- HelperFunctions: get_action_context_MediaItemDiff - gets the MediaItemDifference(position, start, end, length, offset) since last time calling this function. Good for ripple-drag-scripts.
- Localize: Localize - localizes a string, using the texts from a translationfile; can be used with or without ultraschall. at the beginning
- Localize: Localize_RefreshFile - reloads an already set translation-file, so translations can be updated at runtime
- Localize: Localize_UseFile - sets a translationfile, that shall be used by function ultraschall.Localize
- Localize: ultraschall_translation_file_format.USLangPack - has a description of the USLangPack-fileformat for usage with the Localize-functions(see in misc-folder)
- Misc: Developer_Reaper5965.ReaperLangPack - a language-pack, which displays the sections, in which the caption is located in a langpack
- ReaMote: AutoSearchReaMoteSlaves - autosearches for new ReaMote-slaves
- Render: AddSelectedItemsToRenderQueue - adds selected MediaItems to render-queue as either one render-queued-project or individual projects(requested by Travesty)
- Render: GetRenderingToFileHWND - gets the hwnd of the rendering-to-file-dialog, during rendering
- Tools: LangPack2Developer_langpack_converter.lua - converts a language-pack into a developer-langpack, which displays the sections, in which every caption is located in the langpack
- Tools: ultraschall_Add_Developertools_To_Reaper.lua - allows installing developertools into Reaper (requested by X-Raym)
- Tools: ultraschall_developertool_CheckForNewConfigVars.lua - checks the individual lines of a string in clipboard for valid config-vars; thought I already had added that...
- Tools: ultraschall_Remove_Developertools_From_Reaper.lua - allows removing already installed developertools from Reaper
- Track Management: AnyTrackMute - returns, if any track is muted; optionally includes the master-track as well
Changes from Beta 2.75 to Beta 2.76
- API: versionscheck - had problems with pre/rc and dev-versions of Reaper -> fixed(reported by X-Raym)
- Docs: Concepts-RenderTable - layout was totally messed up due Markdown -> fixed
- Docs: FileType-Description - added missing info to ReaperConfigZip-Filetype-description
- Docs: Index - index in all docs was missing chapters -> fixed
- Docs: updated Reaper-docs to 5.980 and JS-extension 0.989
- Helpers: GetPath - when filename has no path, it returns now "", filename
- Helpers: GetUserInputs - allows now setting width of the captions-fields(requested by Julian Sader), allows now commas in captions and default-values as well; title is now the one defined by the title-parameter(used to have temporary title previously) (reported by X-Raym)
- Helpers: SplitStringAtLineFeedToArray - sped up by magnitudes, should now work much faster with megabyte-strings
- Markers: GetAllRegions - returned index in allregionsarray[index][3] wasn't 1-based, causing problems with other functions -> fixed
- Render: RenderProject_Regions - produced Lua-error, when passing a filename without extension and if region was <1, returns error-messages now in that case allows now giving an optional separator between renderfilename_with_path and regionname when addregionname=true, including / check docs for that new feature(reported by reapero)
- Scripts: HWND-Displayer.lua - reimplemented, much more comfortable now with a lot of more features.
- Tools - the following scripts renamed to:
ultraschall_developertool_ActionlistToIni-Converter.lua
ultraschall_developertool_Display-Altered-ConfigFile-Entries.lua
ultraschall_developertool_Display-Altered-Config-Vars.lua
ultraschall_developertool_Env_State_Diffs_Monitor.lua
ultraschall_developertool_findConfigVarsToggledByActions.lua
ultraschall_developertool_GetPitchShiftModes.lua
ultraschall_developertool_gfx_deltablit_displayer.lua
ultraschall_developertool_HWND-Displayer.lua
ultraschall_developertool_Item_State_Diffs_Monitor.lua
ultraschall_developertool_Project_State_Diffs_Monitor.lua
ultraschall_developertool_StateInspector.lua
ultraschall_developertool_Track_State_Diffs_Monitor.lua
- Tools: ultraschall_Remove_ExampleScripts_To_Reaper.lua - renamed to ultraschall_Remove_ExampleScripts_From_Reaper.lua, better name that way
Ultraschall Framework - Changelog
4.00 Beta 2.75: - "Nick Cave & the Bad Seeds - Babe, I'm on fire" - 29th of May 2019
tagline inspired by a comment from _stevie_ ;)
!RenderMania Update! Has now 935 functions with 95 new ones!
Rendering - reworked Rendering completely; you can render the current project now directly, access render-presets and render-queues (thanks to Justin and Schwa for adding the features needed into Reaper)
Render-Format-strings - you can create all(!) renderformats available in Reaper as BASE64-encoded strings, as well as analyzing already BASE64-encoded renderstrings(this alone is 44 functions)
Parameter Learn - you can get all parameter learn, modulation and lfo-settings, as well as FXStateChunks who store that information, add/set/delete will come later (requested by TonE and Anton9)
ultraschall.MB - shows a messagebox and allows exchanging the texts of the buttons with your own texts
LoadFunctionFromExtState and StoreFunctionInExtState - lets you pass a Lua-function from one script to another using an extstate, no external files and loads and requires necessary
Docs - updated docs for Reaper 5.978, SWS 2.10.0.1, JS-extension 0.986
More Docs - when you've installed the API using ReaPack, actions will be added for opening the individual parts of the docs, like Reaper API(ReaScript, Video, WebRC), ConfigVars, Ultraschall-Concepts and FunctionsAPI. Type into the Actions-dialog-filter the words "ultraschall" and "help".
Example Scripts - when you've installed the API using ReaPack, new actions for registering and unregistering the example-scripts as well as opening the example-script-folder. Type into the Actions-dialog-filter the words "ultraschall" and "examples".
Even more about docs - docs for parameter-learn added(thanks to Anton9 for helping me with that) as well as many docs I had lying around(find them in the ResourceFolder/UserPlugins/ultraschall_api/Misc/misc_docs-folder)
CleanUp - removed junk and converted files into smaller fileformats(where applicable), so the API is now 20MB smaller
Many other helpful functions - HexString2Ascii2HexString, Get/Set Armstate of Envelopes, DeleteTracks_TrackString, Get/SetCheckboxState and more
Bugfixes - as usual ;)
If you find this helpful and use this, please consider donating to me at ultraschall.fm/danke (look for mespotine), paypal(lspmp3@yahoo.de) or patreon.com/mespotine.
Might be a small donation for you, but a giant motivation leap for mankind(means: me) ;)
New features in 4.00beta2.75
- Docs: Misc/misc_docs - added this folder to put into that various (often unfinished) docs
- Docs: ParmLearnDocs.txt - documented parameter-learn/modulation/alias-settings
- Docs: US-Concepts - added description of datatype RenderTable
- Docs: US-Concepts - Rendering: About RenderTables; description of how to use and work with RenderTables
- Docs: US-Concepts - Rendering: Render Presets; description for how to deal with render-presets
- Docs: US-Concepts - Rendering: Render Queue; description for how to render using the render-queue
- Envelopes: GetArmState_Envelope - gets the armstate of a TrackEnvelope or EnvelopeStateChunk
- Envelopes: GetLastEnvelopePoint_TrackEnvelope - gets the last point from a TrackEnvelope-object
- Envelopes: SetArmState_Envelope - sets the armstate of a TrackEnvelope or EnvelopeStateChunk
- FXManagement: GetFXStateChunk - Gets an FXStateChunk from a StateChunk(usually Track/MediaItemStateChunk)
- FXManagement: GetFXFromFXStateChunk - gets all lines of a specific FX stored in an FXStateChunk
- FXManagement: GetParmAlias_FXStateChunk - gets an aliasname for a specific parameter of an FX
- FXManagement: GetParmAlias_MediaTrack - gets an aliasname for a specific parameter of an FX in a specific track
- FXManagement: GetParmAudioControl_FXStateChunk - gets all settings from the Audio Control Signal-settings from parameter-modulation
- FXManagement: GetParmLearn_FXStateChunk - gets the parameter-learn-settings from an FXStateChunk, as requested by TonE
- FXManagement: GetParmLearn_MediaItem - gets the parameter-learn-settings from a MediaItem, as requested by TonE
- FXManagement: GetParmLearn_MediaTrack - gets the parameter-learn-settings from a MediaTrack, as requested by TonE
- FXManagement: GetParmLFO_FXStateChunk - gets the LFO-settings from the parameter-modulation from an FXStateChunk
- FXManagement: GetParmLFOLearn_FXStateChunk - gets the parameter-lfo-learn-settings from an FXStateChunk
- FXManagement: GetParmLFOLearn_MediaItem - gets the parameter-lfo-learn-settings from an FXStateChunk
- FXManagement: GetParmLFOLearn_MediaTrack - gets the parameter-lfo-learn-settings from an FXStateChunk
- FXManagement: GetParmMIDIPLink_FXStateChunk - gets the parameter-link-settings from an FXStateChunk
- FXManagement: GetParmModulationChunk_FXStateChunk - gets the chunk for parameter-modulation for a specific parameter of an FX in a specific track
- FXManagement: IsValidFXStateChunk - checks, whether a StateChunk is a valid FXStateChunk
- Helpers: ConvertAscii2Hex - converts a string into it's two-digit-hexadecimal-number-representation
- Helpers: ConvertBitsToInteger - converts a table with bitvalues (0 or 1) into it's integer-representation
- Helpers: ConvertHex2Ascii - converts a string with two-digit-hexadecimal-numbers into it's ascii-representation
- Lua: StoreFunctionInExtState - stores a function into an extstate
- Lua: LoadFunctionFromExtState - loads a function from an extstate, if stored using StoreFunctionInExtState
- MediaItems: GetLengthOfAllMediaItems_Track - returns the length of all MediaItems in a track combined, in seconds
- MediaItems: GetItemPlayRate - updated pitchshiftmodes in docs
- Project Management: GetProject_DefPitchMode - returns now the stretchmarker-mode as well(as set in Project Settings); updated docs to recent pitch-shift-modes
- Project Management: GetProject_GroupName - gets the name of an item-group, as stored in a ProjectStateChunk of projectfile
- Project Management: GetProject_QRenderOriginalProject - returns the original projectfile of a render-queued-project from a projectfile or ProjectStateChunk
- Project Management: GetProject_QRenderOutFiles - returns the render-outfiles-with-path of a render-queued-project from a projectfile or ProjectStateChunk
- Project Management: GetProject_RenderQueueDelay - returns the render-queue-delay of a projectfile or ProjectStateChunk
- Project Management: GetProject_Selection - had some inner variables exposed -> fixed now
- Project Management: SetProject_DefPitchMode - allows now setting the stretchmarker-mode as well(as set in Project Settings); updated docs to recent pitch-shift-modes
- Render: AddProjectFileToRenderQueue - adds a projectfile or the current active project to the render-queue
- Render: AddRenderPreset - adds a new render-preset
- Render: ApplyRenderTable_Project - applies a RenderTable to the active project
- Render: ApplyRenderTable_ProjectFile - applies a RenderTable to a projectfile
- Render: CreateRenderCFG_AVI_Video - creates a render-string for the format video-AVI
- Render: CreateRenderCFG_GIF - creates a render-string of the format video-gif
- Render: CreateRenderCFG_LCF - creates a render-string of the format video-lcf
- Render: CreateRenderCFG_M4AMAC - creates a render-string for the format audio-M4A for Mac
- Render: CreateRenderCFG_MKV_Video - creates a render-string for the format video-MKV
- Render: CreateRenderCFG_MOVMAC_Video - creates a render-string for the format video-MOV for Mac
- Render: CreateRenderCFG_MP4MAC_Video - creates a render-string for the format video-MP4 for Mac
- Render: CreateRenderCFG_QTMOVMP4_Video - creates a render-string for the format video-QT/MOV/MP4
- Render: CreateNewRenderTable - creates a new RenderTable, which holds all render-settings; can be applied later to projects or projectfiles
- Render: DeleteRenderPreset_Bounds - deletes a bounds-render-preset from reaper-render.ini and the used render-presets in the Render to File-dialog
- Render: DeleteRenderPreset_FormatOptions - deletes a format/options-render-preset from reaper-render.ini and the used render-presets in the Render to File-dialog
- Render: GetLastRenderPaths - returns the last 20 used render-output-paths, that have been used for rendering by any project in Reaper.
- Render: GetLastUsedRenderPatterns - returns the last 12 used render-patterns, that have been used for rendering by any project in Reaper.
- Render: GetRenderQueuedProjects - gets the projectfilenames of the projects currently in the render-queue
- Render: GetRender_AutoIncrementFilename - gets the current state of the "Silently increment filenames to avoid overwriting"-checkbox from the Render to File-dialog
- Render: GetRender_OfflineOnlineMode - gets the current mode of the offline/online-render-dropdownlist from the Render to File-dialog
- Render: GetRender_ProjectSampleRateForMix - gets the current state of the "Use project sample rate for mixing and FX/synth processing"-checkbox from the Render to File-dialog
- Render: GetRender_ResampleMode - gets the current state of the "Resample mode (if needed)"-dropdownlist from the Render to File-dialog
- Render: GetRender_SaveCopyOfProject - gets the current state of the "Save copy of project to outfile.wav.RPP"-checkbox from the Render to File-dialog
- Render: GetRender_QueueDelay - Gets the checkstate of the "Delay queued render to allow samples to load"-checkbox of the Render to File-dialog.
- Render: GetRenderCFG_Settings_AIFF - gets the settings of an audio-AIFF-rendercfg-string
- Render: GetRenderCFG_Settings_AudioCD - gets the settings of an audio-AudioCD-rendercfg-string
- Render: GetRenderCFG_Settings_AVI_Video - gets the settings of an video-avi-rendercfg-string
- Render: GetRenderCFG_Settings_DDP - returns, if a renderstring is a valid DDP-renderstring
- Render: GetRenderCFG_Settings_FLAC - gets the settings of an audio-flac-rendercfg-string
- Render: GetRenderCFG_Settings_GIF - gets the settings of a video-gif-rendercfg-string
- Render: GetRenderCFG_Settings_LCF - gets the settings of a video-lcf-rendercfg-string
- Render: GetRenderCFG_Settings_M4AMac - gets the settings of an audio M4A for Mac
- Render: GetRenderCFG_Settings_MKV_Video - gets the settings of a video-mkv-rendercfg-string
- Render: GetRenderCFG_Settings_MOVMac_Video - gets the settings of a video-MOV for Mac
- Render: GetRenderCFG_Settings_MP4Mac_Video - gets the settings of a video-MP4 for Mac
- Render: GetRenderCFG_Settings_MP3 - gets the settings of an audio-mp3-rendercfg-string
- Render: GetRenderCFG_Settings_MP3MaxQuality - gets the settings of an audio-mp3-maxquality-rendercfg-string
- Render: GetRenderCFG_Settings_MP3CBR - gets the settings of an audio-mp3-cbr-rendercfg-string
- Render: GetRenderCFG_Settings_MP3VBR - gets the settings of an audio-mp3-vbr-rendercfg-string
- Render: GetRenderCFG_Settings_MP3ABR - gets the settings of an audio-mp3-abr-rendercfg-string
- Render: GetRenderCFG_Settings_OGG - gets the settings of an audio-ogg-rendercfg-string
- Render: GetRenderCFG_Settings_OPUS - gets the settings of an audio-opus-rendercfg-string
- Render: GetRenderCFG_Settings_QTMOVMP4_Video - gets the settings of an audio-opus-rendercfg-string
- Render: GetRenderCFG_Settings_WAV - gets the settings of an audio-wav-rendercfg-string
- Render: GetRenderCFG_Settings_WAVPACK - gets the settings of an audio-wavpack-rendercfg-string
- Render: GetRenderCFG_Settings_WebMVideo - gets the settings of a video-webm-rendercfg-string
- Render: GetRenderPreset_Names - returns the render-presetnames currently stored
- Render: GetRenderPreset_RenderTable - returns a RenderTable of all settings of a specific render-preset
- Render: GetRenderTable_Project - returns a table with all render-settings of the currently active project
- Render: GetRenderTable_ProjectFile - returns a table with all render-dialog-settings from an rpp-projectfile or ProjectStateChunk
- Render: IsValidRenderTable - returns, if a table is a valid RenderTable
- Render: RenderProject_RenderTable - renders a projectfile or the current active project using a RenderTable
- Render: RenderProject_RenderQueue - renders a specific project from the render-queue
- Render: SetRender_AutoIncrementFilename - sets the current state of the "Silently increment filenames to avoid overwriting"-checkbox from the Render to File-dialog
- Render: SetRender_OfflineOnlineMode - gets the current mode of the offline/online-render-dropdownlist from the Render to File-dialog
- Render: SetRender_ProjectSampleRateForMix - sets the current state of the "Use project sample rate for mixing and FX/synth processing"-checkbox from the Render to File-dialog
- Render: SetRender_ResampleMode - sets the current state of the "Resample mode (if needed)"-dropdownlist from the Render to File-dialog
- Render: SetRender_SaveCopyOfProject - sets the checked-state of the "Save copy of project to outfile.wav.RPP"-checkbox from the Render to File-dialog.
- Render: SetRender_QueueDelay - Sets the "Delay queued render to allow samples to load"-checkbox of the Render to File-dialog.
- Render: SetRenderPreset - sets the values of an existing render-preset
- Scripts: GetPitchShiftModes.lua - gets a full list of all pitch-shiftmodes of the currently running Reaper-instance, formats it and puts it into clipboard
- Scripts: ultraschall_Add_ExampleScripts_To_Reaper.lua - adds the example-scripts into Reaper, can be searched for using examples
- Scripts: ultraschall_Help_Reaper_Api_Video_Documentation.lua - opens the video-api-documenation in the browser
- Scripts: ultraschall_Help_Reaper_Api_Web_Documentation.lua - opens the web-rc-api-documenation in the browser
- Scripts: ultraschall_Help_Reaper_ConfigVars_Documentation.lua - opens the config-vars-documenation in the browser
- Scripts: ultraschall_OpenFolder_Api_Documentation.lua - opens the documentation-folders
- Scripts: ultraschall_OpenFolder_Api_ExampleScripts.lua - opens the example-scripts-folder
- Scripts: ultraschall_Remove_ExampleScripts_To_Reaper.lua - removes the example-scripts from Reaper again
- Trackmanagement: DeleteTracks_TrackString - deletes all tracks given in a trackstring
- UserInterface: GetCheckboxState - gets the current checkstate of a checkbox-hwnd
- UserInterface: SetCheckboxState - sets a new checkstate of a checkbox-hwnd
Changes from Beta 2.74 to Beta 2.75
- ChildScripts: GetScriptParameters - omitted parameters, who were nil or "" -> fixed
- ChildScripts: GetScriptReturnvalues - omitted returnvalues, who were nil or "" -> fixed
- ChildScripts: SetScriptParameters - omitted parameters, who were nil or "" -> fixed
- ChildScripts: SetScriptReturnvalues - omitted returnvalues, who were nil or "" -> fixed
- Docs: corrected wrong functioncount in docs
- Docs: CreateTemporaryFileOfProjectfile - moved in docs to Project-Files -> Helper functions
- Docs: ConfigVars: defpitchcfg - updated PitchShiftmodes
- Docs: Reaper - updated docs to Reaper 5.978, JS-extension 0.986
- Docs: Reaper-API - GetSetProjectInfo - added missing information about RENDER_DITHER (dither/noiseshape stems) and RENDER_SRATE(when returned RENDER_SRATE=0)
- Docs: Reaper ConfigVars - added better description for g_config_project
- Docs: render-codes-decoded-base64-strings.txt - fixed errors, mostly regarding mp3
- Docs: US-Concepts - added functions to checking datatypes and removed beta-functions information from How to install hotfixes
- Docs: US-Concepts "Rendering: About Rendering-functions" - added information about RenderProject_RenderTable as well as removing the info about needing to save current active project before rendering
- Docs: US-Concepts "Rendering: Change more render-settings in projectfiles" - rewritten, as the difficult alteration of projectfiles isn't needed anymore for rendering the current project
- Docs: when Beta-functions is enabled, the docgenerator adds beta-functions into docs as well
- FileIO: CountLinesInFile - errormessages return now the filename as well
- FileIO: GetAllFilenamesInPath - didn't add a directory-separator between file and path, if path was missing / or \ at the end -> fixed now
- FileIO: GetLengthOfFile - errormessages return now the filename as well
- FileIO: ReadBinaryFileFromPattern - errormessages return now the filename as well
- FileIO: ReadBinaryFileUntilPattern - errormessages return now the filename as well
- FileIO: ReadBinaryFile_Offset - errormessages return now the filename as well
- FileIO: ReadFileAsLines_Array - errormessages return now the filename as well
- FileIO: ReadFullFile - errormessages return now the filename as well
- FileIO: ReadLinerangeFromFile - errormessages return now the filename as well
- FileIO: ReadValueFromFile - errormessages return now the filename as well
- FileIO: WriteValueToFile - errormessages return now the filename as well
- FileIO: WriteValueToFile_Insert - errormessages return now the filename as well
- FileIO: WriteValueToFile_InsertBinary - errormessages return now the filename as well
- FileIO: WriteValueToFile_Replace - errormessages return now the filename as well
- FileIO: WriteValueToFile_ReplaceBinary - errormessages return now the filename as well
- Fun: WinterlySnowflakes - only initialized now, when called (used to be initialized at every startup of an US-API-instance)
- General: cleanup of functions-engine - removed 3569 useless lines, who contained old debugcode sleeping in comments.
- GFX: GFX_GetMouseCap - interpreted modifier-keys as mouseclicks, when gfx.getkey had been used in script; mousewheel sometimes kept stuck at one value-> fixed
- Helpers: Base64_Encoder - fixed bug that caused encoded strings to end with wrong letter
- Helpers: CreateUSApiDocs_HTML - removed, as I'm not using it for ages now
- Helpers: GetReaperAppVersion - didn't return subversionnumber for pre-releases -> fixed now; returns pre-release-versions as well now
- Helpers: MB - allows now to choose your own texts for the buttons
- Helpers: LimitFractionOfFloat - improved code a little for rounding-operations, hope it works now properly
- Helpers: print2 - didn't show anything, if the first parameter was nil -> fixed now
- HWND: GetHWND_ArrangeViewAndTimeLine - returns now the HWND of the TCP as well
- IniFiles: Reaper-Render-Codes.ini - removed, not necessary anymore
- IniFiles: Reaper-Render-Codes-for-AudioCD.ini - removed, not necessary anymore
- MediaItems: EnumerateMediaItemsInTrack - had wrong functionname in index -> fixed
- MediaItems: PreviewMediaFile- uses now Xenakios' function Xen_StartSourcePreview(more stable that way), has now gain and loop as additional parameters
- MediaItems: StopAnyPreview - uses now Xenakios' function Xen_StopSourcePreview(more stable that way)
- Projectmanagement: all SetProject-functions - added missing ProjectStateChunk-returnvalue to docs
- Projectmanagement: GetProject_NumberOfTracks - sped code up by magnitudes for huge projects; parameter ProjectStateChunk wasn't working due stupid typo -> fixed now
- Projectmanagement: GetProject_RenderFilename - could produce Lua-error, when no Renderfilename was existing in the projectfile
- Projectmanagement: GetProject_RenderPattern - added new render-pattern options to the docs
- Projectmanagement: GetProject_RenderRange - added bounds-option for selected regions
- Projectmanagement: SetProject_RenderPattern - added new render-pattern options to the docs; stabilized, when no render-pattern was set in project/ProjectStateChunk
- Projectmanagement: SetProject_RenderFilename - stabilized, when no render-filename was set in project/ProjectStateChunk
- Projectmanagement: SetProject_RenderRange - added bounds-option for selected regions
- ReaPack: Reapack-API-xml-generator.lua - added installation of Docs-opening-scripts as well.
- Render: CreateRenderCFG_AudioCD - improved and lifted limitations for leadin-silence-values
- Render: CreateRenderCFG_MP3ABR - reimplemented, supports now "Do not allow joint stereo" and "Write ReplayGain tag"-checkboxes; forgot to add FasterEncode-setting -> fixed now
- Render: CreateRenderCFG_MP3CBR - reimplemented, supports now "Do not allow joint stereo" and "Write ReplayGain tag"-checkboxes; forgot to add FasterEncode-setting -> fixed now
- Render: CreateRenderCFG_MP3MaxQuality - reimplemented, supports now "Write ReplayGain tag"-checkbox
- Render: CreateRenderCFG_MP3VBR - reimplemented, supports now "Do not allow joint stereo" and "Write ReplayGain tag"-checkboxes; forgot to add FasterEncode-setting -> fixed now
- Render: CreateRenderCFG_OGG - reimplemented, should be more stable now; lifted limitations with bitrates
- Render: CreateRenderCFG_Opus - reimplemented, should be more stable now and supports now all options
- Render: CreateRenderCFG_Opus2 - deprecated, use CreateRenderCFG_Opus instead
- Render: CreateRenderCFG_WebMVideo - rewritten, lifted many limitations
- Render: GetOutputFormat_RenderCfg - moved to docs-index Rendering of Project -> Analyzing Renderstrings; allows now passing a project/projecttab as well recoded, is now more future-proof
- Render: RenderProject - renamed from RenderProject_RenderCFG, which is still available, but undocumented; reimplemented: sped up rendering the current project by magnitudes; no "save before rendering" necessary anymore; stabilized deleting the targetfile(if selected)
- Render: RenderProject_Regions - renamed from RenderProjectRegions_RenderCFG, which is still available, but undocumented; sped up rendering the current project by magnitudes; no "save before rendering" necessary anymore; stabilized deleting the targetfile(if selected) parameters renderfilenamewithpath and rendercfg are now mandatory
- Routing: GetTrackAUXSendReceives - recv_tracknumber is now 1-based, as it should be(thanks to woodslanding)
- Routing: SetTrackAUXSendReceives - recv_tracknumber is now 1-based, as it should be(thanks to woodslanding)
- Routing: AddTrackAUXSendReceives - had parameters tracknumber and recv_tracknumber accidentally reversed, when not working with StateChunks .. oops -> fixed (thanks to woodslanding)
- TrackManagement: GetTrackHeightState - stabilised parameter TrackStateChunk, returns now locked-trackstate
- TrackManagement: SetTrackHeightState - stabilised parameter TrackStateChunk, allows now setting locked-trackstate
- TrackManagement: SetTracksSelected - when trackstring=nil or "", it deselects all tracks now
4.00 Beta 2.74: - "Talking Heads - Once in a Lifetime" - 10th of April 2019
Has now 822 functions, with 22 new ones
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
- 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
4.00 Beta 2.73: - "Radiohead - Bangers'n'Mash" - 9th of March 2019
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
4.00 Beta 2.72: - "Blue Oyster Cult - Don't fear the Reaper" - 1st of March 2019
Has now 780 functions, with 80 new ones
Among them new features, like:
ReaPack installable, it can be installed using ReaPack now, using https://github.com/Ultraschall/ultraschall-lua-api-for-reaper/raw/master/ultraschall_api_index.xml - Request by X-Raym
Defer-functions, that allow setting, how often a specific defer-loop shall be executed, every n'th cycle/second. They also allow being terminated from inside and outside the current script.
ChildScripts, that allow you to run scripts as multiple script-instances, pass parameters and returnvalues to and from them - Request by lokasenna
Get HWNDS, get numerous HWNDs, including the one of your gfx.init-window, ArrangeView, Timeline, Render to File-dialog, Actions-dialog, etc - Request by Sexan
print and print2, replaces the unuseable print-function from Lua
new backgroundscripts, who monitor statechanges of playstate, editcursorposition and loop-button
Custom Markers and Regions, that follow the scheme "_custommarkername: text", that can be easily managed.
Have multiple markertypes with custom-markers and custom-regions with this feature. - request by VanillaChief
Reaper-Internals Docs, updated to Reaper 5.971(including the new Video Processor-docs), SWS 2.10.0.1, JS-Extension 0.971 and ReaPack.
many, many, many, many bugfixes
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_Defer01.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
- 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 - improved checking for validity of parameters
- Markers: IsMarkerNormal - improved checking for validity of parameters
- 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
- 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_MasterGroupFlagsHighState - 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 Docs: print, 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
4.00 Beta 2.7: - "Frank Zappa - The Return of the Son of Monster Magnet" - 15th of December 2018
Has now 700 functions, with about 250 new ones!
New features in 4.00beta2.7
- SetEnvelopeHeight - set the height and compactible state of an envelope-lane/envelopestatechunk
- GetTrackStateChunk_Tracknumber - get a TrackStateChunk without the hassle of creating a trackobject first
- SetTrackStateChunk_Tracknumber - set a TrackStateChunk without the hassle of creating a trackobject first
- GetTrackWidth - gets the Track-Width
- GetTrackVolPan - gets Vol and Pan-settings of the track
- GetTrackScore - gets Score of the track
- GetTrackPanMode - gets PanMode of the track
- GetTrackMidiColorMapFn - gets MidiColorMapFilename of the track
- GetTrackMidiBankProgFn - gets MidiBankProg-Filename of the track
- GetTrackMidiTextStrFn - gets MidiTextStr-Filename of the track
- GetTrackID - gets the track-ID
- CountPatternInString - counts a pattern in a sourcestring and returns appearances and positions of appearances
- ConvertColor - converts color to native, without the hassle that Reaper needs
- CountNormalMarkers_NumGap - returns the first numbering-gap within shown-markernumbers
- CenterViewToCursor - centers arrange view to play-, edit- or mousecursor-timeposition.
- SetReaperWindowToSize - to set the size of Reaper's Main Window
- toboolean - converts a string to boolean, if possible. Like Lua's tostring() or tonumber()-functions
- CheckActionCommandIDFormat - checks, if an action-command-id is properly formatted
- CheckActionCommandIDFormat2 - checks, if an action-command-id is properly formatted and if it exists in the Reaper-installation
- IsRegionAtPosition - checks, if regions are at a certain position and returns their index-numbers
- IsMarkerAtPosition - checks, if markers are at a certain position and returns their index-numbers
- SetTrackID - sets the track-ID
- SetTrackMidiColorMapFn - sets MidiColorMapFilename of the track
- SetTrackMidiBankProgFn - sets MidiBankProg-Filename of the track
- SetTrackMidiTextStrFn - sets MidiTextStr-Filename of the track
- SetTrackPanMode - sets PanMode of the track
- SetTrackWidth - sets the Track-Width
- InsertMediaItemFromFile - inserts a mediafile into the project at position and in specific track
- GetMediafileAttributes - returns mediafile-attributes
- GetMarkerByName - gets markers/regions by name
- GetMarkerByName_Pattern - gets markers/regions that have a certain character-sequence in their name
- GetMarkerByIndex - gets values of a certain marker/region, count by either markers or regions
- SetMarkerByIndex - sets values of a certain marker/region, count by either markers or regions
- GetReaperAppVersion - returns the appversion and the bits-version of the Reaper-App, separated into version and bits(unlike reaper.GetAppVersion())
- GetOS - returns the operating system and it's bits separated, unlike reaper.GetOS()
- IsOS_Windows - returns true, if the operating-system is Windows, false if not. Also returns the bits of the os.
- IsOS_Mac - returns true, if the operating-system is MacOS, false if not. Also returns the bits of the os.
- IsOS_Other - returns true, if the operating-system is other(usually Linux), false if not. Also returns the bits of the os.
- GetItemSpectralConfig - gets the FFT-size of the spectral-edit-view of a specific item/statechunk
- SetItemSpectralConfig - sets the FFT-size of the spectral-edit-view of a specific item/statechunk
- GetItemSpectralEdit - Get the settings of a given spectral-edit-boundary-box
- CountItemSpectralEdits - Counts the number of spectral-edit-boundary-boxes
- DeleteItemSpectralEdit - deletes a spectral-edit-boundary-box
- SetTrackScore - sets SCORE-state of a track
- SetTrackVolPan - set vol, pan, panlaw of a track
- SetTrackRecCFG - set track-rec-encoding-configuration
- LimitFractionOfFloat - takes a float-value and reduces the number of digits in the fraction-part of the float; (500th Api function!)
- SearchStringInString - searches for occurrences of a string within another string; differs from CountPatternInString in that it allows disabling searching for strings within already found strings
- GetAllEntriesFromTable - returns all entries from a table in an iterable form; good for unknown tables/tablestructures
- GetItemSourceFile_Take - returns filename, pcm-source and the media-item-take-object of a requested take
- GetAllDirectoriesInPath - gets all directory-names in path
- GetAllFilesnamesInPath - gets all filenames in path
- CountDirectoriesAndFilesInPath - counts files and directories in path
- APIExists - returns, if a certain function/element exists in the ultraschall-api
- AddItemSpectralEdit - adds an spectral-editing-box into an item/statechunk
- GetItemSpectralVisibilityState - get the visibility-state of spectral-edit of a certain MediaItem
- IsValidEnvStateChunk - checks, if a string is a valid envelope-state-chunk
- IsValidTrackStateChunk - checks, if a sring is a valid trackstate-chunk
- IsValidItemStateChunk - checks, if a string is a valid itemstate-chunk
- EnumProjects - gets the projectfilename+path and the ReaProject-object of a requested project
- DeleteProjExtState_Section - deletes all project-extstates from a specific section
- DeleteProjExtState_Key - deletes the value from a specific project-extstates->section->key
- GetProjExtState_AllKeyValues - get all keys and values from a proj-extstate
- IsValidGuid - checks, if a string is a valid guid
- SetGuidExtState - sets a proj-extstate with a guid as extname(good for additional metadata for tracks/items/etc
- GetGuidExtState - gets a proj-extstate with a guid as extname(good for additional metadata for tracks/items/etc
- GetVZoom - returns the current vertical-zoomfactor of the current project
- SetVZoom - sets the vertical-zoomfactor of the current project
- StoreArrangeviewSnapshot - stores a snapshot of current start/endposition and verticalzoom from the arrangeview into a proj-extstate-slot
- IsValidArrangeviewSnapshot - checks, whether an arrangeview-snapshot-slot is set/valid
- RetrieveArrangeviewSnapshot - returns the values set in a specific Arrangeview-Snapshot-slot
- RestoreArrangeviewSnapshot - sets arrangeview to start/endposition/verticalzoom, as set in the arrangeview-snapshot-slot
- DeleteArrangeviewSnapshot - deletes an arrangeview-snapshot-slot
- SetBitfield - sets/unsets/toggles individual bits in a bitfield
- PreventCreatingUndoPoint - prevents creation of an undo-point(only useful in non-defer-scripts)
- SetIntConfigVar_Bitfield - allows setting config-vars, that are integer-bitfields, quite easy
- IsValidProjectStateChunk - checks, if a string is a valid ProjectStateChunk
- CountMarkersAndRegions - counts markers and regions and returns their count as two(!) retvals
- GetLastMarkerPosition - gets the position and idx of the last marker in the project
- GetLastRegion - gets start/endposition and idx of the last ending region in the project
- GetLastTimeSigMarkerPosition - gets position, measure- and beatposition of the last time-sig-marker in the project
- MakeCopyOfTable - creates a true copy of a table(not only references) adapted from Tyler Neylon's function, found at Stack Overflow Thanks to him for allowing me to use it :)
- CheckForValidFileFormats - checks for valid fileformats that are supported by Reaper(still missing mp4, opus, m4a, m4v)
- CompareStringWithAsciiValues - Compares a string with a number of ASCII-Values, given as individual parameters
- CountEntriesInTable_Main - Counts the entries in a table; counts only the "main"-entries; returns subtables for recursive counting
- ConvertStringToAscii_Array - Converts a string into an array, where each entry contains the numerical representation of the accompanying character in string
- CompareArrays - Compares two arrays and returns all entries from array2, that's missing in array1
- GetAllMediaItemGUIDs - returns a table with the guids of all MediaItems
- InsertImageFile - Inserts an image-file into the project, allows looping it and giving length of the newly created item
- SetItemExtState - Sets a projextstate for an item
- GetItemExtState - Gets a projextstate for an item
- SetTrackExtState - Sets a projextstate for a track
- GetTrackExtState - Gets a projextstate for a track
- CountLinesInString - Counts the lines in a string
- GetIDEFontSize - gets the current fontsize set for Reaper's IDE
- SetIDEFontSize - sets a new fontsize for Reaper's IDE
- MB - like reaper.MB, but allows omitting title and type parameters for faster use.
- ReadFileAsLines_Array - like ReadLinerangeFromFile, but returns the read lines as an array
- GetAllMarkersBetween - returns an array with all markers between start and endposition
- GetAllRegionssBetween - returns an array with all regions between start and endposition
- GetAllRegions - returns an array with all regions in the project
- MoveMarkersTo - moves all markers between start/endposition to a specific position
- MoveRegionsTo - moves all regions between start/endposition to a specific position
- CreateValidTempFile - determines a valid temporary filename and creates it, if needed.
- When using the first time, it installs automatically an action for showing the Api-Help(Ultraschall and Reaper)
- SetItemSpectrogram - toggles displaying spectral-edit for an item or an itemstatechunk
- SetItemSpectralEdit - sets an existing spectral-edit for an item or an itemstatechunk
- CountProjectTabs - counts currently opened projecttabs
- GetProject_Tabs - returns all project-tabs and their accompanying filenames
- CheckForChangedProjectTabs - checks, if the order of the projecttabs changed, or projecttabs were new/closed since last calling this function
- GetAllSelectedMediaItems - returns an array with all selected MediaItems in the project
- SetMediaItemsSelected_TimeSelection - Sets MediaItems selected within Time-Selection
- GetParentTrack_MediaItem - returns the tracknumber and trackobject, in which a given MediaItem lies
- IsItemInTrack2 - checks, whether an item is within a track
- IsItemInTrack3 - checks, whether an item is within a number of tracks
- ReturnTypeOfReaperObject - returns, type of Reaper-object
- IsObjectValidReaperObject - checks, whether an object is a valid Reaper-object(project, item, take, etc)
- KeepTableEntriesOfType - removes entries from a table, that aren't of a certain type
- RemoveTableEntriesOfType - removes entries from a table, that are of a certain type
- IsValidTrackString - checks, whether a trackstring is a valid one
- IsItemInTimerange - checks, whether an item is within a timerange
- OnlyItemsInTracksAndTimerange - throws out all MediaItems from a MediaItemArray, that aren't in given tracks and timerange
- ApplyActionToMediaItem - applies an action to a MediaItem
- ZoomVertical_MidiEditor - vertical zoom in MIDI-Editor
- ZoomHorizontal_MidiEditor - horizontal zoom in MIDI-Editor
- OpenItemInMidiEditor - opens an item in the MIDI-editor
- ApplyActionToMediaItemArray - applies an action to given items
- ApplyActionToTrack - applies an action to given tracks
- GetAllMediaItemsInTimeSelection - returns all media-items from within time-selection
- NormalizeItems - normalizes given items
- added an ini-file with all render-codes for Video, MP3, FLAC, DDP, OPUS, OGG and AIFF
- GetOutputFormat_RenderString - returns the output-format of a render-cfg-string from rpp-files/ProjectStateChunks and the reaper-render.ini
- GetProject_RenderCFG - returns the render-string(which contains all render-settings of a project) of a project/ProjectStateChunk
- SetProject_RenderCFG - sets the render-string(which contains all render-settings of a project) of a project
- GetAllMediaItems - gets all MediaItems from the current project in a MediaItemArray
- CreateRenderCFG_Opus - creates the render-cfg-string for an opus-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_OGG - creates the render-cfg-string for an OGG-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_DDP - creates the render-cfg-string for a DDP-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_AIFF - creates the render-cfg-string for an AIFF-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_FLAC - creates the render-cfg-string for a FLAC-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_WAVPACK - creates the render-cfg-string for a WAVPACK-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_WebMVideo - creates the render-cfg-string for an WebM-Video-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- RenderProject_RenderCFG - renders a project, using a certain render-string, created from the aforementioned functions
- CreateRenderCFG_MP3MaxQuality - creates the render-cfg-string for a MP3-maxquality-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_MP3VBR - creates the render-cfg-string for a MP3-vbr-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_MP3ABR - creates the render-cfg-string for a MP3-abr-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- CreateRenderCFG_MP3CBR - creates the render-cfg-string for a MP3-cbr-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- AddIntToChar - add an integer-value to the numerical representation of a character and return it as a new character
- CreateRenderCFG_WAV - creates the render-cfg-string for a WAV-file; use it in rpp-projectfiles/ProjectStateChunks or reaper-render.ini
- PreviewMediaItem - play a preview of a MediaItem
- StopAnyPreview - stop preview of a MediaItem
- InsertTrackAtIndex - insert one or more new tracks into your project; more control about that than with Reaper's original function
- MoveTracks - moves given track(s) to a new position
- PreviewMediaFile - play preview of a mediafile, that is not necessarily in the project
- MakeFunctionUndoable - run a function with it and it will create an Undo-Point for that given function automatically
- GetProject_Selection - get the time-selection of an rpp-project or ProjectStateChunk
- SetProject_Selection - set the time-selection of an rpp-project or ProjectStateChunk
- DirectoryExists - check, if a directory already exists in a path
- All parts of the API have now their own build-counters in the ultraschall_api.ini
- API checks now, if SWS2.9.7 is installed and displays an error-message, if it's missing.
- ApplyFunctionToMediaItemArray - applies a function to all MediaItems in a MediaItemArray
- ReturnTableAsIndividualValues - returns index 1 to 64 of a table as return-values
- GetMediaItemTake - returns a MediaItem_Take of an item, either a specific or the active one
- requires now Reaper 5.95
- GetProject_MarkersAndRegions - returns Markers and Regions from a Projectfile/ProjectStateChunk into an array
- RenderProjectRegions_RenderCFG - renders a project's region
- GetGapsBetweenItems - returns a table with all gaps between items in a track
- IsValidMatchingPattern - checks, if a string is a valid pattern-matching string
- IsValidReaProject - checks, if a ReaProject-object is a valid one
- type - returns the type of an object, either Lua's own datatypes or Reaper's own datatypes (SWS-specific-datatypes are not supported...yet(?))
- SetTrackGroupFlagsState - sets the GroupFlagsState in a track or a TrackStateChunk for track-group 1-32
- SetTrackGroupFlags_HighState - sets the GroupFlagsState in a track or a TrackStateChunk for track-group 33-64
- GetTrackGroupFlags_HighState - gets the GroupFlagsState in a track or a TrackStateChunk for track-group 33-64
- all(!) TrackStates are now get/settable(!)
- all functions create now useful error-messages, who can be retrieved with the error-message-functions, refer to the Developer -> Error Handling-functions in the index of the functions-reference Good riddance, what a long term hard work to code that...
- GetCurrentTimeLengthOfFrame - gets the length of a frame in seconds of a certain project; good for video/image-related functions like InsertImageFile
- GetLengthOfFrames - gets the length of a number of frames in seconds of a certain project; good for video/image-related functions like InsertImageFile
- GetStartNewFileRecSizeState - gets, if Reaper shall start a new file during recording, after XXX MBs, and the maximum size of a recorded file til restart
- SetStartNewFileRecSizeState - sets, if Reaper shall start a new file during recording, after XXX MBs, and the maximum size of a recorded file til restart
- GetPlayCursorWidth - get the width of the playcursor in pixels
- SetPlayCursorWidth - set the width of the playcursor in pixels
- GetReaperAlwaysOnTopState - get, if Reaper is set to be always on top of other applications, as set by action 40239
- GetInputOutputLatency_Seconds - returns the input/output-latency in seconds
- CreateTrackString_ArmedTracks - creates a trackstring with the tracknumbers of all armed tracks
- CreateTrackString_UnarmedTracks - creates a trackstring with the tracknumbers of all unarmed tracks
- IsValidEnvelopePointArray - checks, if an EnvelopePointArray is a valid one
- Api_InstallPath - an API-variable that contains the path to the install-folder of the Ultraschall-API
- ConvertOldProjectToCurrentReaperVersion - converts an rpp-projectfile from an earlier version of Reaper to the current one
- CreateRenderCFG_AudioCD - create a renderstring for audio-cd-images
- GetMarkerUpdateCounter - returns an update-counter for all markers in all projects, that is updated, as soon as a marker is added/deleted/set/moved/altered
- CreateTrackStringByGUID - creates a trackstring of all tracks, given as GUIDs
- CreateTrackStringByTracknames - creates a trackstring of all tracks, given as tracknames
- CreateTrackStringByMediaTracks - creates a trackstring with all track-objects in a MediaTrackArray
- GetScreenHeight - returns the height of the screen
- GetScreenWidth - returns the width of the screen
- pause_follow_one_cycle - skips followmode-auto-off-checking-script for one cycle; only relevant for scripts that shall work within Ultraschall.FM-extension
- DeleteMediaItemsBetween - deletes MediaItems between start and endposition within tracks, given by trackstring; the deleting-equivalent of GetAllMediaItemsBetween
- GetSetConfigAcidImport - gets/sets the configuration-setting for configuration-variable acidimport; also adds the setting to reaper.ini, if needed
- GetSetConfigActionMenu - gets/sets the configuration-setting for configuration-variable actionmenu; also adds the setting to reaper.ini, if needed
- GetSetConfigAdjRecLat - gets/sets the configuration-setting for configuration-variable adjreclat; also adds the setting to reaper.ini, if needed
- GetSetConfigAdjRecManLat - gets/sets the configuration-setting for configuration-variable adjrecmanlat; also adds the setting to reaper.ini, if needed
- GetSetConfigAdjRecManLatIn - gets/sets the configuration-setting for configuration-variable adjrecmanlatin; also adds the setting to reaper.ini, if needed
- GetSetConfigAfxCfg - gets/sets the configuration-setting for configuration-variable afxcfg; also adds the setting to reaper.ini, if needed
- GetSetConfigAllStereoPairs - gets/sets the configuration-setting for configuration-variable afxcfg; also adds the setting to reaper.ini, if needed
- GetDuplicatesFromArrays - returns the entries from an array, that are duplicate or are in only one of these two arrays
- OnlyFilesOfCertainType - returns all files of a certain type from an array of filenames
- ConcatIntegerIndexedTables - concatenate the entries from two tables into one
- CreateColorTable - create a ColorTable that includes colorpatterns
- CreateSonicRainboomColorTable - creates a ColorTable with Ultraschall's standard-trackcolor-pattern "Sonic Rainboom Color"
- IsValidColorTable - checks, whether a ColorTable is a valid one
- ApplyColorTableToTrackColors - Apply a ColorTable to colorize MediaTracks
- Docs - added parts of Reaper Internals to the US-Apidocs, more to come
- GetCurrentReaperWorkDir - gets the current working directory of Reaper; if you create file without a path in Lua, they will be stored in that path
- SetCurrentReaperWorkDir - sets the current working directory of Reaper; if you create file without a path in Lua, they will be stored in that path; needs a Reaper restart!
- DirectoryExists2 - returns, if a certain path exists. Unlike DirectoryExists, which checks, whether a directory in a path exists
- GetScriptFilenameFromActionCommandID - gets the script-filename associated to a specific ActionCommandID
- GetProject_CountAutomationItems - counts the automation-items in a project/ProjectStateChunk
- GetProject_AutomationItemStateChunk - gets an automation-item from a project/ProjectStateChunk
- GetProject_ProjectBay - gets the projectbay from a project/ProjectStateChunk
- GetProject_Metronome - gets the statechunk for all metronome-settings from a project/ProjectStateChunk
- GetProject_MasterPlayspeed - gets the statechunk for all master-playspeed-settings from a project/ProjectStateChunk
- GetProject_Tempo - gets the statechunk for all tempo-settings from a project/ProjectStateChunk
- GetProject_Extensions - gets the statechunk for all extension-settings from a project/ProjectStateChunk
- GetProject_Lock - gets the individual lock-settings from a project/ProjectStateChunk
- GetProject_GlobalAuto - returns the global automation override-settings of an rpp-file or ProjectStateChunk
- GetProject_Tempo - returns the tempo-settings of an rpp-file or a ProjectStateChunk
- GetProject_Playrate - returns the playrate-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterAutomode - returns the Mastertrack-automation-mode-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterSel - returns the Mastertrack-selection-mode-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterFXByp - returns the Mastertrack-fx-bypass-mode-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterMuteSolo - returns the Mastertrack-mute-solo-mode-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterNChans - returns the Mastertrack-num-channels-mode-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterTrackHeight - returns the Mastertrack-trackheight-mode-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterTrackColor - returns the Mastertrack-trackcolor-mode-settings of an rpp-file or a ProjectStateChunk
- GetProject_CountMasterHWOuts - counts the HWOuts for a Master-track of an rpp-file or a ProjectStateChunk
- GetProject_MasterHWOut - returns the Mastertrack-HWOUT-settings of an rpp-file or a ProjectStateChunk; there can be multiple ones, selectable by idx
- GetProject_MasterVolume - returns the Master-volume-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterPanMode - returns the MasterPanMode of an rpp-file or a ProjectStateChunk
- GetProject_MasterWidth - returns the Width-Knob2-settings of an rpp-file or a ProjectStateChunk
- GetProject_MasterGroupFlagsState - returns the Master-groupflags-state of an rpp-file or a ProjectStateChunk
- GetProject_MasterGroupFlagsHighState - returns the Master-grouphigh-flags-state of an rpp-file or a ProjectStateChunk
- GetProject_GroupDisabled - returns the state, which groups are disabled, of an rpp-file or a ProjectStateChunk
- GetProject_MasterHWVolEnvStateChunk - returns the statechunk of the MasterHWVolEnv
- GetProject_MasterFXListStateChunk - returns the statechunk of the MasterFXList
- GetProject_MasterDualPanEnvStateChunk - returns the statechunk of the MasterDualPanEnv
- GetProject_MasterDualPanEnv2StateChunk - returns the statechunk of the MasterDualPanEnv2
- GetProject_MasterDualPanEnvLStateChunk - returns the statechunk of the MasterDualPanEnvL
- GetProject_MasterDualPanEnvL2StateChunk - returns the statechunk of the MasterDualPanEnvL2
- GetProject_MasterVolEnvStateChunk - returns the statechunk of the MasterVolEnv
- GetProject_MasterVolEnv2StateChunk - returns the statechunk of the MasterVolEnv2
- GetProject_MasterVolEnv3StateChunk - returns the statechunk of the MasterVolEnv3
- GetProject_MasterHWPanEnvStateChunk - returns the statechunk of the MasterHWPanEnv
- GetProject_MasterPanMode_Ex - returns the state of the MasterPanMode_Ex
- GetProject_TempoEnv_ExStateChunk - returns the statechunk of the TempoEnv_Ex
- Docs: MediaItems: Moving and Manipulating - added
- Docs: MediaItems: Inserting Items and Files - added
- ChangeColorBrightness - changes the brightness of a r, g, b-color-value
- ChangeColorContrast - changes contrast of a r,g,b-color-value
- ReverseTable - reverses the order of the entries of an integer-indexed table
- ChangeColorSaturation - changes the saturation of a color-value
- Docs: Datatypes_Colortables - docs about the structure of a ColorTable
- ultraschall.Euro - holds an €-symbol, that is difficult to type into Reaper's IDE
- Docs: MediaItems: Programming Spectral Edit - added
- Docs: MediaItems: Miscellaneous - added
- Docs: Added Config-Variable into the Reaper-Internals-docs
- added converted Config-Variable-docs as USDocML-file
- CombineBytesToInteger - combines multiple bytes into one integer-value
- SplitIntegerIntoBytes - splits a 32-bit-integer-value into four bytes
- GetReaperScriptPath - returns path to the scripts-folder of Reaper
- GetReaperColorThemesPath - returns path to the theme-folder of Reaoer
- GetReaperJSFXPath - returns path to the JSFX-plugin-folder of Reaper
- GetReaperWebRCPath - returns path to Reaper's own and User's own WebRC-webpage-folder
- Docs - added File Management: Introduction to the Introduction/Concepts-page
- Docs - added docs for ultraschall.Euro, which holds the €-currency symbol
- Docs - added - File Management: Read to the Introduction/Concepts-page
- Added example-scripts: ArrangeView_Snapshots_Example.lua Changed_Project_Tab_Example.lua Color_Example.lua Render_Current_Project.lua Render_Project.lua RippleCut_Selected_Tracks.lua Shorten_MediaItems_In_Selection_Example.lua
- GetProject_Length - gets the length of an rpp-projectfile
- added new analyser-scripts for statechunks: Item_State_Diffs_Monitor.lua, Track_State_Diffs_Monitor.lua, Project_State_Diffs_Monitor.lua, Env_State_Diffs_Monitor.lua
- Docs: File Management: Write - added to Introduction/Concepts-page
- Docs: File Management: Analyse - added to Introduction/Concepts-page
- Docs: File Management: Misc - added to Introduction/Concepts-page
- Docs: Project Management: Introduction - added to Introduction/Concepts-page
- Docs: Project Management: Check for changed projecttabs - added to Introduction/Concepts-page
- Docs: added WebRC-API-docs
- Docs: added Video-Processor-API-docs
- Docs: reworked slightly the header of the Reaper-Internals-page
- Docs: Color Management: Introduction - added chapter
- Docs: Color Management: Native Color Conversion - added chapter
- Docs: Color Management: Brightness, Contrast and Colorsaturation - added chapter
- Docs: Color Management: Working with Colortables - added chapter
- Docs: Color Management: Creating Colortables - added chapter
- Docs: Color Management: Applying Colortables - added chapter
- ConvertColorFromMac - Converts a native-Mac to rgb-values
- ConvertColorFromWin - Converts a native-Windows/Linux-color to rgb-values
- ConvertColorToMac - Converts rgb-values to a native-MacOS-color
- ConvertColorToWin - Converts rgb-values to a native-Windows/Linux-color
- ApplyColorTableToItemColors - applies a ColorTable to MediaItems in a MediaItemArray
- Docs: added all functions from JS-plugin by Julian Sader and Xenakios to Reaper-Api-Docs
- ultraschall_track_old_cursorposition.lua - background-script for returning the last editcursor-position before the current one
- RunBackgroundHelperFeatures - runs background-scripts included with the Ultraschall-API
- GetLastCursorPosition - returns the last editcursor-position before the current one; needs Backgroundscripts started first using RunBackgroundHelperFeatures
- Docs: Concepts-page - added chapter about Extstates for MediaTracks, MediaItems and guids
- IsMuteAtPosition - checks, whether a mute-point exists in a track at a position
- IsMuteAtPosition_TrackObject - checks, whether a mute-point exists in a MediaTrack-object at a position
- DeleteMuteState - deletes a mute-point in a track at a given position
- DeleteMuteState_TrackObject - deletes a mute-point in a MediaTrack-object at a given position
- Docs: Concepts-page - added chapter about backgroundscripts in Ultraschall-API and the use of it for functions like GetLastCursorPosition
- Docs: Concepts-page - added chapter about cough/mute-buttons
- requires now Julian Sader's plugin as well
- CloseReaConsole - closes ReaConsole-window
- DeleteErrorMessage - deletes a specific error-message from the error-messaging-system
- Docs: Error-Messaging-System - added docchapters to Introductions/Concepts-page
- GFX_BlitBufferImage - blits the framebuffer into the window and resizes it, if needed, using the correct aspect ratio; preliminary support
- Docs: Trackstate Management: Introduction - added chapter to Introduction/Concepts-page
- Routing: Introduction - added chapter to Introduction/Concepts-page
- Routing: Send and Receives - added chapter to Introduction/Concepts-page
- Routing: Hardware Outs - added chapter to Introduction/Concepts-page
- ApplyActionToMediaItemArray2 - applies an action to multiple items at once, unlike ApplyActionToMediaItemArray(which applies the action to each item individually)
- PutMediaItemsToClipboard_MediaItemArray - puts all MediaItems from MediaItemArray into the clipboard
- Docs: ExtState Management: Introduction - added chapter to Introduction/Concepts-page
- Docs: ExtState Management: Ini-Files - added chapter to Introduction/Concepts-page
- Docs: ExtState Management: Inifile-Functions - added chapter to Introduction/Concepts-page
- Docs: ExtState Management: Ultraschall.ini - added chapter to Introduction/Concepts-page
- Docs: ExtState Management: Track and Item-Extstates - added chapter to Introduction/Concepts-page
- Docs: ExtState Management: Track Extstates - added chapter to Introduction/Concepts-page
- Docs: ExtState Management: Item Extstates - added chapter to Introduction/Concepts-page
- MoveRegionsBy - moves regions by seconds
- MoveTimeSigMarkersBy - moves Timesignature/Tempo-markers by seconds
- ShowMenu - shows a new context-menu at a given position
- Docs: Markers and Regions: Introduction - added to Introduction/Concepts-page
- Docs: Markers and Regions: General How To - added to Introduction/Concepts-page
- Docs: Markers and Regions: Helpers and Manipulation - added to Introduction/Concepts-page
- CycleTable - cycles the entries of a table through
- GetErrorMessage_Funcname - returns error-message of a certain function
- CountErrorMessage_Funcname - counts all error-messages a certain function left in the error-messagin-system
- GetLastErrorMessage_Funcname - returns the last error-message a certain function left in the error-messaging-system
- DisplayMarkersRegions_underneath_Mouse.lua - example-script that displays the markers/regions underneath the mouse
- ShowMediaItems_In_Timeselection_and_SelectedTracks.lua - example script that shows selected items by time-selection and track-selection
- TrackAndItem_ColorCycler.lua - example script that cycles colors of tracks and items
- Render_Project.gif - added example-gif that demonstrates example-script
- DisplayMarkersRegions_underneath_Mouse.gif - added example-gif that demonstrates example-script
- ShowMediaItems_In_Timeselection_and_SelectedTracks.gif - added example-gif that demonstrates example-script
- Render_Current_Project.gif - added example-gif that demonstrates example-script
- Changed_Project_Tab_Example.gif - added example-gif that demonstrates example-script
- ArrangeView_Snapshots_Example.gif - added example-gif that demonstrates example-script
- RippleCut_Selected_Tracks.gif - added example-gif that demonstrates example-script
- Color_Example.gif - added example-gif that demonstrates example-script
- Shorten_MediaItems_In_Selection_Example.gif - added example-gif that demonstrates example-script
- ColorTables_ColorCycler.gif - added example-gif that demonstrates example-script
- Docs: Helper_Functions: Introduction - added chapter to the Introduction/Concepts-page
- Docs: Helper_Functions: Clipboard Management - added chapter to the Introduction/Concepts-page
- Docs: Helper_Functions: Data Manipulation - added chapter to the Introduction/Concepts-page
- Docs: Helper_Functions: Undo Management - added chapter to the Introduction/Concepts-page
- Docs: Final words - added chapter to the Introduction/Concepts-page
- GetSetConfigAlwaysAllowKB - gets/sets value for configvar alwaysallowkb
- GetSetConfigApplyFXTail - get/sets value for configvar applyfxtail
- GetSetConfigAdjRecManLatIn -get/sets value for configvar ajdrecmanlatin
- GetSetConfigAudioPrShift - get/sets value for configvar audioprshift
- GetSetConfigAudioCloseStop - get/sets value for configvar audioclosestop
- GetSetConfigAudioThreadPr - get/sets value for configvar audiothreadpr
- GetSetConfigAudioCloseTrackWnds - get/sets value for configvar audioclosetrackwnds
- WinterlySnowflakes - replaces gfx.update with a version, that displays falling snowflakes everytime gfx.update is run
Changes from 4.00beta2.6 to 4.00beta2.7
- Tons of bugfixes. I mean, tons as in metric tons ;)
- GetTrackRecCFG - added documentation, that was still missing -> fixed now; added missing return-value
- GetLastErrorMessage2 - had wrong functionname, corrected documentation
- cleaned up code and improved readability
- GetPartialString - returns nil in case of error now
- WriteValueToFile - minor additions to documentation
- CreateTrackNumbersString - minor additions to documentation
- SetTrackMuteSoloState - corrected documentation's-description
- initialization of the framework on Mac could potentially not work due wrong separator -> fixed now
- improved installation and usage-procedure of the framework heavily
- GetTrackAutoRecArmState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackAutomodeState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackBeatState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackBusCompState - supports now trackstatechunks as well; sped up code
- GetTrackBypFXState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackFreeModeState - supports now trackstatechunks as well; sped up code
- GetTrackGroupFlagsState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackHeightState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackINQState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackIPhaseState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackIcon_Filename - supports now mastertrack and trackstatechunks as well
- GetTrackIsBusState - supports now trackstatechunks as well; sped up code
- GetTrackLayoutNames - supports now mastertrack and trackstatechunks as well
- GetTrackLockState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackMIDIOutState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackMainSendState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackMidiCTL - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackMidiInputChanMap - supports now mastertrack and trackstatechunks as well
- GetTrackMuteSoloState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackNChansState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackName - supports now mastertrack and trackstatechunks as well
- GetTrackPeakColorState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackPerfState - supports now trackstatechunks as well; sped up code
- GetTrackRecCFG - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackRecState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackShowInMixState - supports now mastertrack and trackstatechunks as well; sped up code
- GetTrackVUState - supports now mastertrack and trackstatechunks as well, fixed bug; sped up code
- SetTrackAutoRecArmState - supports now mastertrack and trackstatechunks as well
- SetTrackAutomodeState - supports now mastertrack and trackstatechunks as well
- SetTrackBeatState - supports now mastertrack and trackstatechunks as well
- SetTrackBusCompState - supports now trackstatechunks as well
- SetTrackBypFXState - supports now mastertrack and trackstatechunks as well
- SetTrackFreeModeState - supports now mastertrack and trackstatechunks as well
- SetTrackHeightState - supports now mastertrack and trackstatechunks as well
- SetTrackINQState - supports now mastertrack and trackstatechunks as well
- SetTrackIPhaseState - supports now mastertrack and trackstatechunks as well
- SetTrackIcon_Filename - supports now trackstatechunks as well
- SetTrackIsBusState - supports now trackstatechunks as well
- SetTrackLayoutNames - supports now trackstatechunks as well; minor improvements
- SetTrackLockState - supports now trackstatechunks as well; improved speed
- SetTrackMIDIOutState - supports now mastertrack and trackstatechunks as well
- SetTrackMainSendState - supports now mastertrack and trackstatechunks as well
- SetTrackMidiCTL - supports now mastertrack and trackstatechunks as well
- SetTrackMidiInputChanMap - supports now mastertrack and trackstatechunks as well
- SetTrackMuteSoloState - supports now mastertrack and trackstatechunks as well
- SetTrackNChansState - supports now mastertrack and trackstatechunks as well
- SetTrackName - supports now mastertrack and trackstatechunks as well
- SetTrackPeakColorState - supports now mastertrack and trackstatechunks as well
- SetTrackPerfState - supports now trackstatechunks as well
- SetTrackRecState - supports now mastertrack and trackstatechunks as well
- SetTrackShowInMixState - supports now mastertrack and trackstatechunks as well
- SetTrackVUState - supports now mastertrack and trackstatechunks as well
- ToggleScrollingDuringPlayback - also affects scrolling during recording now; sometimes, continuous scroll wouldn't restart -> fixed now
- GetNextClosestItemEdge - had trouble finding the end of the last item in a track -> fixed now
- GetPreviousClosestItemEdge - had trouble finding the beginning of the first item in track as well as the item before the current item at times -> fixed now
- GetClosestPreviousMarker - always used cursorposition as calculation base, never mouseposition; it also couldn't find the previous marker before the current one -> fixed now
- GetClosestNextMarker - always used cursorposition as calculation base, never mouseposition -> fixed now
- GetClosestNextRegionEdge - renamed from GetClosestNextRegion; always used cursorposition as calculation base, never mouseposition -> fixed now
- GetClosestPreviousRegionEdge - renamed from GetClosestPreviousRegion; always used cursorposition as calculation base, never mouseposition -> fixed now
- GetApiVersion - returns now an additional return-value of type "number", that you can use for version-comparison like "if required_version>version then"
- SplitStringAtLineFeedToArray - was missing the returned count-variable in the documentation -> fixed now
- ToggleScrollingDuringPlayback - changed parameter move_editcursor to boolean; added goto_playcursor which moves view to playcursor; fixed bug that messed up scrolling during recording.
- Ultraschall-Api is now located in UserPlugins in the resources-folder(where every third-party-plugin belongs to ;) )
- IsItemInTrack - tracknumber is now 1 based, means: 1 for track 1, 2 for track 2, etc
- ApiTest displays only one message now (damn was it annoying before... ;) )
- ReadFullFile - fixed small bug and returns now the number of lines of files, if binary is set to false
- GetProject_DefPitchMode - added Rubber Band Pitchmodes and updated elastique to 3.2.3 with missing settings
- SetProject_DefPitchMode - added Rubber Band Pitchmodes and updated elastique to 3.2.3 with missing settings
- AddErrorMessage - new parameters, parametername and errorcode, so you can specify these better
- ReadErrorMessage - includes the new parameters parametername and errorcode, sped up code; used to reset creation date instead of readstate -> fixed
- GetLastErrorMessage - includes the new parameters parametername and errorcode, readstatus is now a string with "unread" or the last readtime(no boolean anymore); sped up code; used to reset creation date instead of readstate -> fixed
- DeleteLastErrorMessage - deletes now the last errormessage, only changed the errorcounter before
- GetLastErrorMessage2 - includes the new parameters parametername and errorcode; used to reset creation date instead of readstate -> fixed
- ShowLastErrorMessage - reworked the messagebox to include functionname, parametername, errormessage and errorcode
- GetPath - returns nil now, if the separator can't be found, and throws an error-message as well in that case; did return parts of the path in filename -> fixed now
- GetPartialString - returns nil now, if the separator can't be found, and throws an error-message as well in that case; sped up code
- RunCommand - throws an error-message, if an invalid action-command-id is given
- CSV2Line - rewritten and sped up
- RGB2Num - removed
- CSV2IndividualLinesAsArray - rewrote and sped up code; supports now other separators and separators longer than one character, swapped retvals
- IsItemInTrack - minor improvements
- Docs: removed SWS-logo from all functions, that don't require SWS
- SetChapterMarker - removed
- ImportChaptersFromFile - removed
- ExportChapterMarkersToFile - removed
- EnumerateChapterMarkers - removed
- EnumerateDummyMarkers - removed
- EnumerateEditRegion - removed
- GetAllChapterMarkers - removed
- DeleteChapterMarker - removed
- DeleteDummyMarker - removed
- CountChapterMarkers - removed
- CountDummyMarkers - removed
- ChapterToDummyMarker - removed
- ChapterToEditMarker - removed
- ChapterToMarker - removed
- DummyToChapterMarker - removed
- DummyToEditMarker - removed
- DummyToMarker - removed
- EditToChapterMarker - removed
- EditToDummyMarker - removed
- MarkerToChapterMarker - removed
- MarkerToDummyMarker - removed
- IsMarkerChapter - removed
- IsMarkerDummy - removed
- AddChapterMarker - removed
- AddDummyMarker - removed
- CountUSExternalState_sec - did not check for existence of ultraschall.ini -> fixed
- CountUSExternalState_key - did not check for existence of ultraschall.ini -> fixed
- EnumerateUSExternalState_sec - returned empty strings, when the ultraschall.ini contained them -> fixed
- EnumerateUSExternalState_key - number was expected to be string and produced problems -> fixed
- SetPlayCursor_WhenPlaying - added parameter-validity-check for parameter position
- SetPlayAndEditCursor_WhenPlaying - added parameter-validity-check for parameter position
- JumpForwardBy - added parameter seekplay for choosing, if playcursor shall move too; moves mainly editcursor now; pause caused problems -> fixed
- JumpBackwardBy - added parameter seekplay for choosing, if playcursor shall move too; moves mainly editcursor now; pause caused problems -> fixed
- GetNextClosestItemEdge - was looking in the wrong track, which caused problems with items in a single track -> fixed
- GetPreviousClosestItemEdge - was looking in the wrong track, which caused problems with items in a single track -> fixed
- GetClosestNextRegionEdge - returns now "beg" oder "end" to indicate, which side of the region has been found
- GetClosestPreviousRegionEdge - returns now "beg" oder "end" to indicate, which side of the region has been found
- ToggleMute_TrackObject - sped up code
- GetItemPlayRate_StateChunk - docs, added information about some of the parameters, like pitch-settings
- ToggleStateButton - added section-info to the docs
- RefreshToolbar_Action - added section-info to the docs
- ToggleStateAction - added section-info to the docs
- CountNormalMarkers - added support for planned chapter-markers(color_value 100, 255, 0); was counting wrong, when regions were available -> fixed
- accidentally used os as return-variable in many functions, leading to overwriting of Lua's own os.functions() like os.date(), etc -> fixed
- CountPatternInString - internal changes to prevent accidental overwriting of Lua's own string.functions()
- SplitStringAtLineFeedToArray - the entries in the array still contained the useless line-feed -> fixed
- integer parameters accept only integers from now on (used to be numbers)
- CSV2IndividualLinesAsArray - the returned count-value was one too high -> fixed
- CountNormalMarkers - added support for planned chapter marker
- EnumerateNormalMarkers - support for planned chapter marker added; added missing info in the docs
- EnumerateEditMarkers - expected "_Edit:" as name of edit-marker, instead of "_Edit" -> fixed
- SetNormalMarker - added support for planned chapter marker; expected "_Edit:" as name of edit-marker, instead of "_Edit" -> fixed
- SetEditMarker - expected "_Edit:" as name of edit-marker, instead of "_Edit" -> fixed
- DeleteNormalMarker - added support for planned chapter marker; deleted in some situations non-normal-markers -> fixed
- DeleteEditMarker - expected "_Edit:" as name of edit-marker, instead of "_Edit" -> fixed
- IsMarkerEdit - expected "_Edit:" as name of edit-marker, instead of "_Edit" -> fixed
- IsMarkerNormal - added support for planned chapter marker; expected "_Edit:" as name of edit-marker, instead of "_Edit" -> fixed
- IsRegionEditRegion - expected "_Edit:" as name of edit-region, instead of "_Edit" -> fixed
- SetEditRegion - expected "_Edit:" as name of edit-region, instead of "_Edit" -> fixed
- DeleteEditRegion - expected "_Edit:" as name of edit-region, instead of "_Edit" -> fixed
- EnumerateEditRegion - expected "_Edit:" as name of edit-region, instead of "_Edit" -> fixed
- GetAllNormalMarkers - added index-number and shown-number to the array; completed docs
- GetAllMarkers - added index-number, shown-number and color to the array; completed docs; didn't get the first marker -> fixed
- GetAllEditMarkers - added index-number to the array; completed docs
- DeletePodRangeRegion - return value is now boolean
- DeleteNormalMarker - completed docs
- ExportNormalMarkersToFile - completed docs
- CountNormalMarkers_NumGap - completed docs
- MarkerToEditMarker - completed docs
- CountEditMarkers - used to count edit-regions as well -> fixed now
- ExportEditMarkersToFile - crashed due bug with edit-regions -> fixed now
- WriteValueToFile_ReplaceBinary - naming conflict, 2 functions had the name WriteValueToFile_Replace; renamed one to WriteValueToFile_ReplaceBinary
- EditToMarker - small internal changes to give the marker it's correct color: Reaper's default color for marker
- CreateTrackNumbersString_SelectedTracks - additions to the docs
- ReadValueFromFile - returns now all found lines as array; retval numberoflines used to give the same number as number_of_foundlines, so I changed it to numberoflines_in_file, that returns the total number of lines in the file, even if fewer lines are returned
- Renderfunctions - improved behavior when rendering currently opened project; always uses now the correct projectfile, used to guess location of projectfile one dir above the recording-dir
- GetProject_GroupOverride, GetProject_RippleState, GetProject_ReaperVersion - documentation stated "kb-ini-file" instead of "rpp-projectfile" -> fixed
- renamed GetMarkerByIndex to GetMarkerAndRegionsByIndex to reflect the fact, that it supports markers AND regions
- SplitStringAtLineFeedToArray - used to treat LFCR as two linebreaks, which caused empty lines in windows-strings. Treats LFCR as one linebreak now.
- ReadLinerangeFromFile - allows now reading the whole file, when giving -1 as lastlinenumber; added missing information in the docs
- As the Functions-Engine is essential for all parts of the Ultraschall-API, it can't be turned off anymore.
- renamed MoveMarkers to MoveMarkersBy, reimplemented it, as sometimes, it messed up marker order after movement
- ReadValueFromFile - sped up code, returned wrong found-lines-value -> fixed
- CheckMediaItemArray - did not return the altered MediaItemArray and count, when returning retval=false -> fixed
- ChangeOffsetOfMediaItems_FromArray - typos in the docs -> fixed
- GetSelectedMediaItemsAtPosition - error in documentation -> fixed
- OnlyMediaItemsOfTracksInTrackstring_StateChunk - had the docs of OnlyMediaItemsOfTracksInTrackstring -> fixed now
- CSV2IndividualLinesAsArray - accidentally reversed retvals in the docs -> fixed
- restructured index of the Api-docs
- GetProject_AddMediaToProjectAfterRender - allows usage of ProjectStateChunks now as well
- GetProject_ApplyFXCFG - allows usage of ProjectStateChunks now as well
- GetProject_AutoCrossFade - allows usage of ProjectStateChunks now as well
- GetProject_CountMarkersAndRegions - allows usage of ProjectStateChunks now as well
- GetProject_CursorPos - allows usage of ProjectStateChunks now as well
- GetProject_DefPitchMode - allows usage of ProjectStateChunks now as well
- GetProject_EnvAttach - allows usage of ProjectStateChunks now as well
- GetProject_Feedback - allows usage of ProjectStateChunks now as well
- GetProject_GetMarker - allows usage of ProjectStateChunks now as well
- GetProject_GetRegion - allows usage of ProjectStateChunks now as well
- GetProject_Grid - allows usage of ProjectStateChunks now as well
- GetProject_GroupOverride - allows usage of ProjectStateChunks now as well
- GetProject_HorizontalZoom - allows usage of ProjectStateChunks now as well
- GetProject_ItemMixBehavior - allows usage of ProjectStateChunks now as well
- GetProject_Loop - allows usage of ProjectStateChunks now as well
- GetProject_LoopGran - allows usage of ProjectStateChunks now as well
- GetProject_MaxProjectLength - allows usage of ProjectStateChunks now as well
- GetProject_MixerUIFlags - allows usage of ProjectStateChunks now as well
- GetProject_NumberOfTracks - allows usage of ProjectStateChunks now as well
- GetProject_PanLaw - allows usage of ProjectStateChunks now as well
- GetProject_PanMode - allows usage of ProjectStateChunks now as well
- GetProject_PeakGain - allows usage of ProjectStateChunks now as well
- GetProject_ProjOffsets - allows usage of ProjectStateChunks now as well
- GetProject_ReaperVersion - allows usage of ProjectStateChunks now as well; exposed internal variables -> fixed
- GetProject_RecMode - allows usage of ProjectStateChunks now as well
- GetProject_RecPath - allows usage of ProjectStateChunks now as well
- GetProject_RecordCFG - allows usage of ProjectStateChunks now as well
- GetProject_RenderDitherState - allows usage of ProjectStateChunks now as well
- GetProject_RenderFilename - allows usage of ProjectStateChunks now as well; exposed an internal variable temp -> fixed
- GetProject_RenderFreqNChans - allows usage of ProjectStateChunks now as well
- GetProject_RenderPattern - allows usage of ProjectStateChunks now as well; exposed an internal variable temp -> fixed
- GetProject_RenderRange - allows usage of ProjectStateChunks now as well
- GetProject_RenderResample - allows usage of ProjectStateChunks now as well
- GetProject_RenderSpeed - allows usage of ProjectStateChunks now as well
- GetProject_RenderStems - allows usage of ProjectStateChunks now as well
- GetProject_RippleState - allows usage of ProjectStateChunks now as well
- GetProject_SMPTESync - allows usage of ProjectStateChunks now as well
- GetProject_SampleRate - allows usage of ProjectStateChunks now as well
- GetProject_TakeLane - allows usage of ProjectStateChunks now as well
- GetProject_TempoTimeSignature - allows usage of ProjectStateChunks now as well
- GetProject_TimeBase - allows usage of ProjectStateChunks now as well
- GetProject_Timemode - allows usage of ProjectStateChunks now as well
- GetProject_TrackMixingDepth - allows usage of ProjectStateChunks now as well
- GetProject_TrackStateChunk - allows usage of ProjectStateChunks now as well
- GetProject_UseRecConfig - allows usage of ProjectStateChunks now as well
- GetProject_VerticalZoom - allows usage of ProjectStateChunks now as well
- GetProject_VideoConfig - allows usage of ProjectStateChunks now as well
- TimeStringToSeconds_hh_mm_ss_mss - had wrong functionname and link in the docs -> fixed
- GetItemAllTakes - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemBeat - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemChanMode - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemFadeFlag - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemFadeIn - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemFadeOut - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemGUID - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemGroup - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemIGUID - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemIID - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemLength - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemLock - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemLoop - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemMixFlag - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!); returned the BEAT-state, not MIXFLAG -> fixed
- GetItemMute - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemName - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemPlayRate - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemPosition - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemRecPass - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemSampleOffset - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemSelected - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemSnapOffset - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemUSTrackNumber_StateChunk - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- GetItemVolPan - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- SetTrackHWOut - had wrong link in the docs -> fixed
- SetItemUSTrackNumber_StateChunk - tracknumbers are 1 based now
- SetItemLength - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- SetItemPosition - allows usage of MediaItems themselves as well now; added parameter MediaItem before StateChunk(!)
- RenderProjectToAIFF - removed, use CreateRenderCFG_AIFF and RenderProject_RenderCFG instead
- RenderProjectToFLAC - removed, use CreateRenderCFG_FLAC and RenderProject_RenderCFG instead
- RenderProjectToMP3_ABR - removed, use CreateRenderCFG_MP3ABR and RenderProject_RenderCFG instead
- RenderProjectToMP3_CBR - removed, use CreateRenderCFG_AMP3CBR and RenderProject_RenderCFG instead
- RenderProjectToMP3_MaxQuality - removed, use CreateRenderCFG_MP3MaxQuality and RenderProject_RenderCFG instead
- RenderProjectToMP3_VBR - removed, use CreateRenderCFG_MP3VBR and RenderProject_RenderCFG instead
- RenderProjectToOpus - removed, use CreateRenderCFG_Opus and RenderProject_RenderCFG instead
- GetProject_VideoConfig - corrected documentation
- SetProject_VideoConfig - corrected documentation
- SetProject_RecMode - corrected documentation
- GetProject_SMPTESync - returned wrong retvals, fixed
- GetPath - returns now also the filename, returns "", "" instead of nil in case of error.
- SetProject_AddMediaToProjectAfterRender - allows usage of ProjectStateChunks now as well
- SetProject_ApplyFXCFG - allows usage of ProjectStateChunks now as well
- SetProject_AutoCrossFade - allows usage of ProjectStateChunks now as well
- SetProject_CursorPos - allows usage of ProjectStateChunks now as well
- SetProject_DefPitchMode - allows usage of ProjectStateChunks now as well
- SetProject_EnvAttach - allows usage of ProjectStateChunks now as well
- SetProject_Feedback - allows usage of ProjectStateChunks now as well
- SetProject_Grid - allows usage of ProjectStateChunks now as well
- SetProject_GroupOverride - allows usage of ProjectStateChunks now as well
- SetProject_HorizontalZoom - allows usage of ProjectStateChunks now as well
- SetProject_ItemMixBehavior - allows usage of ProjectStateChunks now as well
- SetProject_Loop - allows usage of ProjectStateChunks now as well
- SetProject_LoopGran - allows usage of ProjectStateChunks now as well
- SetProject_MaxProjectLength - allows usage of ProjectStateChunks now as well
- SetProject_MixerUIFlags - allows usage of ProjectStateChunks now as well
- SetProject_PanLaw - allows usage of ProjectStateChunks now as well
- SetProject_PanMode - allows usage of ProjectStateChunks now as well
- SetProject_PeakGain - allows usage of ProjectStateChunks now as well
- SetProject_ProjOffsets - allows usage of ProjectStateChunks now as well
- SetProject_RecMode - allows usage of ProjectStateChunks now as well
- SetProject_RecPath - allows usage of ProjectStateChunks now as well
- SetProject_RecordCFG - allows usage of ProjectStateChunks now as well
- SetProject_RenderCFG - allows usage of ProjectStateChunks now as well
- SetProject_RenderDitherState - allows usage of ProjectStateChunks now as well
- SetProject_RenderFilename - allows usage of ProjectStateChunks now as well
- SetProject_RenderFreqNChans - allows usage of ProjectStateChunks now as well
- SetProject_RenderPattern - allows usage of ProjectStateChunks now as well; now allows removing the RENDERPATTERN-entry from a Projectfile using nil as parameter. Good, if you only want to set a Rendername in a project.
- SetProject_RenderRange - allows usage of ProjectStateChunks now as well
- SetProject_RenderResample - allows usage of ProjectStateChunks now as well
- SetProject_RenderSpeed - allows usage of ProjectStateChunks now as well
- SetProject_RenderStems - allows usage of ProjectStateChunks now as well
- SetProject_RippleState - allows usage of ProjectStateChunks now as well
- SetProject_SMPTESync - allows usage of ProjectStateChunks now as well
- SetProject_SampleRate - allows usage of ProjectStateChunks now as well
- SetProject_Selection - allows usage of ProjectStateChunks now as well
- SetProject_TakeLane - allows usage of ProjectStateChunks now as well
- SetProject_TempoTimeSignature - allows usage of ProjectStateChunks now as well
- SetProject_TimeBase - allows usage of ProjectStateChunks now as well
- SetProject_Timemode - allows usage of ProjectStateChunks now as well
- SetProject_TrackMixingDepth - allows usage of ProjectStateChunks now as well; hadn't correct parameters in the docs -> fixed
- SetProject_UseRecConfig - allows usage of ProjectStateChunks now as well
- SetProject_VerticalZoom - allows usage of ProjectStateChunks now as well
- OpenURL - had a problem on Windows, when the url-string contained spaces -> fixed; returns -1 in case of error, now
- GetReaperAppVersion - returns now the operating system as well if the Reaper-installation is a portable one.
- GetClosestGoToPoints - added options to get closest goto-points from current edit/playcursor-position; added returning marker/region name
- ReadBinaryFileFromPattern - corrected docs, rewrote function for more speed
- CountKeysByPattern - checks for malformed patterns, now
- CountSectionsByPattern - checks for malformed patterns, now
- CountValuesByPattern - checks for malformed patterns, now
- EnumerateKeysByPattern - checks for malformed patterns, now
- EnumerateSectionsByPattern - checks for malformed patterns, now
- EnumerateValuesByPattern - checks for malformed patterns, now
- ReadBinaryFileFromPattern - checks for malformed patterns, now
- ReadBinaryFileUntilPattern - had wrong functionname in error-message -> fixed, checks for malformed patterns, now
- ReadValueFromFile - checks for malformed patterns, now
- RippleInsert_MediaItemStateChunks - had a bug that could cause an error-message -> fixed
- GetTrackGroupFlagsState - had a bug in checking for validity of TrackStateChunks -> fixed
- SetKBIniActions - rewritten, as the previous version wasn't working right
- SetKBIniScripts - rewritten, as the previous version wasn't working right
- SetKBIniKeys - rewritten, as the previous version wasn't working right
- AddTrackAUXSendReceives - didn't support Master Track, changed that
- SetTrackAUXSendReceives - didn't support Master Track, changed that
- DeleteTrackAUXSendReceives - didn't support Master Track, changed that
- ToggleScrollingDuringPlayback - minor corrections in the docs
- GetAllRegionsBetween - corrections in the docs
- GetItemSpectralVisibilityState - had wrong functionname in docs -> fixed
- GetTrackExtState - corrections in the docs
- DeleteArrangeviewSnapshot - had wrong functionname in docs -> fixed
- CenterViewToCursor - had documented a retval that the function doesn't return -> fixed
- CreateTrackNumbersString - renamed to CreateTrackString
- CreateTrackNumbersString_SelectedTracks - renamed to CreateTrackString_SelectedTracks
- GetMediaItemsFromClipboard - using renamed function CreateTrackString() now
- InsertMediaItemFromFile - using renamed function CreateTrackString_SelectedTracks() now
- GetClosestNextRegionEdge - docs: was missing additional return-value edge_type -> fixed now
- JumpBackwardBy - docs: changed name of parameter position to seconds, as that represents more, what the parameter does
- JumpForwardBy - docs: changed name of parameter position to seconds, as that represents more, what the parameter does
- JumpBackwardBy_Recording - docs: changed name of parameter position to seconds, as that represents more, what the parameter does
- JumpForwardBy_Recording - docs: changed name of parameter position to seconds, as that represents more, what the parameter does
- GetClosestGoToPoints - added mouse-cursor-position as possible option
- GetNextClosestItemEdge - was returning wrong retvals when no item was found -> fixed
- CenterViewToCursor - added parameter for a non-cursor-position of your choice to center to
- SetItemPosition - exchanged position and optional statechunk-parameters to be in line with SetProject/Track-statefunctions
- SetItemLength - exchanged length and optional statechunk-parameters to be in line with SetProject/Track-statefunctions
- GetSplitCrossFadeState_ReaperIni - removed, will return as a new function
- MoveMediaItemsSectionTo - renamed to MoveMediaItemsBetween_To, as this is more in line with the corresponding of functionnames for getting, deleting, splitting items
- InsertMediaItem_MediaItem - allows now inserting MediaItems from other projects as well and into tracks of other projects
- InsertMediaItem_MediaItemStateChunk - allows now tracks in other projects to be target; h ad an issue, that it always required ULTRASCHALL_TRACKNUMBER in the itemstatechunk to get the target-track -> fixed now to also allow passing a MediaTrack, as the docs always stated has now additional retvals startposition, endposition, length fixed the docs
- ReadBinaryFile_Offset - if startoffset is negative, the offset will be seen from the end of the file now
- ReadBinaryFile - removed, due being a duplication of ReadFullFile
- ReadFileAsLines_Array - corrected docs
- CreateTrackString_AllTracks - renamed from CreateAllTracksTrackString to be more in line with other CreateTrackString-functions
- RippleCut - removed the move_markers parameter; added add_to_clipboard parameters, which puts the cut-items to the clipboard
- RippleCut_Reverse - removed the move_markers parameter; added add_to_clipboard parameters, which puts the cut-items to the clipboard
- SectionCut - removed the move_markers parameter; added add_to_clipboard parameters, which puts the cut-items to the clipboard
- SectionCut_Inverse - removed the move_markers parameter; added add_to_clipboard parameters, which puts the cut-items to the clipboard
- EnumerateIniFileExternalState_sec - added error-messages for invalid section-indices
- GetUSExternalState - returns now only the value-returnvalue
- GetID3TagsFromCurrentProject - removed, due being useless in Ultraschall 4.0
- GetID3TagsFromCurrentProject_PodcastTags - removed, due being useless in Ultraschall 4.0
- SetID3TagsForCurrentProject - removed, due being useless in Ultraschall 4.0
- SetID3TagsForCurrentProject_PodcastTags - removed, due being useless in Ultraschall 4.0
- Msg - removed, was useless
4.00 Beta 2.6: - "Is that all there is? - Peggy Lee" - 19th of October 2017
New features in 4.00beta2.6 - has now 450 functions, with about 30 new ones:
- CreateAllTracksTrackString - creates a trackstring with all tracks in the current project
- new datastructure "EnvelopePointObjects" and "EnvelopePointArrays"(for EnvelopePointObjects) for easier massworking with envelopepoints
- CreateEnvelopePointObject - creates an EnvelopePointObject
- GetEnvelopePoint - gets envelopepoint easier than Reaper's own functions. Returns value converted to db-value as well
- GetClosestEnvelopePointIDX_ByTime - gets envelope-point-idx closest to a given timeposition
- GetEnvelopePointIDX_Between - gets envelope-points between start and endtime
- AddEnvelopePoints_EnvelopePointObject - adds an EnvelopePointObject
- AddEnvelopePoints_EnvelopePointArray - adds an array of EnvelopePointObjects
- CheckEnvelopePointObject - checks, if an EnvelopePointObject is a valid one
- DeleteEnvelopePoints_EnvelopePointObject - deletes an envelope-point, according to the EnvelopePointObject
- DeleteEnvelopePoints_EnvelopePointArray - deletes envelope-points, according to EnvelopePointObjects in EnvelopePointArray
- SetEnvelopePoints_EnvelopePointObject - sets an envelope-point, according to the EnvelopePointObject
- SetEnvelopePoints_EnvelopePointArray - sets envelope-points, according to EnvelopePointObjects in EnvelopePointArray
- CountEnvelopePoints - counts envelope-point in a given track and envelope-name
- ToggleIDE_Errormessages - toggles, if API shows the errormessages in Reaper's IDE or not
- WriteValueToFile_Insert - inserts a string into a specific line-position of a file
- WriteValueToFile_Replace - replaces specific lines in a file with value
- GetLengthOfFile - returns length of a file
- ReadBinaryFile_Offset - reads a binary file. Allows partial reading of a file as well.
- WriteValueToFile_InsertBinary - inserts a value into a binary file at specified position
- WriteValueToFile_Replace - replaces a specified portion of a file with a value
- GetStringFromClipboard_SWS - returns the content of the clipboard, using the SWS-function reaper.CF_GetClipboardBig, but manages the stuff necessary, that surrounds using this function
- SecondsToTimeString_hh_mm_ss_mss - converts seconds into a timestring of the format hh:mm:ss.mss
- TimeStringToSeconds_hh_mm_ss_mss - converts a timestring of the format hh:mm:ss.mss into seconds
- ParseMarkerString - converts a string with markernames or a string with timestrings and markernames into an array
- RenumerateMarkers - renumbers the shown-marker-ids in the project, beginning with the first one to the last one. Good for "ordering" markers, that were included in unordered way.
- ReadFullFile - reads a file and returns it's contents
- StartTime - a new api-variable that contains the starting time of the current instance of the api, which probably means, your script, that embeds the framework
Changes from 4.00beta2.5 to 4.00beta2.6
- corrections in the documentation
- GetClosestNextMarker - couldn't find last marker and showed a time, even if no marker was found -> fixed now; markers that are at time_position are now seen as a previous marker
- GetClosestPreviousMarker - couldn't find first marker and showed a time, even if no marker was found -> fixed now; markers that are at time_position are now seen as a next marker
- GetClosestPreviousRegion - fixed possible bug preventing from finding the first region -> fixed now
- GetClosestNextRegion - fixed possible bug preventing from finding the last region -> fixed now
- GetClosestGoToPoints - new boolean parameters check_itemedge, check_marker, check_region to set, for which type of elements to look for; returns now also an item-number; instead of "Item", it uses "Itembeg" for the beginning and "Itemend" for the end of an item now as elementtype for items; added the itemtypes to the docs
- GetNextClosestItemEdge - new return values: closest_item, item_number, edgetype, found_item
- GetPreviousClosestItemEdge - new return values: closest_item, item_number, edgetype, found_item
- WriteValueToFile - new parameter for optional appending a value to a file, other minor corrections
- SetTrackRecState - missing parameter description for tracknumber in the docs -> fixed now
- GetMediaItemsFromClipboard - produced an error, that made this function unusable -> fixed now
- RippleInsert - didn't move an item close to "position" sometimes, before inserting -> fixed now
- RippleInsert_MediaItemStateChunks - didn't move an item close to "position" sometimes, before inserting -> fixed now
- GetPreviousMuteState used to use 0 for track 1, 1 for track 2. Changed to 1 for track 1, 2 for track 2, etc
- GetNextMuteState used to use 0 for track 1, 1 for track 2. Changed to 1 for track 1, 2 for track 2, etc
- CountMuteEnvelopePoints used to use 0 for track 1, 1 for track 2. Changed to 1 for track 1, 2 for track 2, etc could also produce an error when using an invalid track. -> Fixed now.
- ToggleMute - could produce an error, when using an invalid track. -> Fixed now.
- GetTrackAutoRecArmState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackAutomodeState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackBeatState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackBusCompState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackBypFXState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackFreeModeState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackGroupFlagsState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackHeightState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackINQState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackIPhaseState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackIcon_Filename - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackIsBusState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackLayoutNames - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackLockState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackMIDIOutState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackMainSendState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackMidiCTL - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackMidiInputChanMap - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackMuteSoloState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackNChansState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackName - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackPeakColorState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackPerfState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackRecState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackShowInMixState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- GetTrackVUState - tracknumbers start now with 1 for track 1; produced an error when using nil as tracknumber -> fixed
- SetTrackAutoRecArmState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackAutomodeState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackBeatState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackBusCompState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackBypFXState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackFreeModeState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackHeightState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackINQState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackIPhaseState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackIcon_Filename - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackIsBusState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackLayoutNames - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackLockState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackMIDIOutState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackMainSendState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackMidiCTL - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackMidiInputChanMap - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackMuteSoloState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackNChansState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackName - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackPeakColorState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackPerfState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackRecState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackShowInMixState - tracknumbers start now with 1 for track 1, instead of 0
- SetTrackVUState - tracknumbers start now with 1 for track 1, instead of 0
4.00 Beta 2.5: - "Musique non stop - Technopop - Kraftwerk" - 10th of September 2017
New features in 4.00beta2.5
- Import Markers/Regions from RPP-Projectfiles
- Selection/Deselection of items, as well as getting functions for getting selected items
- functions for checking MediaItemArray and MediaItemStateChunkArrays for validity
- Trackstatechunks: getting/adding/setting/deleting/counting items in/to trackstate-chunks
- Routing-Send/Receive - functions for count, add, get, set, delete
- HWOut-settings - functions for count, add, get, set, delete
- Lock Track Controls - get, set functions
- Track Selection functions - get, set
- Functions to lock-MediaItems easily
- added RippleInsert for mediaitemstatechunkarrays
- get MediaItems from clipboard
- many functions for getting MediaItem-states from MediaItemStateChunks
- some functions for setting MediaItem-states into MediaItemStateChunks
- more MediaItem-insertion functions for MediaItemStateChunks
- choosing MediaItems from specific tracks from MediaItemArray
- new trackstring-analysis and manipulation-functions
- functions for getting Mediaitems from specific tracks
- apply statechunk to MediaItems, for extended manipulation of MediaItems using manipulated MediaItemStateChunks
- Reaper-Main-Window: get left and right sides in relation to the screen position
- client2screen2client x-coordinate conversion functions
- developer: new Errormessaging system, that will, in the future, give readable error-messages, when errors occur during execution of functions. Currently only some functions return error messages; will change over time.
- tons of other helper-functions in many areas
Changes from 4.00beta2.1 to 4.00beta2.5
- minor corrections in documentation
- RenderProjectToAIFF - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- RenderProjectToFLAC - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- RenderProjectToMP3_ABR - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- RenderProjectToMP3_CBR - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- RenderProjectToMP3_MaxQuality - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- RenderProjectToMP3_VBR - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- RenderProjectToOPUS - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- RenderProjectToWebMVideo - new parameters for start and endposition of the renderrange. Nil as projectfilename renders the currently opened project.
- GetProject_HorizontalZoom was incorrectly named GetProject_Zoom in the docs -> fixed
- GetApiVersion was incorrectly linked to GetPath in the docs -> fixed
- GetAllMediaItemsBetween - adds "ULTRASCHALL_TRACKNUMBER tracknumber" to returned statechunks, to know, from which track the item originated from
- SplitMediaItems_Position - bug introduced in beta 2.1 that split only first track -> fixed
- RippleInsert - bug introduced in beta 2.1 -> fixed
- InsertMediaItemArray - bug introduced in beta 2.1 -> fixed
- GetMediaItemsAtPosition - bug introduced in beta 2.1 -> fixed
- OnlyMediaItemsOfTracksInTrackstring - bug introduced in beta 2.1 -> fixed
- DeleteMediaItems_Position - bug introduced in beta 2.1 -> fixed
- GetAllMediaItemsBetween - bug introduced in beta 2.1 -> fixed
- MoveMediaItemsAfter_By - bug introduced in beta 2.1 -> fixed
- MoveMediaItemsBefore_By - bug introduced in beta 2.1 -> fixed
- MoveMediaItemsSectionTo - bug introduced in beta 2.1 -> fixed
- SectionCut - bug introduced in beta 2.1 -> fixed
- SectionCut_Inverse - bug introduced in beta 2.1 -> fixed
- RippleCut - bug introduced in beta 2.1 -> fixed
- RippleCut_Reverse - bug introduced in beta 2.1 -> fixed
- RemoveDuplicateTracksInTrackstring - entries in trackstringarray are now numbers, not strings
- SetTrackAutoRecArmState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackAutomodeState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackBeatState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackBusCompState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackBypFXState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackFreeModeState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackHeightState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackINQState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackIPhaseState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackIcon_Filename - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackIsBusState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackLayoutNames - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackLockState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackMIDIOutState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackMainSendState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackMidiCTL - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackMidiInputChanMap - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackMuteSoloState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackNChansState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackName - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackPeakColorState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackPerfState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackRecState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackShowInMixState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- SetTrackVUState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackAutoRecArmState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackAutomodeState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackBeatState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackBusCompState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackBypFXState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackFreeModeState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackGroupFlagsState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackHeightState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackINQState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackIPhaseState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackIcon_Filename - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackIsBusState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackLayoutNames - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackLockState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackMIDIOutState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackMainSendState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackMidiCTL - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackMidiInputChanMap - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackMuteSoloState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackNChansState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackName - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackPeakColorState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackPerfState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackRecState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackShowInMixState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetTrackVUState - had a bug when using tracknumbers higher than the highest available tracknumber -> fixed
- GetMediaItemsAtPosition - returns now an array with the MediaItemStateChunks as well
- RemoveDuplicateTracksInTrackstring - produced Lua-error, when giving nil as parameter -> fixed
4.00 Beta2.1: - "Ich und der Rock - Renft" - 30th of August
New features in 4.00beta2.1
- mostly bugfixes
- ultraschall.Separator - contains the proper separator for the system it runs on. If you want to do file-operation, you should use this instead of \ or /, to make your script Mac and Windows compliant.
- ultraschall.Script_Path - contains the path to the scripts-folder of Reaper
Changes from 4.00beta2 to 4.00beta2.1
- changed the lines, you need to include into your script. refer "3. How to use the API in your LUA-Script" in the doc-file.
- some functions didn't work on Mac, due it's use of / instead of \ as directory-separator. Has been fixed now.
- moved all ultraschall-related variables into the ultraschall-table.
- GetPartialString - returns nil in case of error
- CSV2Line - returns nil in case of error, bugfixing
- RGB2Num - returns nil in case or error
- CSV2IndividualLinesAsArray - returns nil in case or error, bugfixing
- GetNextMuteState - corrected documentation
- GetNextMuteState_TrackObject - corrected documentation
- GetPreviousMuteState - corrected documentation
- GetPreviousMuteState_TrackObject - corrected documentation
- ImportChaptersFromFile - corrected documentation
- ImportEditFromFile - corrected documentation
- ImportMarkersFromFile - corrected documentation
- ImportChaptersFromFile_Filerequester - corrected documentation
- ImportEditFromFile_Filerequester - corrected documentation
- ImportMarkersFromFile_Filerequester - corrected documentation
- RemoveDuplicateTracksInTrackstring - improved return values
- OnlyMediaItemsOfTracksInTrackstring - improved return values
- ChangeDeltaOffsetOfMediaItems_FromArray - bugfixing
- InsertMediaItem_MediaItem - improved return values
- InsertMediaItem_MediaItemStateChunk - improved return values
4.00 Beta2: - "Shock The Monkey - Peter Gabriel" - 20th August 2017
New Features in 4.00beta2 - about 190 new functions with:
- Configuration: Import/Export from/to reaper-kb.ini-files
- Configuration: New Management-functions for Configuration-files that follow standard ini-files
- Clipboard: Clipboard Functions, get and put (thanks to fernsehmuell for the mac-side)
- Envelopes: Move Envelope-Points in a track
- File-Management: extended fileread-functions, including reading lines that follow patterns, and more
- Markers: Move Markers, as well as Edit Markers
- Markers: Get Markers/Regions/Time-Signature-marker by their graphical representation, means: you can use e.g. the mouse to find markers the mouse is hovering above
- Items: Get, Split, Insert, Delete, Shorten, Cut, RippleCut, RippleInsert, etc of single and multiple MediaItems in 1 or more tracks
- Projectfiles: Get and set 40 settings in rpp-projectfiles. More to come.
- Projectfiles: Import Tracks with Items and all FX and settings from project-files using GetProject_TrackStateChunk. You can insert them with the new item function InsertMediaItem_MediaItemStateChunk
- Rendering: Render projectfiles as mp3, mp3_vbr, mp3_cbr, mp3_abr, opus, flac, aiff, and webm(video). That's right: no render dialog necessary!
- Docs: The Documentation-System, that automatically creates the API-Docs from the API itself, using CreateUSApiDocs_HTML. Will be extended to be a fully equipped automatic-documentation-system for Ultraschall
- Tons of other functions in all areas.
Changes from 4.00beta1 to 4.00beta2
- Marker/Regions-functions - they used to ignore regions which led to wrong markers/regions -> fixed
- ultraschall.WriteValueToFile - default write-mode changed to binary-file behavior(doesn't add useless newlines anymore) non binary-mode can be chosen by a new parameter "binarymode" set to false, if it's
set to nil or true, value will be treated as binaryvalue and saved as such. ultraschall.WriteValueToFile(Filename_with_path, Value, binarymode)
- CSV2IndividualLines - renamed to CSV2IndividualLinesAsArray and added number of lines as additional return-value
- NumberRangeAsCsvOfNumbers - renamed to CreateTrackNumbersString
- Structure - reworked API-structure
4.00 beta1: - "Tomorrow Never Knows - The Beatles" - 10th of July 2017
New Features in 4.00beta1 - about 140 new functions with:
- Markers: extensive marker-management, with markers for chapter, edit, dummy, normal and podrange-regions
- Configuration: functions for an Ultraschall.ini. Ultraschall needs it's own config-file, at last ;)
- CoughButtons: CoughButton-management for setting, toggling, getting envelope-points in the mute-envelope-lane
- Navigation: Jumping to position, setting playcursor, toggling scrolling during playback, finding next item/marker/region and more
- Track-Management: Getting and Setting tons of track-states, that are usually hard to fumble out of Reaper.
- File-Management: Write a value to a file.
- Dozens of helper-functions here and there