void Sampler::preview_instrument( Instrument* instr ) { Instrument * old_preview; AudioEngine::get_instance()->lock( RIGHT_HERE ); stop_playing_notes( __preview_instrument ); old_preview = __preview_instrument; __preview_instrument = instr; Note *previewNote = new Note( __preview_instrument, 0, 1.0, 0.5, 0.5, MAX_NOTES, 0 ); note_on( previewNote ); // exclusive note AudioEngine::get_instance()->unlock(); delete old_preview; }
/// Preview, uses only the first layer void Sampler::preview_sample( Sample* sample, int length ) { AudioEngine::get_instance()->lock( RIGHT_HERE ); InstrumentLayer *pLayer = __preview_instrument->get_layer( 0 ); Sample *pOldSample = pLayer->get_sample(); pLayer->set_sample( sample ); Note *previewNote = new Note( __preview_instrument, 0, 1.0, 0.5, 0.5, length, 0 ); stop_playing_notes( __preview_instrument ); note_on( previewNote ); delete pOldSample; AudioEngine::get_instance()->unlock(); }
/// Preview, uses only the first layer void Sampler::preview_sample( Sample* sample, int length ) { AudioEngine::get_instance()->lock( RIGHT_HERE ); for (std::vector<InstrumentComponent*>::iterator it = __preview_instrument->get_components()->begin() ; it != __preview_instrument->get_components()->end(); ++it) { InstrumentComponent* pComponent = *it; InstrumentLayer *pLayer = pComponent->get_layer( 0 ); pLayer->set_sample( sample ); Note *pPreviewNote = new Note( __preview_instrument, 0, 1.0, 0.5, 0.5, length, 0 ); stop_playing_notes( __preview_instrument ); note_on( pPreviewNote ); } AudioEngine::get_instance()->unlock(); }