I am developing an application using the Marsyas-library.
I added some MarSystems to a "Series"-MarSystem. Now I want to add a MEL or BARK filter bank (band-pass filter) to calculate the energy of each band afterwards. I would use a "TriangularFilterBank" to da this but how do I setup a MEL filter bank using this MarSystem properly?
After that I want to access the pocessed data of of each band of two consecutive frames at once. How do you do that?
The code of the described scenario:
Marsyas::MarSystem *net = manager.create("Series", "net");
net->addMarSystem(manager.create("SoundFileSource","src"));
// ...
net->addMarSystem(manager.create("Windowing", "ham")); // creates "frames"
net->addMarSystem(manager.create("Spectrum", "spec"));
net->addMarSystem(manager.create("PowerSpectrum", "powerSpec"));
// How to add a mel filter band here? <---
net->addMarSystem(manager.create("Energy", "en"));
// ...
while (net->getctrl("SoundFileSource/src/mrs_bool/hasData")->to<Marsyas::mrs_bool>())
{
// This processes one frame at a time at the moment:
net->tick();
Marsyas::mrs_realvec vec = net->getctrl("mrs_realvec/processedData")->to<Marsyas::mrs_realvec>();
// How can I access the pocessed data of EACH band of WTO consecutive
// frames at ONCE here? <-- -
}
1.) How do I add a mel filter band to the system?
2.) How can I access the pocessed data of each band of two consecutive windows at once?