GetPath - when sep is nil, it returns now the path until the last useful separator, either \ or /

MB - moved to User Interface -> Dialogs in the docs

hotfixes are now loaded before beta-functions

CloseReaConsole - updated to behavior of version 0.963 of the JS-plugin

ultraschall.MB - converts now all passed data into string, no matter what type it is

ultraschall_api.lua - checks now, if it is run within the beta-engine-parts of this API and prevents including it if necessary.
This prevents duplicate execution of functions, when coding within the beta-functions-engine-scripts.

RenderProject_RenderCFG - if you use nil as renderfilename_with_path, it will render as renderfilename using the filename/renderpattern already set in the project
didn't return correct filecount if rendering was canceled, leading to possible error-message -> fixed

RenderProjectRegions_RenderCFG - if you use nil as renderfilename_with_path, it will render as renderfilename using the filename/renderpattern already set in the project

GetMediafileAttributes - added info into the docs about rpp-projects, which will create a proxy file, when getting the mediafile-attributes

CreateValidTempFile - added info about the path of the created tempfile/tempfilename

SetProject_RenderPattern - didn't save render-patterns with spaces in them properly

InsertMediaItemFromFile - added MediaTrack and the new editcursorposition as retvals; the latter used to be third retval without being documented as such -> moved to the end of the retvals
sorry for that inconvenience

GetProject_RenderFilename - sometimes returned one " at the end -> fixed

WriteValueToFile - converts now the parameter value to a string, regardless of it's original datatype

WriteValueToFile_Insert - converts now the parameter value to a string, regardless of it's original datatype

WriteValueToFile_Replace - converts now the parameter value to a string, regardless of it's original datatype

WriteValueToFile_InsertBinary - converts now the parameter value to a string, regardless of it's original datatype

WriteValueToFile_ReplaceBinary - converts now the parameter value to a string, regardless of it's original datatype

4.00 Beta 2.73: - "Radiohead - Bangers'n'Mash" - 9th of March 2019
Has now 800 functions, with 20 new ones

- New HWNDs to get, like Render Queue, Preferences, Project Settings and more

- Routing-Convenience Features to work better with Routing-stuff. Includes now MKVOL from/to DB-converter for that!

- print3 outputs it's parameters to the Clipboard.

New features in 4.00beta2.73
- print3 - like print and print2, but puts the parameters into the clipboard instead
- ClearRoutingMatrix - clears the routing-matrix, either completely or just parts of it(Send/Receive, HWOuts, MasterSends) including or excluding the Master-Track
- DB2MKVOL - converts a dB-value into its MKVOL-representation, which can be used by routing-functions for the volume
- MKVOL2DB - converts a MKVOL-value(as used by volume in routing-settings) into its dB-representation
- GetRenderQueueHWND - gets the HWND of the Render-Queue-window, if opened
- GetProjectSettingsHWND - gets the HWND of the Project Settings-window, if opened
- GetSaveLiveOutputToDiskHWND - gets the HWND of the Save Live Output To Disk-window, if opened
- GetConsolidateTracksHWND - gets the HWND of the Consolidate Tracks-window, if opened
- GetExportProjectMIDIHWND - gets the HWND of the Export Project MIDI-window, if opened
- GetProjectDirectoryCleanupHWND - gets the HWND of the Project Directory Cleanup-window, if opened
- GetBatchFileItemConverterHWND - gets the HWND of the Batch File/Item Converter-window, if opened
- GetAllHWOuts - returns a table with all HWOut-settings of all tracks of the current project
- GetAllAUXSendReceive - returns a table with all Send/Receive-settings of all tracks of the current project
- GetAllMainSendStates - returns a table with all MainSend(Master Send)-settings of all tracks of the current project
- ApplyAllHWOuts - applies a table, as returned by GetAllHWOuts to all tracks. That way, you can easily alter HWOuts of multiple tracks in that table, before passing it to ApplyAllHWOuts
- ApplyAllAUXSendReceives - applies a table, as returned by GetAllAUXSendReceive to all tracks. That way, you can easily alter AUXSendReceives of multiple tracks in that table, before passing it to ApplyAllAUXSendReceives
- ApplyAllMainSendStates - applies a table, as returned by GetAllMainSendStates to all tracks. That way, you can easily alter MainSend(Master-Send)-states of multiple tracks in that table, before passing it to ApplyAllMainSendStates
- GetSetConfigAutoMute - gets/sets the automute-config-variable
- GetSetConfigAutoMuteFlags - gets/sets the automuteflags-config-variable
- GetSetConfigAutoSaveInt - gets/sets the autosaveint-config-variable
- GetSetConfigAutoSaveMode - gets/sets the autosavemode-config-variable

PARMLEARN 0 19376 1 for your VST(i) parameter
-- the 0 is the parameter number
-- the 19376 is the CC number and message type
-- the 1 is the Mode

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

FXID {...
<PARMENV...

PARMLEARN 4 2960 0
WAK 0
BYPASS 0 0

If you take a new project, add a new track, save as project1 without any midi mapping.
Then same project, map a single parameter, save as project2. Diff and you should see the added PARMLEARN with those three numbers, their meanings were explained above.

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

And how do I map a parameter? A gif would be sufficient, that shows, where to click.

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

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

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

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