RAPID-MIX_API issueshttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues2017-12-01T08:55:48Zhttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/40Composition vs CRTP2017-12-01T08:55:48ZMichael ZbyszyńskiComposition vs CRTPMZ and Fabian discussed that JUCE users would be uncomfortable with the use of templates in the machine learning class.
We could use composition and a factory, which would probably be more familiar C++. Also, we could then do things l...MZ and Fabian discussed that JUCE users would be uncomfortable with the use of templates in the machine learning class.
We could use composition and a factory, which would probably be more familiar C++. Also, we could then do things like ```temporalClassification(HMM)``` rather than ```xmmTemporalClassification()```
It's probably not worth it to rewrite this class right now.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/41Link to Unity wrapper on website2017-11-27T17:59:33ZMichael ZbyszyńskiLink to Unity wrapper on websiteI swear there was a link on the website...I swear there was a link on the website...Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/42Document audio/signal processing on the website2017-10-24T10:55:01ZMichael ZbyszyńskiDocument audio/signal processing on the websiteWe need another page about basic signal processing and feature extraction on incoming audio.
Also, some explanation synthesis and sample playback using MaxiLib.We need another page about basic signal processing and feature extraction on incoming audio.
Also, some explanation synthesis and sample playback using MaxiLib.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/43Adopting conventions or standardised ML terms to address types/classes in the...2017-11-01T12:19:09ZFrancisco BernardoAdopting conventions or standardised ML terms to address types/classes in the RAPID-MIX APIOne of the principles established by D. Norman is the importance of establishing standards in order to facilitate adoption. In our case there is an interest to also support a general purpose goal.
"Example", "Feature" have been establis...One of the principles established by D. Norman is the importance of establishing standards in order to facilitate adoption. In our case there is an interest to also support a general purpose goal.
"Example", "Feature" have been established and used for a long time now. Check these:
http://robotics.stanford.edu/~ronnyk/glossary.html
https://cacm.acm.org/magazines/2012/10/155531-a-few-useful-things-to-know-about-machine-learning/fulltexthttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/44User finds functions that won't work2017-12-01T09:02:40ZMichael ZbyszyńskiUser finds functions that won't workThere are multiple unspecialized run methods in machinelearning.h that are potentially confusing to users.
This could be fixed by specialization, or by moving to a different wrapper based on composition.There are multiple unspecialized run methods in machinelearning.h that are potentially confusing to users.
This could be fixed by specialization, or by moving to a different wrapper based on composition.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/45xmmTool errors when building shared library2017-11-29T14:31:33ZMichael ZbyszyńskixmmTool errors when building shared libraryIf I change line92 of CMakeLists.txt from this
```
add_library(RAPID-MIX_API ${RAPIDMIX_FULL_SRC})
```
to this
```
add_library(RAPID-MIX_API SHARED ${RAPIDMIX_FULL_SRC})
```
then the project should build a shared library.
But, XMM throw...If I change line92 of CMakeLists.txt from this
```
add_library(RAPID-MIX_API ${RAPIDMIX_FULL_SRC})
```
to this
```
add_library(RAPID-MIX_API SHARED ${RAPIDMIX_FULL_SRC})
```
then the project should build a shared library.
But, XMM throws a bunch of linker errors, like this:
`
Undefined symbols for architecture x86_64:
"xmmTool<xmm::GMM, xmm::GMM>::train(rapidmix::trainingData const&)", referenced from:
vtable for xmmTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
vtable for rapidXmmGmm in rapidMixTest.cpp.o
vtable for xmmStaticTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
"xmmTool<xmm::GMM, xmm::GMM>::getJSON()", referenced from:
vtable for rapidmix::machineLearning<rapidXmmGmm> in rapidMixTest.cpp.o
vtable for xmmTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
vtable for rapidXmmGmm in rapidMixTest.cpp.o
vtable for xmmStaticTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
"xmmTool<xmm::GMM, xmm::GMM>::putJSON(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
vtable for rapidmix::machineLearning<rapidXmmGmm> in rapidMixTest.cpp.o
vtable for xmmTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
vtable for rapidXmmGmm in rapidMixTest.cpp.o
vtable for xmmStaticTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
"xmmTool<xmm::GMM, xmm::GMM>::readJSON(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
_main in rapidMixTest.cpp.o
vtable for rapidmix::machineLearning<rapidXmmGmm> in rapidMixTest.cpp.o
vtable for xmmTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
vtable for rapidXmmGmm in rapidMixTest.cpp.o
vtable for xmmStaticTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
"xmmTool<xmm::GMM, xmm::GMM>::writeJSON(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
_main in rapidMixTest.cpp.o
vtable for rapidmix::machineLearning<rapidXmmGmm> in rapidMixTest.cpp.o
vtable for xmmTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
vtable for rapidXmmGmm in rapidMixTest.cpp.o
vtable for xmmStaticTool<xmm::GMM, xmm::GMM> in rapidMixTest.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
`Joseph LarraldeJoseph Larraldehttps://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/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/48template/typedef function calls2017-11-28T14:14:38ZMichael Zbyszyńskitemplate/typedef function callsIt would be nice if RAPID-MIX could work with floats or doubles.
```
typedef float rapidmixValue;
```
??
Or, with templates?It would be nice if RAPID-MIX could work with floats or doubles.
```
typedef float rapidmixValue;
```
??
Or, with templates?https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/49Change GVF return data2017-12-06T16:09:28ZMichael ZbyszyńskiChange GVF return dataRight now, GVF is putting likeliest gesture, likelihoods, and alignments into on flat vector. This is a potentially confusing design that could be improved. Either all of the machine learning algorithms should return a struct (issue #15...Right now, GVF is putting likeliest gesture, likelihoods, and alignments into on flat vector. This is a potentially confusing design that could be improved. Either all of the machine learning algorithms should return a struct (issue #15), or GVF should return the likeliest gesture and the other data could be retrieved with get() functions.Francisco BernardoFrancisco Bernardohttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/50CoMo mouse gestures example on RAPIDMIXAPI.com is failing2017-12-05T21:24:34ZFrancisco BernardoCoMo mouse gestures example on RAPIDMIXAPI.com is failingConsole log
mano-js.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
18:52:04.380 TvxRn6zBXqokfk7jY:6 Uncaught ReferenceError: mano is not defined
at TvxRn6zBXqokfk7jY:6Console log
mano-js.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
18:52:04.380 TvxRn6zBXqokfk7jY:6 Uncaught ReferenceError: mano is not defined
at TvxRn6zBXqokfk7jY:6Joseph LarraldeJoseph Larraldehttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/51Hello world broken on develop2017-12-06T15:03:45ZMichael ZbyszyńskiHello world broken on developNot only is Hello World lame, #18, but it seems broken on develop. It's not finding Pipo.
Maybe we should remake it with CMake and forget about XCode?Not only is Hello World lame, #18, but it seems broken on develop. It's not finding Pipo.
Maybe we should remake it with CMake and forget about XCode?https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/52JUCE example buggy2017-12-13T14:23:03ZMichael ZbyszyńskiJUCE example buggySam has demonstrated on his machine that the JUCE example seems to be failing to record training data. When he goes through the steps of holding the space bar and moving the mouse, it complains that there isn't any data.
I'm not able to...Sam has demonstrated on his machine that the JUCE example seems to be failing to record training data. When he goes through the steps of holding the space bar and moving the mouse, it complains that there isn't any data.
I'm not able to reproduce this on my machine. He's using an older version of JUCE, and I'm using a tablet rather than the trackpad.https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/53Put homepage video behind a button2017-12-18T14:42:23ZMichael ZbyszyńskiPut homepage video behind a buttonIt is a little invasive to be hit by the "allow camera" dialog right on the front page of rapidmixapi.com.
Make it so the user has to click a button before the code in that iframe loads. Maybe like this:
```
<iframe src="http://jquery...It is a little invasive to be hit by the "allow camera" dialog right on the front page of rapidmixapi.com.
Make it so the user has to click a button before the code in that iframe loads. Maybe like this:
```
<iframe src="http://jquery.com/" id="myFrame" width="500" marginwidth="0" height="500" marginheight="0" align="middle" scrolling="auto"></iframe>
<button onclick="loadPages()">Click Me</button>
<script>
function loadPages(){
var loc = "http://es.learnlayout.com/display.html";
document.getElementById('myFrame').setAttribute('src', loc);
}
</script>
```Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/55Won't build on linux2020-05-28T08:41:23ZMatthew Yee-KingWon't build on linuxHi!
Trying to build this on Linux. eventually planning to end up on Raspberry pi.
What I did:
```
git clone http://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API.git
cd RAPID-MIX_API
. rmix_build_test.sh
```
The output:
```
warn...Hi!
Trying to build this on Linux. eventually planning to end up on Raspberry pi.
What I did:
```
git clone http://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API.git
cd RAPID-MIX_API
. rmix_build_test.sh
```
The output:
```
warning: redirecting to https://gitlab.doc.gold.ac.uk:443/rapid-mix/RAPID-MIX_API.git/
Already up-to-date.
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Performing Test COMPILER_SUPPORTS_CXX0X
-- Performing Test COMPILER_SUPPORTS_CXX0X - Success
-- No build type selected, default to Release
-- Configuring done
-- Generating done
-- Build files have been written to: /home/scratch/src/misc/RAPID-MIX_API/build
Scanning dependencies of target RAPID-MIX_API
[ 1%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/src/machineLearning/machineLearning.cpp.o
[ 2%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/src/machineLearning/rapidGVF/rapidGVF.cpp.o
[ 4%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/src/machineLearning/rapidXMM/rapidXMM.cpp.o
[ 5%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/src/machineLearning/trainingData.cpp.o
[ 7%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/src/signalProcessing/rapidPiPoTools/rapidPiPoHost.cpp.o
[ 8%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/GVF/GVF.cpp.o
[ 10%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/Maximilian/maximilian.cpp.o
[ 11%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/Maximilian/libs/maxiFFT.cpp.o
[ 13%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/Maximilian/libs/fft.cpp.o
[ 14%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/pipo/sdk/src/host/PiPoHost.cpp.o
[ 15%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/pipo/modules/bayesfilter/src/BayesianFilter.cpp.o
[ 17%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/pipo/modules/bayesfilter/src/filter_utilities.cpp.o
[ 18%] Building CXX object CMakeFiles/RAPID-MIX_API.dir/dependencies/pipo/modules/collection/PiPoCollection.cpp.o
In file included from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/collection/PiPoCollection.cpp:42:0:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/sdk/src/host/PiPoGraph.h: In member function ‘bool PiPoGraph::parse(std::__cxx11::string)’:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/sdk/src/host/PiPoGraph.h:217:84: error: cannot convert ‘std::__cxx11::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >}’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)’
std::remove(this->representation.begin(), this->representation.end(), ' '),
^
In file included from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoBands.h:48:0,
from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/collection/PiPoCollection.cpp:45:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/util/rta_complex.h: At global scope:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/util/rta_complex.h:284:29: error: expected initializer before ‘rta_make_complex’
static inline rta_complex_t rta_make_complex(float real, float imag)
^~~~~~~~~~~~~~~~
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoBands.h: In member function ‘virtual int PiPoBands::frames(double, double, PiPoValue*, unsigned int, unsigned int)’:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/util/rta_complex.h:283:23: error: expected primary-expression before ‘float’
#define rta_complex_t float complex
^
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoBands.h:261:33: note: in expansion of macro ‘rta_complex_t’
spectrum[i] = cabsf(((rta_complex_t *) values)[i]);
^~~~~~~~~~~~~
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/util/rta_complex.h:283:23: error: expected ‘)’ before ‘float’
#define rta_complex_t float complex
^
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoBands.h:261:33: note: in expansion of macro ‘rta_complex_t’
spectrum[i] = cabsf(((rta_complex_t *) values)[i]);
^~~~~~~~~~~~~
In file included from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/collection/PiPoCollection.cpp:45:0:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoBands.h:261:61: error: expected ‘)’ before ‘;’ token
spectrum[i] = cabsf(((rta_complex_t *) values)[i]);
^
In file included from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/collection/PiPoCollection.cpp:49:0:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoConst.h: In constructor ‘PiPoConst::PiPoConst(PiPo::Parent*, PiPo*)’:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoConst.h:78:53: warning: passing NULL to non-pointer argument 1 of ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const allocator_type&) [with _Tp = float; _Alloc = std::allocator<float>; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<float>]’ [-Wconversion-null]
numCols(0), maxDescrNameLength(64), outValues(NULL)
^
In file included from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoFft.h:47:0,
from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/collection/PiPoCollection.cpp:53:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/signal/rta_fft.h: At global scope:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/signal/rta_fft.h:204:33: error: expected ‘,’ or ‘...’ before ‘*’ token
rta_complex_t * input, const unsigned int input_size,
^
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/signal/rta_fft.h:250:17: error: expected ‘,’ or ‘...’ before ‘*’ token
rta_complex_t * input, const int i_stride, const unsigned int input_size,
^
In file included from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/PiPoBiquad.h:54:0,
from /home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/collection/PiPoCollection.cpp:47:
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/signal/rta_biquad.h:575:26: warning: inline function ‘float rta_biquad_df1_stride(float, const float*, int, const float*, int, float*, int)’ used but never defined
extern inline rta_real_t rta_biquad_df1_stride(
^~~~~~~~~~~~~~~~~~~~~
/home/scratch/src/misc/RAPID-MIX_API/dependencies/pipo/modules/rta/src/signal/rta_biquad.h:614:26: warning: inline function ‘float rta_biquad_df2t_stride(float, const float*, int, const float*, int, float*, int)’ used but never defined
extern inline rta_real_t rta_biquad_df2t_stride(
^~~~~~~~~~~~~~~~~~~~~~
CMakeFiles/RAPID-MIX_API.dir/build.make:350: recipe for target 'CMakeFiles/RAPID-MIX_API.dir/dependencies/pipo/modules/collection/PiPoCollection.cpp.o' failed
make[2]: *** [CMakeFiles/RAPID-MIX_API.dir/dependencies/pipo/modules/collection/PiPoCollection.cpp.o] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/RAPID-MIX_API.dir/all' failed
make[1]: *** [CMakeFiles/RAPID-MIX_API.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
bash: ./rapidmixTest: No such file or directory
cp: cannot stat './helloRapidMix': No such file or directory
```Matthew Yee-KingMatthew Yee-King