Skip to content

Releases: Ultraschall/ultraschall-lua-api-for-reaper

4.2.001 - "Pink Floyd - High Hopes" - 1st of December 2020

30 Nov 01:40
Compare
Choose a tag to compare

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.001 - "Radiohead - Spectre"

15 May 12:18
Compare
Choose a tag to compare

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"

07 Apr 13:16
Compare
Choose a tag to compare

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"

05 Feb 21:54
Compare
Choose a tag to compare

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 n...
Read more

4.00 Beta 2.80: - "Starsailor - Four to the Floor"

05 Feb 19:39
Compare
Choose a tag to compare

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 imple...
Read more

4.00 Beta 2.79: - "Yes - Owner of a lonely heart" - 19th of December 2019

19 Dec 17:35
Compare
Choose a tag to compare

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 if 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

19 Dec 17:34
Compare
Choose a tag to compare

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 ...
Read more

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

19 Dec 17:33
Compare
Choose a tag to compare

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-Windowha...
Read more

4.00 Beta 2.761: - "Coldplay - Fix You" - 23rd of August 2019

19 Dec 17:32
Compare
Choose a tag to compare

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 Mana...
Read more

4.00 Beta 2.76: - "The Police - Walking on the Moon" - 20th of July 2019

19 Dec 17:31
Compare
Choose a tag to compare

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