Edit: re-read your question and answered in the following post.
Original Response:
I don’t understand the question, and I’m not sure of your technical background, but this is a peculiar question in the context of the solutions that you’ve suggested. Previous responses have indicated that funscript is JSON. JSON is sooooo much friendlier than XML. JSON is also universal. SRT seems fine for subtitles, I’m just not sure how it is an improvement for our purposes here.
If we had to migrate, I like TOML as a more modern alternative as you can add comments, but most people don’t need comments in a funscript file. Like most others in this thread, I don’t see a reason to change yet.
Here is what I would change
One change that I’d consider is having a each axis be a key in a single .funscript file. Instead of having the following files:
video.funscript
video.twist.funscript
video.roll.funscript
video.suck.funscript
video.pitch.funscript
video.sway.funscript
… etc.
you could just have a JSON key for each axis. It would be easy to maintain backwards compatibility by keeping the main axis named “actions”. Your typical 1D stroker like The Handy the SSR1 could continue to use the data in the “actions” key as is, other keys could be added for all other axes.
I believe SLR may have done something to integrate all axes into a single file but I’m not aware of what was actually implemented.
A Brief Example of One Possible Implementation
"actions": [
{
"at": 1000,
"pos": 100
},
{
"at": 2500,
"pos": 75
}
],
"pitch": [
{
"at": 1000,
"pos": 50
},
{
"at": 2500,
"pos": 65
}
],
"twist": [
{
"at": 1000,
"pos": 50
},
{
"at": 2500,
"pos": 85
}
]
Other than the need to reduce multiple files into a single file, which can be done in the current JSON .funscript format, I haven’t seen a reason for a change. I think you could make a good argument for some standardization within the JSON keys, however. In addition to the keys that I’d mentioned above, OpenFunscripter adds metadata keys for things like bookmarks, chapters, license, author, etc. These are great, yet I find myself wanting to add more.
Adopting some additional standards would be nice
I’ll give you an example:
I’ve written a program that will generate animated gifs from bookmarks within funscripts that are generated by OpenFunscripter (or any program, it will work). OpenFunscripter writes keys for things like metadata (author, license, title, etc), and of particular importance to me are chapters, bookmarks. Chapters contain a start time and an end time, but bookmarks only contain a single time.
"metadata": {
"bookmarks": [
{
"name": "Intro ~5s",
"time": "00:03:38.000"
},
{
"name": "Measure Ass (Anastasia Brokelyn) ~4s",
"time": "00:08:13.900"
},
{
"name": "Blowjob (Anastasia Brokelyn) ~6s",
"time": "00:11:05.100"
}
],
"chapters": [
{
"endTime": "00:09:34.700",
"name": "Blowjob" ,
"startTime": "00:04:26.166"
},
{
"endTime": "00:12:45.133",
"name": "Close Up",
"startTime": "00:09:48.966"
},
{
"endTime": "00:18:09.633",
"name": "Missionary",
"startTime": "00:12:46.033"
},
{
"endTime": "00:23:18.033",
"name": "Missionary Close",
"startTime": "00:18:10.266"
}
]
}
However, my program creates animated gifs from bookmarks, so I want to add a duration or end-time to the bookmarks key.
Here is an example output for a moving bookmark gif which I generated with the following:
<snip>
{
"name": "Measure Ass (Anastasia Brokelyn) ~4s",
"time": "00:08:13.900"
},
... <snip>
My current options for non-standard animated bookmarks are…
- use the hack I’m currently using to embed the duration in the bookmark’s “name” key (by using a the “~” character followed by the number of seconds. This at least preserves compatibility with OpenFunscripter in its current form.
- add a key to each object in the bookmarks array named “endTime” with an end time
- possibly also change “time” in the bookmarks objects to “startTime”, which follows the chapters naming convention, but wouldn’t be compatible with OpenFunscripter
- or just use chapters for everything (though causes a ton of clutter in OpenFunscripter and 5 second chapters seem like a terrible idea)
Creating a better standard would be helpful for everyone, let’s just keep it open source and accessible for all. If you have a specific reason that JSON (funscript) isn’t a good format, I’d like to hear about it.