本文整理汇总了C++中MarSystemManager类的典型用法代码示例。如果您正苦于以下问题:C++ MarSystemManager类的具体用法?C++ MarSystemManager怎么用?C++ MarSystemManager使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MarSystemManager类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
// thread code
void* run(void * arg)
{
thread_data* data = (thread_data*) arg;
MarSystemManager mng;
NetworkTCPSource* src = new NetworkTCPSource("src");
MarSystem* featureNetwork = mng.create("Series", "featureNetwork");
featureNetwork->addMarSystem(src);
featureNetwork->addMarSystem(mng.create("AudioSink", "sink"));
// featureNetwork->addMarSystem(mng.create("PlotSink", "psink"));
featureNetwork->updctrl("NetworkTCPSource/src/mrs_natural/dataPort", data->dataPort);
featureNetwork->updctrl("NetworkTCPSource/src/mrs_natural/controlsPort", data->controlsPort);
featureNetwork->linkctrl("mrs_bool/hasData", "NetworkTCPSource/src/mrs_bool/hasData");
src->refresh();
mrs_natural wc = 0;
mrs_real* controls = 0;
mrs_natural onSamples = featureNetwork->getctrl("mrs_natural/onSamples")->to<mrs_natural>();
// start the network
while ( featureNetwork->getctrl("mrs_bool/hasData")->to<mrs_bool>() ) {
try {
controls = featureNetwork->recvControls();
if ( controls != 0 ) {
// get some reference controls, so if they have changed we update them
mrs_natural inSamples = featureNetwork->getctrl("mrs_natural/inSamples")->to<mrs_natural>();
mrs_natural inObservations = featureNetwork->getctrl("mrs_natural/inObservations")->to<mrs_natural>();
mrs_real israte = featureNetwork->getctrl("mrs_real/israte")->to<mrs_real>();
if ( (mrs_natural)controls[1] != inSamples || (mrs_natural)controls[2] != inObservations
|| controls[3] != israte ) {
featureNetwork->updctrl("mrs_natural/inSamples", (mrs_natural)controls[1]);
featureNetwork->updctrl("mrs_natural/inObservations", (mrs_natural)controls[2]);
featureNetwork->updctrl("mrs_real/israte", controls[3]);
}
}
featureNetwork->tick(); // everything happens here
} catch ( SocketException e ) {
cerr << "Played " << wc << " slices of " << onSamples << " samples" << endl;
pthread_exit(NULL);
}
wc++;
}
cout << "played - " << wc << " slices of " << onSamples << " samples" << endl;
pthread_exit( NULL );
}
示例2: connect
Mapper::Mapper()
{
// Create the MarSystem network for playback.
MarSystemManager mng;
m_system = mng.create("Series", "pnet_");
m_system->addMarSystem(mng.create("SoundFileSource", "src"));
m_system->addMarSystem(mng.create("Gain", "gain"));
m_system->addMarSystem(mng.create("AudioSink", "dest"));
m_system->updControl("mrs_natural/inSamples", 2048);
m_system->linkControl("mrs_bool/hasData", "SoundFileSource/src/mrs_bool/hasData");
// Create a handy Qt wrapper for the MarSystem.
m_qsystem = new MarsyasQt::System(m_system);
// Get handles for all the controls.
m_fileControl = m_qsystem->control("SoundFileSource/src/mrs_string/filename");
m_gainControl = m_qsystem->control("Gain/gain/mrs_real/gain");
m_repetitionControl = m_qsystem->control("SoundFileSource/src/mrs_real/repetitions");
m_positionControl = m_qsystem->control("SoundFileSource/src/mrs_natural/pos");
m_sizeControl = m_qsystem->control("SoundFileSource/src/mrs_natural/size");
m_outputSampleRateControl = m_qsystem->control("SoundFileSource/src/mrs_real/osrate");
m_initAudioControl = m_qsystem->control("AudioSink/dest/mrs_bool/initAudio");
connect( &m_controlEmitTimer, SIGNAL(timeout()), this, SLOT(emitControlValues()) );
}
示例3: carfac_testing
void carfac_testing(string inAudioFileName)
{
cout << "carfac_testing" << endl;
cout << "inAudioFileName=" << inAudioFileName << endl;
MarSystemManager mng;
// Create the network
MarSystem* net = mng.create("Series", "net");
net->addMarSystem(mng.create("SoundFileSource", "src"));
MarSystem* carfac = mng.create("CARFAC", "carfac");
net->addMarSystem(carfac);
net->addMarSystem(mng.create("Gain", "gain"));
net->updControl("SoundFileSource/src/mrs_string/filename",inAudioFileName);
net->updControl("mrs_natural/inSamples",512);
// Just print the coefficients
carfac->updControl("mrs_bool/printcoeffs",true);
carfac->updControl("mrs_bool/printstate",false);
cout << carfac->toString();
// Just print the state
carfac->updControl("mrs_bool/printcoeffs",false);
carfac->updControl("mrs_bool/printstate",true);
for (int i = 0; i < 5; i++) {
net->tick();
cout << "@@@@@@@@@@@@@@@@@@@@@@@@ "<< i + 1 << " @@@@@@@@@@@@@@@@@@@@@@@@" << endl;
cout << carfac->toString();
}
}
示例4: system_from_script_file
static MarSystem *load_network( const string system_filename )
{
auto string_ends_with =
[]( const string & str, const string & ending ) -> bool
{
if (str.length() < ending.length())
return false;
return str.compare( str.length() - ending.length(), ending.length(), ending ) == 0;
};
MarSystem* system = 0;
if (string_ends_with(system_filename, ".mrs"))
{
#ifdef MARSYAS_HAS_SCRIPT
system = system_from_script_file(system_filename);
#endif
}
else if (string_ends_with(system_filename, ".mpl"))
{
ifstream system_istream(system_filename);
MarSystemManager mng;
system = mng.getMarSystem(system_istream);
}
else if (string_ends_with(system_filename, ".json"))
{
#ifdef MARSYAS_HAS_JSON
system = system_from_json_file(system_filename);
#endif
}
return system;
}
示例5: toy_with_arff_in_out
void
toy_with_arff_in_out(mrs_string in_name, mrs_string out_name)
{
MarSystemManager mng;
MarSystem *net = mng.create("Series", "net");
net->addMarSystem(mng.create("WekaSource", "src"));
net->addMarSystem(mng.create("WekaSink", "dest"));
net->updControl("WekaSource/src/mrs_string/filename", in_name);
net->updControl("WekaSink/dest/mrs_natural/nLabels",
net->getControl("WekaSource/src/mrs_natural/nClasses"));
net->updControl("WekaSink/dest/mrs_string/labelNames",
net->getControl("WekaSource/src/mrs_string/classNames"));
net->updControl("WekaSink/dest/mrs_bool/regression",
net->getControl("WekaSource/src/mrs_bool/regression"));
// must happen after setting the above controls
net->updControl("WekaSink/dest/mrs_string/filename", out_name);
while ( !net->getctrl("WekaSource/src/mrs_bool/done")->to<mrs_bool>() )
{
net->tick();
}
delete net;
}
示例6: newMidiInfo
void newMidiInfo()
{
/*
This function describes using the MidiInput object and MarControlPointers
to read midi controls in a loop. The disadvantage of this approach is that
MidiINput will only return the last midi value between buffers. Change the
buffer size you would like more precision and throughput for midi messages.
*/
MarSystemManager mng;
MarSystem* series = mng.create("Series", "series");
series->addMarSystem(mng.create("AudioSource","src"));
series->addMarSystem(mng.create("MidiInput","midiin"));
series->updctrl("mrs_real/israte", 44100.0);
series->updctrl("mrs_real/osrate", 44100.0);
// to change how often marsyas grabs messages change the buffersize
series->updctrl("AudioSource/src/mrs_natural/bufferSize", 64);
series->updctrl("AudioSource/src/mrs_bool/initAudio",true);
series->updctrl("MidiInput/midiin/mrs_bool/initmidi",true);
MarControlPtr b1 = series->getctrl("MidiInput/midiin/mrs_natural/byte1");
MarControlPtr b2 = series->getctrl("MidiInput/midiin/mrs_natural/byte2");
MarControlPtr b3 = series->getctrl("MidiInput/midiin/mrs_natural/byte3");
while(1)
{
const mrs_natural& byte1 = b1->to<mrs_natural>();
const mrs_natural& byte2 = b2->to<mrs_natural>();
const mrs_natural& byte3 = b3->to<mrs_natural>();
std::cout << "Byte 1: " << byte1 << " Byte 2: " << byte2 << " Byte 3: " << byte3 << endl;
series->tick();
}
}
示例7: MarSystemQtWrapper
MarBackend::MarBackend()
{
// make a typical Marsyas network:
MarSystemManager mng;
playbacknet = mng.create("Series", "playbacknet");
playbacknet->addMarSystem(mng.create("SoundFileSource", "src"));
playbacknet->addMarSystem(mng.create("Gain", "gain"));
playbacknet->addMarSystem(mng.create("AudioSink", "dest"));
playbacknet->updctrl("AudioSink/dest/mrs_bool/initAudio", true);
// wrap it up to make it pretend to be a Qt object:
mrsWrapper = new MarSystemQtWrapper(playbacknet);
mrsWrapper->start();
// make these pomrs_naturalers so that we can mrs_naturalerface with the network
// in a thread-safe manner:
filenamePtr = mrsWrapper->getctrl("SoundFileSource/src/mrs_string/filename");
gainPtr = mrsWrapper->getctrl("Gain/gain/mrs_real/gain");
positionPtr = mrsWrapper->getctrl("SoundFileSource/src/mrs_natural/pos");
// demonstrates information flow: Marsyas->Qt.
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(getBackendPosition()));
timer->start(1000);
}
示例8: sfplay
// Play a collection l of soundfiles
void sfplay(Collection l, mrs_natural offset, mrs_natural duration, mrs_real start, mrs_real length, mrs_real gain, mrs_real repetitions)
{
MRSDIAG("sendUDP.cpp - sendUDP");
int i;
// Load first soundfile in collection
string sfName = l.entry(0);
SoundFileSource* src = new SoundFileSource("src");
src->updctrl("mrs_string/filename", sfName);
// create the network sink
NetworkUDPSink* netSink = new NetworkUDPSink("netSink");
// update controls if they are passed on cmd line...
if ( host != EMPTYSTRING && port != 0 ) {
netSink->updctrl("mrs_string/host", host);
netSink->updctrl("mrs_natural/port", port);
}
if ( port != 0 && host == EMPTYSTRING ) {
cerr << "Please specify a hostname." << endl;
exit(1);
} else if ( port == 0 && host != EMPTYSTRING ) {
cerr << "Please specify a port." << endl;
exit(1);
}
AudioSink* auSink = new AudioSink("auSink");
// create playback network
MarSystemManager mn;
Series playbacknet("playbacknet");
playbacknet.addMarSystem(src);
playbacknet.addMarSystem(mn.create("Gain", "gt"));
playbacknet.addMarSystem(auSink);
playbacknet.addMarSystem(netSink);
playbacknet.updctrl("AudioSink/auSink/mrs_natural/nChannels", 1);
// output the MarSystem
cout << playbacknet << endl;
// refresh the connection...
netSink->refresh();
cout << "Connecting to host: " << netSink->getctrl("mrs_string/host");
cout << " on port: " << netSink->getctrl("mrs_natural/port") << endl;
// For each file in collection playback the sound
for (i=0; i < l.size(); i++)
{
sfName = l.entry(i);
sfplayFile(playbacknet, offset, duration,
start, length, gain, repetitions, sfName );
}
}
示例9: distance_matrix
void
distance_matrix()
{
if (!wekafname_Set()) return;
cout << "Distance matrix calculation using " << wekafname_ << endl;
wekafname_ = inputdir_ + wekafname_;
MarSystemManager mng;
MarSystem* net = mng.create("Series", "net");
MarSystem* wsrc = mng.create("WekaSource", "wsrc");
net->addMarSystem(wsrc);
//!!!: mode control
net->updControl("WekaSource/wsrc/mrs_string/validationMode", "OutputInstancePair");
net->updControl("WekaSource/wsrc/mrs_bool/normMaxMin", true);
net->updControl("WekaSource/wsrc/mrs_string/filename", wekafname_);
MarSystem* dmatrix = mng.create("SelfSimilarityMatrix", "dmatrix");
dmatrix->addMarSystem(mng.create("Metric", "dmetric"));
dmatrix->updControl("Metric/dmetric/mrs_string/metric", "euclideanDistance");
//!!!: lmartins: normalization can only be applied when we have all feature vectors in memory...
//... which is what we are trying to avoid here (having big realvecs in memory)...
//dmatrix->updControl("mrs_string/normalize", "MinMax");
net->addMarSystem(dmatrix);
//!!!: mode control
net->updControl("SelfSimilarityMatrix/dmatrix/mrs_natural/mode", 1); //FIXME: replace use of enum for strings?
//link controls between WekaSource and SelfSimilarityMatrix
net->linkControl("SelfSimilarityMatrix/dmatrix/mrs_natural/nInstances",
"WekaSource/wsrc/mrs_natural/nInstances");
net->linkControl("WekaSource/wsrc/mrs_realvec/instanceIndexes",
"SelfSimilarityMatrix/dmatrix/mrs_realvec/instanceIndexes");
ofstream oss;
oss.open(distancematrix_.c_str());
oss << "Marsyas-kea distance matrix" << endl;
while(!net->getctrl("SelfSimilarityMatrix/dmatrix/mrs_bool/done")->to<bool>())
{
const mrs_realvec& idxs = net->getctrl("SelfSimilarityMatrix/dmatrix/mrs_realvec/instanceIndexes")->to<mrs_realvec>();
oss << "(" << mrs_natural(idxs(0)) << "," << mrs_natural(idxs(1)) << ") = ";
net->tick();
const mrs_realvec& value = net->getctrl("mrs_realvec/processedData")->to<mrs_realvec>();
oss << value(0) << endl;
}
oss << endl;
}
示例10: main
int
main(int argc, const char **argv)
{
(void) argc; // tells the compiler that we know that we're not
(void) argv; // using these two variables
MRSDIAG("helloWorld.cpp - main");
// cout << "This is probably the simplest Marsyas example code: it simply
// generates a sine wave with a frequency of 440Hz and send it to the audio
// card output. Simple press CTRL+C to quit." << endl;
//we usualy start by creating a MarSystem manager
//to help us on MarSystem creation
MarSystemManager mng;
//create the network, which is a simple Series network with a sine wave
//oscilator and a audio sink object to send the ausio data for playing
//in the sound card
MarSystem *network = mng.create("Series", "network");
network->addMarSystem(mng.create("SineSource", "src"));
network->addMarSystem(mng.create("AudioSink", "dest"));
network->addMarSystem(mng.create("SoundFileSink", "dest2"));
//set the window (i.e. audio frame) size (in samples). Let's say, 256 samples.
//This is done in the outmost MarSystem (i.e. the Series/network) because flow
//controls (as is the case of inSamples) are propagated through the network.
//Check the Marsyas documentation for mode details.
network->updControl("mrs_natural/inSamples", 4096);
//set oscilator frequency to 440Hz
network->updControl("SineSource/src/mrs_real/frequency", 440.0);
// set the sampling to 44100 - a safe choice in most configurations
network->updControl("mrs_real/israte", 44100.0);
network->updControl("AudioSink/dest/mrs_bool/initAudio", true);
network->updControl("SoundFileSink/dest2/mrs_string/filename", "helloworld.wav");
//now it's time for ticking the network,
//ad aeternum (i.e. until the user quits by CTRL+C)
while (1)
{
network->tick();
}
//ok, this is not really necessary because we are quiting by CTRL+C,
//but it's a good habit anyway ;-)
delete network;
return(0);
}
示例11: toy_with_spectral_single
void
toy_with_spectral_single(mrs_string sfname)
{
MarSystemManager mng;
MarSystem *net = mng.create("Series", "net");
net->addMarSystem(mng.create("SoundFileSource", "src"));
net->addMarSystem(mng.create("ShiftInput", "si"));
net->addMarSystem(mng.create("Windowing", "win"));
net->addMarSystem(mng.create("Spectrum", "spec"));
net->addMarSystem(mng.create("PowerSpectrum", "pspec"));
net->updControl("SoundFileSource/src/mrs_string/filename", sfname);
net->updControl("mrs_natural/inSamples", 1024);
net->updControl("ShiftInput/si/mrs_natural/winSize", 1024);
net->updControl("Windowing/win/mrs_string/type", "Hanning");
MarSystem *fan = mng.create("Fanout", "fan");
net->addMarSystem(fan);
fan->addMarSystem(mng.create("SpectralFlatnessAllBands", "sfab"));
while ( net->getctrl("SoundFileSource/src/mrs_bool/hasData")->to<mrs_bool>() )
{
net->tick();
mrs_realvec v = net->getctrl("mrs_realvec/processedData")->to<mrs_realvec>();
for (mrs_natural i = 0; i<v.getSize(); ++i)
{
printf("%.5g\t", v(i));
}
cout<<endl;
}
delete net;
}
示例12: toy_with_null
// please keep this at the end of all the toy_with_ functions.
// to use, copy this and paste it above, then modify as needed
void
toy_with_null(mrs_string sfname)
{
MarSystemManager mng;
MarSystem *net = mng.create("Series", "net");
net->addMarSystem(mng.create("SoundFileSource", "src"));
net->addMarSystem(mng.create("ShiftInput", "si"));
// you probably want to add more here
net->addMarSystem(mng.create("Spectrum", "spec"));
net->addMarSystem(mng.create("PowerSpectrum", "pspec"));
net->addMarSystem(mng.create("Spectrum2Chroma", "s2c"));
net->addMarSystem(mng.create("PlotSink", "ps"));
net->updControl("SoundFileSource/src/mrs_string/filename", sfname);
net->updControl("mrs_natural/inSamples", 512);
net->updControl("mrs_natural/inSamples", 1024);
net->updControl("ShiftInput/si/mrs_natural/winSize", 512);
while ( net->getctrl("SoundFileSource/src/mrs_bool/hasData")->to<mrs_bool>() )
{
net->tick();
#if 0
mrs_realvec v = net->getctrl("mrs_realvec/processedData")->to<mrs_realvec>();
for (mrs_natural i = 0; i<v.getSize(); ++i)
{
printf("%.5g\t", v(i));
}
cout<<endl;
#endif
}
delete net;
}
示例13: toy_with_harmonicStrength
// ********************** start toys **********
void
toy_with_harmonicStrength(mrs_string sfname)
{
MarSystemManager mng;
MarSystem *net = mng.create("Series", "net");
net->addMarSystem(mng.create("SoundFileSource", "src"));
net->addMarSystem(mng.create("ShiftInput", "si"));
net->addMarSystem(mng.create("Windowing", "win"));
net->addMarSystem(mng.create("Spectrum", "spec"));
net->addMarSystem(mng.create("PowerSpectrum", "pspec"));
net->addMarSystem(mng.create("HarmonicStrength", "harm"));
net->updControl("SoundFileSource/src/mrs_string/filename", sfname);
net->updControl("mrs_natural/inSamples", 512);
net->updControl("ShiftInput/si/mrs_natural/winSize", 1024);
net->updControl("Windowing/win/mrs_string/type", "Hanning");
mrs_natural num_harmonics = 30;
realvec harmonics(num_harmonics);
/*
cout<<"---------------------------"<<endl;
cout<<"Relative harmonic strengths"<<endl;
for (mrs_natural h = 0; h<num_harmonics; ++h)
{
if (h==num_harmonics-1)
{
cout<<"0.5"<<"\t";
harmonics(h) = 0.5;
}
else
{
cout<<h<<"\t";
harmonics(h) = h+1;
}
}
cout<<endl;
*/
//net->updControl("HarmonicStrength/harm/mrs_realvec/harmonics", harmonics);
net->updControl("HarmonicStrength/harm/mrs_natural/harmonicsSize", num_harmonics);
net->updControl("HarmonicStrength/harm/mrs_real/harmonicsWidth", 0.0);
net->updControl("HarmonicStrength/harm/mrs_natural/type", 1);
net->updControl("HarmonicStrength/harm/mrs_real/base_frequency", 200.0);
// typical value for piano strings
net->updControl("HarmonicStrength/harm/mrs_real/inharmonicity_B", 2e-5);
while ( net->getctrl("SoundFileSource/src/mrs_bool/hasData")->to<mrs_bool>() )
{
net->tick();
mrs_realvec v = net->getctrl("mrs_realvec/processedData")->to<mrs_realvec>();
for (mrs_natural h = 0; h<num_harmonics; ++h)
{
//printf("%.2f\t", v(h));
printf("%.8g\t", v(h));
}
cout<<endl;
}
delete net;
}
示例14: record
void record(mrs_real length, mrs_real gain, string filename)
{
MarSystemManager mng;
MarSystem* recordNet = mng.create("Series", "recordNet");
MarSystem* asrc = mng.create("AudioSource", "asrc");
MarSystem* dest = mng.create("SoundFileSink", "dest");
recordNet->addMarSystem(asrc);
recordNet->addMarSystem(dest);
recordNet->updControl("mrs_natural/inSamples", 4096);
recordNet->updControl("mrs_real/israte", sropt);
recordNet->updControl("AudioSource/asrc/mrs_natural/nChannels", copt);
recordNet->updControl("AudioSource/asrc/mrs_real/gain", gain);
// Ready to initialize audio device
recordNet->updControl("AudioSource/asrc/mrs_bool/initAudio", true);
recordNet->updControl("SoundFileSink/dest/mrs_string/filename", filename);
mrs_real srate = recordNet->getctrl("mrs_real/israte")->to<mrs_real>();
mrs_natural nChannels = recordNet->getctrl("AudioSource/asrc/mrs_natural/nChannels")->to<mrs_natural>();
cout << "AudioSource srate = " << srate << endl;
cout << "AudioSource nChannels = " << nChannels << endl;
mrs_natural inSamples = recordNet->getctrl("mrs_natural/inSamples")->to<mrs_natural>();
mrs_natural iterations = (mrs_natural)((srate * length) / inSamples);
cout << "Iterations = " << iterations << endl;
for (mrs_natural t = 0; t < iterations; t++)
{
recordNet->tick();
}
}
示例15: MarSystemQtWrapper
void
MarOscInWindow::createNetwork()
{
MarSystemManager mng;
// create the overall network
net_ = mng.create("Series", "lpcSeries");
net_->addMarSystem(mng.create("SoundFileSource", "src"));
net_->addMarSystem(mng.create("Gain", "gain"));
MarSystem* dest = mng.create("AudioSink", "dest");
net_->addMarSystem(dest);
mwr_ = new MarSystemQtWrapper(net_, true);
initPtr_ = mwr_->getctrl("AudioSink/dest/mrs_bool/initAudio");
fnamePtr_ = mwr_->getctrl("SoundFileSource/src/mrs_string/filename");
gainPtr_ = mwr_->getctrl("Gain/gain/mrs_real/gain");
mwr_->updctrl("Gain/gain/mrs_real/gain",1.0);
}