Right now I have no threshold settings. I am simply looking at the top 10 values. I assume have some sort of thresshold will be necessary to ignore background noise (particularly when no pitch is present i.e. a rest). Maybe a threshold proportional to the maximum FFT value would work well. Any ideas?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There are a number thresholds in the implemented modules depending on which particular kind and stage you are talking about. You can look up the needed ones in the constants list or some in the manual. Most of them are properly documented in javadoc-style comments and can be found (among other things) here:
The basis for the thresholds is found from the reference works (AI books and articles describing the algorithms) or often empirically by trial-and-error. Perhaps we should improve the referencing in the manual and the code here.
-s
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What are the threshold values you used in the classification algorithms?
Right now I have no threshold settings. I am simply looking at the top 10 values. I assume have some sort of thresshold will be necessary to ignore background noise (particularly when no pitch is present i.e. a rest). Maybe a threshold proportional to the maximum FFT value would work well. Any ideas?
There are a number thresholds in the implemented modules depending on which particular kind and stage you are talking about. You can look up the needed ones in the constants list or some in the manual. Most of them are properly documented in javadoc-style comments and can be found (among other things) here:
http://marf.sourceforge.net/docs/marf/0.3.0.6/api-dev/constant-values.html
e.g.:
http://marf.sourceforge.net/docs/marf/0.3.0.6/api-dev/marf/Classification/Distance/DiffDistance.html#DEFAULT_ALLOWED_ERROR
http://marf.sourceforge.net/docs/marf/0.3.0.6/api-dev/marf/Classification/Distance/DiffDistance.html#DISTANCE_FACTOR
http://marf.sourceforge.net/docs/marf/0.3.0.6/api-dev/marf/Classification/Distance/HammingDistance.html#DEFAULT_ALLOWED_ERROR
http://marf.sourceforge.net/docs/marf/0.3.0.6/api-dev/marf/Classification/NeuralNetwork/NeuralNetwork.html#DEFAULT_EPOCH_NUMBER
http://marf.sourceforge.net/docs/marf/0.3.0.6/api-dev/marf/Classification/NeuralNetwork/NeuralNetwork.html#DEFAULT_MIN_ERROR
http://marf.sourceforge.net/docs/marf/0.3.0.6/api-dev/marf/Classification/NeuralNetwork/NeuralNetwork.html#DEFAULT_TRAINING_CONSTANT
...
and many others. Filters, feature extractors, other modules often have their own
thresholds, so you can look them up in there.
-s
I've looked into the documentation and found the threshold values, but what's the basis for using those thresholds? Thanks. =)
The basis for the thresholds is found from the reference works (AI books and articles describing the algorithms) or often empirically by trial-and-error. Perhaps we should improve the referencing in the manual and the code here.
-s