RAPID-MIX_API issueshttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues2017-11-27T17:59:50Zhttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/46Make training API match JS2017-11-27T17:59:50ZMichael ZbyszyńskiMake training API match JSWe've made some changes to the API in JS that are improvements and should be mirrored in JS.
For example:
* trainingData changes to trainingSet
* phrase changes to example
* the recording() methods are replaced by createExample() and a...We've made some changes to the API in JS that are improvements and should be mirrored in JS.
For example:
* trainingData changes to trainingSet
* phrase changes to example
* the recording() methods are replaced by createExample() and addElement()
@MikeZ did a sketch of this that is now in the "next_api" branch:
http://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/tree/next_api
@Joseph Uploaded a .zip here: #44 that addresses some of the same issues.
These two drafts need to be merged into one version on the next_api branch that is as close to the JS api we can make it.Joseph LarraldeJoseph Larraldehttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/38Reconsider trainingData.startRecording()2017-11-27T17:59:51ZMichael ZbyszyńskiReconsider trainingData.startRecording()@fabian Brought up a point about the trainingData class, and its current, stateful API.
It does this:
```cpp
trainingData.startRecording("myLabel");
trainingData.addElement(element);
trainingData.stopRecording();
```
That could ...@fabian Brought up a point about the trainingData class, and its current, stateful API.
It does this:
```cpp
trainingData.startRecording("myLabel");
trainingData.addElement(element);
trainingData.stopRecording();
```
That could cause problems if these functions aren't called in the right order. A safer API would be:
```cpp
trainingData::phrase *myPhrase = trainingData.createPhase(); //returns a pointer to a phrase
myPhrase.addElement(<element>);
```https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/47Make sure everything follows the JSON API2017-11-28T11:17:52ZMichael ZbyszyńskiMake sure everything follows the JSON APIThe JSON API is documented on the website, implemented in C++, and implemented in JS.
We should make sure that all of these places are compatible.
Also, the new JSON API is not compatible with the one @MikeZ implemented in Wekinator....The JSON API is documented on the website, implemented in C++, and implemented in JS.
We should make sure that all of these places are compatible.
Also, the new JSON API is not compatible with the one @MikeZ implemented in Wekinator. So, that needs to be updated (this is probably a separate issue).https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/37Design windowed process2017-12-04T16:37:12ZMichael ZbyszyńskiDesign windowed processMZ is about to add a feature to RapidLib to allow users to run "continuous" processing on a window of input frames. In other words, this function gets input data frame-by-frame and buffers it into the right size series and calls dtw.run(...MZ is about to add a feature to RapidLib to allow users to run "continuous" processing on a window of input frames. In other words, this function gets input data frame-by-frame and buffers it into the right size series and calls dtw.run() every n number of frames.
Since this is going to co-exist with similar functions in Rapid-Mix API, we should come up with some general design for this kind of use.
@francisco This is basically what is happening when GVF is in following mode. AFAIK, GVF only does following -- there is no discreet mode for processing a pre-recorded input series.
@Joseph I think that hhmm.filter() is the same type of function as GVF.update() for continuous recognition?
This suggests to me that RapidLib/DTW should handle its own windowing.
I did consider a design that was some kind of windowedML object. That might take a pointer to a specific model and some window parameters. So something like:
```
temporalClassification myModel;
windowedMLObject myWindowThing(*myModel, <window size>, <hopsize>);
myWindowThing.continuousProcessMethod(<new data frame>);
```
That would need better names.
Is there any value in having this kind of object in the RAPID-MIX API?
I'll tag @rebeccaf and @FredB here, too,Michael ZbyszyńskiMichael Zbyszyński