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

Reply
 
Thread Tools Display Modes
Old 02-16-2015, 03:33 PM   #1
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default Documentation: Reascripthelp with Styles and Filtering Tables (Update: 2022-12-14)

Hi!

This article aims to present my work about customizing the reascripthelp.html file.

Context
The REAPER functions list is awesome, but lacks some basics thing to be more pleasing to use.

That's why I decided to style it.
  • color code for extensions
  • color code for variable
  • dark background
  • sans-serif font
  • modular scale based typography
  • responsive tables
  • mouse hover animation
I also added some functionalities that you may like
  • Persistent discrete small menu for quick access to REAPER Functions, EEL specific functions, and Lua based functions.
  • filterable functions tables.
Demo:



Technic

This is based on the Reaper v5 generated documentation which is far more customizable than the v4.
Unfortunately, the modification process cannot be automated, that why I don't plan to update it either at this time. This just a demonstration of what could be done with a more semantic HTML generation.

Here what I modified to make all this work:
  • correct HTML orphans characters (there is a lot of lost nbsp).
  • invert table direction, and then convert all functions to one column.
  • add custom HTML attribute for column.
  • correct some HTML non-semantic things (especially, usage of <code>.
  • Integrate Jquery and Footable
We could also imagine some other functions such as a second column for functions tables for displaying the version of REAPER which is required for the function. I didn't implement it cause I don't have the data.

Link

Tell me if you like it, if you use it, if you want Cockos make a move toward a more customizable/functional reascripthelp.html. I am open to all comments !

For me as a scripter, it was a huge time saver.
My only wish is to make you save time as well, so you could be able to produce powerful scripts more easily, and with more pleasure!


EDIT (2021-11-18):
Accuracy of this presentation isn't up to date, follow the discussions below to see how it has evolved.

Last edited by X-Raym; 12-14-2022 at 12:13 PM.
X-Raym is offline   Reply With Quote
Old 02-18-2015, 07:18 AM   #2
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Moderation approval seems ok so...
One small addresse to see the demo: bit.ly/reascript


Remember that this is not an up to date doc, just a demonstration page!
X-Raym is offline   Reply With Quote
Old 03-20-2015, 07:13 AM   #3
Viente
Human being with feelings
 
Viente's Avatar
 
Join Date: Feb 2012
Posts: 1,972
Default

Thank you! How to download it with search function available?
Viente is offline   Reply With Quote
Old 03-20-2015, 07:31 AM   #4
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@Viente
File -> Save as...
It must be enough!

Don't forget that this is not an up to date documentation. But sure it helps!
X-Raym is offline   Reply With Quote
Old 03-20-2015, 07:37 AM   #5
Viente
Human being with feelings
 
Viente's Avatar
 
Join Date: Feb 2012
Posts: 1,972
Default

"Save as" in browser? It saves but search function not working, probably because JS scripts not working.
Viente is offline   Reply With Quote
Old 03-20-2015, 07:54 AM   #6
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@Viente
Hmm you are right doesn't seem to work locally with this function. I can't explain that ^^
X-Raym is offline   Reply With Quote
Old 05-02-2015, 09:30 AM   #7
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default Update

Just updated for REAPER v5.0pre28/x64 and SWS 2.6.4 #0
There is a lot of new functions in this SWS pre-release build, I had to update this as it is still the main document I use for scripting !

(note: I just make the API functions tables sortable, not the Lua and EEL ones).

Last edited by X-Raym; 05-02-2015 at 09:37 AM.
X-Raym is offline   Reply With Quote
Old 09-27-2015, 08:31 AM   #8
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default Update 2.04 pre 1 SWS 2.8.1

Hi!

Since 5pre28... a LOT of functions have been added

So, it was the time to update this document !

Small changed:
SWS functions are listed below native ones, but are in teh same table (contrary to the new autogeneration), to allow more easable filtering.
I added a second column to indicate the source of the function (Ideally, it would indicated the minimum version required to use this but... It would be a bit hard to get all the infos, and I don't even know if it would be possible).



I still hope that the document could have a better HTML generation, it is still very messy and with a lot of obsolete/redudant markups, which make the customization a bit painful.

I already use some of these new functions but here a recap of the new things since my last document updated:

Code:
ClearConsole	
ColorFromNative	
ColorToNative	
EnumerateFiles	
EnumerateSubdirectories	
GetLastColorThemeFile	
GetMediaSourceParent	
GetProjectTimeOffset	
IsProjectDirty	
OpenColorThemeFile	
OpenMediaExplorer	
BR_GetArrangeView
BR_GetCurrentTheme
BR_GetMidiTakePoolGUID
BR_GetMidiTakeTempoInfo
BR_GetNextGridDivision
BR_GetPrevGridDivision
BR_SetMidiTakeTempoInfo
BR_TrackFX_GetFXModuleName
BR_Win32_GetPrivateProfileString
BR_Win32_ShellExecute
BR_Win32_WritePrivateProfileString
Have fun with it !

Last edited by X-Raym; 09-27-2015 at 08:40 AM.
X-Raym is offline   Reply With Quote
Old 09-27-2015, 11:33 AM   #9
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Thanks. I use only your page, when writing anything. Native HTML API Help is make my eyes crying.
mpl is offline   Reply With Quote
Old 02-10-2016, 05:45 PM   #10
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Update :
Now for v5.15 & SWS 2.8.6 #0.
Lot of new functions since the last update !

@Devs: A better HTML generation is still highly desired.

Cheers !
X-Raym is offline   Reply With Quote
Old 05-28-2016, 09:44 PM   #11
michaeltonight
Human being with feelings
 
michaeltonight's Avatar
 
Join Date: Jun 2010
Location: Texas
Posts: 357
Default

Yes, thank you. It's amazing!
michaeltonight is offline   Reply With Quote
Old 05-29-2016, 06:08 AM   #12
Spacemen Tree
Human being with feelings
 
Spacemen Tree's Avatar
 
Join Date: Mar 2013
Posts: 515
Default

Thanks X-Raym! My n.1 place to check API stuff.
__________________
"After silence, that which comes nearest to expressing the inexpressible is music", Aldous Huxley
Spacemen Tree is offline   Reply With Quote
Old 05-29-2016, 08:13 AM   #13
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default 2.0

@michaeltonight, @spacemantree
Thank you both guys it is cool to know it is helpful !

I just make a major udpate on it, it took several hours.
but it has now a lot of extra features :


The whole code has been refactored. The native generation is really too bad from an HTML point of view, full of errors, obsolete characters and non semantic structure.

EDIT : I forgot to make the paragraph pure HTML and I will probably make the code "tidy", so I'm still working on it.

Let me know what do you think of this update !

Cheers !


EDIT : Actual way of doing sticky filter doesn work on chrome
http://caniuse.com/#feat=css-sticky
I may correct that later.

Last edited by X-Raym; 05-29-2016 at 09:36 AM.
X-Raym is offline   Reply With Quote
Old 05-29-2016, 08:37 AM   #14
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,585
Default

Thank you very much for this! most used site when coding!
Sexan is offline   Reply With Quote
Old 05-29-2016, 05:26 PM   #15
Lokasenna
Human being with feelings
 
Lokasenna's Avatar
 
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
Default

Awesome update, X-Raym. Any chance we could get the filter back for only showing Lua, etc?
__________________
I'm no longer using Reaper or working on scripts for it. Sorry. :(
Default 5.0 Nitpicky Edition / GUI library for Lua scripts / Theory Helper / Radial Menu / Donate
Lokasenna is offline   Reply With Quote
Old 05-30-2016, 05:23 AM   #16
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@Sexan
Cool, thanks

@Lokasenna

Oh sure,
But I wanted to recreate them rather than using the existing function which have some javascript instructions in the HTML (and I don't like that :P)
I just finished to recreate this feature, should be online now.

@all
I changed the URL so that it is shorter and easier to remember.

New version: http://www.extremraym.com/cloud/reascript-doc or http://bit.ly/reascript-doc

Also, I added extra features
  • Checked symbol when a function is copied
  • Now the copied function doesn't have the type of element, just the variable name (so that you don't have to delete them manually after copy pasting
  • Filter placeholder text
  • some style fine tuning
Hope it helps
X-Raym is offline   Reply With Quote
Old 05-30-2016, 02:55 PM   #17
Lokasenna
Human being with feelings
 
Lokasenna's Avatar
 
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
Default

Awesome.
__________________
I'm no longer using Reaper or working on scripts for it. Sorry. :(
Default 5.0 Nitpicky Edition / GUI library for Lua scripts / Theory Helper / Radial Menu / Donate
Lokasenna is offline   Reply With Quote
Old 05-30-2016, 05:57 PM   #18
Claudiohbsantos
Human being with feelings
 
Join Date: Aug 2014
Location: New York
Posts: 135
Default

This is even cooler than before, cheers for that!

Is there a wiki anywhere where people can comment/explain individual functions? I think that would be an awesome feature if you want to go through the pain of making the platform. Most of the functions are rather self explanatory but some of them are going to be forever a mystery to me and being able to see other people's comments on a function when searching the API would be amazing
__________________
My Reapack Repo - Reapack Extension
Claudiohbsantos is offline   Reply With Quote
Old 05-31-2016, 12:30 AM   #19
Spacemen Tree
Human being with feelings
 
Spacemen Tree's Avatar
 
Join Date: Mar 2013
Posts: 515
Default

Quote:
Originally Posted by Claudiohbsantos View Post
This is even cooler than before, cheers for that!
Absolutely! Nice job! And the copy function is genius. Absolute time saver.
__________________
"After silence, that which comes nearest to expressing the inexpressible is music", Aldous Huxley
Spacemen Tree is offline   Reply With Quote
Old 05-31-2016, 03:04 AM   #20
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Thanks you guys :P

@Claudiohbsantos
Well, there is a ReaScript section in the Cockos wiki but it is not update dsince a very long time,
Updatong in the normal way (manually created page for each function) would take too much time,
I don't know if there is a way to update it by parsing the ReaScript Doc and all new pages in few actions...

So it may be a bit complicated.

But you highlight something interesting : indeed, some functions needs more infos.

I was considering putting it on github but it is not very user friendly to add few details infos on 5500 lines long document, and it require to push updates on my server manually.

I let you know if I find an idea about how we could make this page more collaborative.
X-Raym is offline   Reply With Quote
Old 05-31-2016, 09:24 AM   #21
michaeltonight
Human being with feelings
 
michaeltonight's Avatar
 
Join Date: Jun 2010
Location: Texas
Posts: 357
Default

This is amazing, X-Raym! Would it be difficult to include the Python filter too?
michaeltonight is offline   Reply With Quote
Old 05-31-2016, 10:39 AM   #22
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@michaeltonight
Of course !
this was an old atavism which came from the native old doc generation.

This feature is added now.
X-Raym is offline   Reply With Quote
Old 05-31-2016, 10:46 AM   #23
michaeltonight
Human being with feelings
 
michaeltonight's Avatar
 
Join Date: Jun 2010
Location: Texas
Posts: 357
Default

Awesome, thanks! You rule.
michaeltonight is offline   Reply With Quote
Old 05-31-2016, 11:43 AM   #24
benf
Human being with feelings
 
benf's Avatar
 
Join Date: Oct 2008
Location: France
Posts: 3,697
Default

Thanks a lot X-Raym. Marvellous !
__________________
Ma Zique
Mes Partoches
benf is offline   Reply With Quote
Old 06-05-2016, 05:39 AM   #25
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@michaeltonight, @benf
Thank yo guys

@all
Just noticed that I complelty forgot to add SWS functions in lists !
Corrected now

EDIT: Also, just added Fuzzy search
now you can filter more easily, just by entering keywords !

Last edited by X-Raym; 06-05-2016 at 05:50 AM.
X-Raym is offline   Reply With Quote
Old 09-04-2016, 02:06 AM   #26
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default Update

  • Manually updated with new functions and definitions from REAPER 5.24.
  • Added REAPER version compatibility of new functions in function list (so that you can more easily see new functions).
Took me one hour but it's worth it.

Enjoy !
X-Raym is offline   Reply With Quote
Old 09-04-2016, 07:31 AM   #27
michaeltonight
Human being with feelings
 
michaeltonight's Avatar
 
Join Date: Jun 2010
Location: Texas
Posts: 357
Default

Awesome! You're the best, X-Raym.
michaeltonight is offline   Reply With Quote
Old 10-15-2016, 09:55 AM   #28
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

New feature:
  • Highlight matching terms from filter functions list.



I wanted this since a long time, I tried during hours to make regex pattern matching, and I just find a jquery little scripts that does that perfectly. (thanks to the author :P)

I think it could be nice to have this kind of feature in action list too !
X-Raym is offline   Reply With Quote
Old 11-23-2016, 09:59 AM   #29
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

2016-11-23
  • v5.29
  • CSS Optimization
The CSS Optimization allow the page to be downloaded almost x10 times faster :P
X-Raym is offline   Reply With Quote
Old 11-23-2016, 04:04 PM   #30
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

I use your site a lot when scripting.
Thanks X-Raym.
nofish is offline   Reply With Quote
Old 01-03-2017, 02:40 PM   #31
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@nofish
Thanks ! If I can see that users use it, then it worths it

@all
Huge update today, hours of manual work, cause Cockos changed a bit how it output the functions def, so looking for difference between the old doc and the new ones (generated versions) to find meaningful difference took a lot of time.

  • v5.32 pre 4
  • New functions: GetMediaItemTake_Peaks, GetProjectLength, GetProjectName, GetSetProjectAuthor, GetTrackMIDILyrics, GetTrackName, joystick_create, joystick_destroy, joystick_enum, joystick_getaxis, joystick_getbuttonmask, joystick_getinfo, joystick_getpov, joystick_update, MIDI_GetAllEvts, MIDI_SetAllEvts, PCM_Source_GetPeaks, SetTrackMIDILyrics, lua_{reaper.array}.fft_real, lua_{reaper.array}.ifft_real
  • Deleted function: HiresPeaksFromSource
As you can see there is some new functions which are not present in REAPER changelog !!


Quote:
GetProjectName, GetSetProjectAuthor, GetProjectLength
I noticed that while I was comparing the HTML output of the document

@Cockos
I still think that reascript doc would benefit from better HTML generation. Manually having to take care of this is a bit time consuming :/ Feel free to take a look at my HTML. Cheers !

Last edited by X-Raym; 01-04-2017 at 05:25 AM.
X-Raym is offline   Reply With Quote
Old 01-03-2017, 03:00 PM   #32
Nantho
Human being with feelings
 
Join Date: Mar 2013
Posts: 213
Default

Thanks a lot for this Man, you have no idea how much this is helpful to me !
Nantho is offline   Reply With Quote
Old 01-03-2017, 04:32 PM   #33
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

@Nantho

Many Thanks man !

I just fixed a quick dirty bug, the document is good now. :P
X-Raym is offline   Reply With Quote
Old 01-04-2017, 05:25 AM   #34
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

I forgot to add the "GetProjectLength" function in the changelog, but this is a also a new function added without mention in the changelog.
X-Raym is offline   Reply With Quote
Old 02-23-2017, 04:13 AM   #35
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default Update

Updated for REAPER v5.34
X-Raym is offline   Reply With Quote
Old 03-07-2017, 03:42 PM   #36
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Few hours later, one another manual update... !

2017-03-07
  • v5.40pre10
  • # API: add InsertAutomationItem, GetSetAutomationItemInfo, CountEnvelopePointsEx, GetEnvelopePointEx, GetEnvelopePointByTimeEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointRangeEx, Envelope_SortPointsEx
  • GetSetProjectGrid (Not in the changelog !!)

Please support this doc by commenting, considering a donation (not regular free scripters but big compagnies which uses it freely), and report to the devs that we can have a better html generation. Thanks :P
X-Raym is offline   Reply With Quote
Old 03-07-2017, 04:44 PM   #37
amagalma
Human being with feelings
 
amagalma's Avatar
 
Join Date: Apr 2011
Posts: 3,451
Default

Thank you X-Raym for your GREAT work!

The official Reascript help should be like yours! It is SO much easier to work with!..
__________________
Most of my scripts can be found in ReaPack.
If you find them useful, a donation would be greatly appreciated! Thank you! :)
amagalma is offline   Reply With Quote
Old 09-11-2017, 09:57 AM   #38
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

New Update
2017-09-11
  • v5.50rc21 / SWS v2.9.6.0
  • # API: add BR_IsMidiOpenInInlineEditor, SN_FocusMIDIEditor, CF_GetClipboard, CF_SetClipboard, NF_AnalyzeTakeLoudness, NF_AnalyzeTakeLoudness2, NF_AnalyzeTakeLoudness_IntegratedOnly, NF_GetMediaItemAverageRMS, NF_GetMediaItemMaxPeak, SN_FocusMIDIEditor
  • Add doc to RecursiveCreateDirectory
Thanks for supporting this manually updated doc by making a donation (or by sharing your scripts :P )

Cheers !

@amalgama
Many thanks Glad it is useful to you !
X-Raym is offline   Reply With Quote
Old 03-05-2018, 04:03 PM   #39
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default Update

2018-03-05
  • v5.76 / SWS v2.9.8.0 / Reapack v1.2.1
  • # API: add GetSetTrackGroupMembershipHigh, GetUnderrunTime, CF_GetClipboardBig, CF_LocateInExplorer, CF_ShellExecute, NF_GetMediaItemPeakRMS_NonWindowed, NF_GetMediaItemPeakRMS_Windowed, NF_GetSWSTrackNotes, NF_SetSWSTrackNotes, NF_TakeFX_GetOffline, NF_TakeFX_SetOffline, NF_TrackFX_GetOffline, NF_TrackFX_SetOffline, ReaPack_AboutInstalledPackage, ReaPack_AboutRepository, ReaPack_AddSetRepository, ReaPack_BrowsePackages, ReaPack_CompareVersions, ReaPack_EnumOwnedFiles, ReaPack_FreeEntry, ReaPack_GetEntryInfo, ReaPack_GetOwner, ReaPack_GetRepositoryInfo, ReaPack_ProcessQueue
It took me 1 hour to update so thank you for supporting this project !


Cheers !
X-Raym is offline   Reply With Quote
Old 04-01-2018, 01:45 AM   #40
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

How do you extract SWS functions?
fundorin is offline   Reply With Quote
Reply

Thread Tools
Display Modes

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

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

Forum Jump


All times are GMT -7. The time now is 04:03 AM.


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