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.
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
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.
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
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.
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. :)
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
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
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 ;)
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.
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 ;)
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.
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.
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.
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 :)
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.
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
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) ;)
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.
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.
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
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
Has now 700 functions, with about 250 new ones!
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