Example #1
0
bool SamplerProcessor::addSample(String path, int root_note, int note_low, int note_high, Array<int>& group, PlaySettings* p, std::pair<int, int> v, RoundRobinPlayback* r, int rr){
	ScopedPointer<AudioFormatReader> audioReader(formatManager.createReaderFor(File(path)));
	if (audioReader == nullptr){
		return false;
	}
	BigInteger allNotes;
	for (int i = note_low; i<note_high; i++){
		allNotes.setBit(i);
	}
	SampleSound* ss;
	synth.addSound(ss = new SampleSound("demo sound", *audioReader,
		allNotes, root_note,
		0.0, 0.0, 10.0, group, fx_selector, tf_selector, this, v));
	ss->setSampleStart(p->getSampleStart());
	ss->setReleaseStart(p->getReleaseStart());
	ss->setReleaseTime(p->getReleaseTime());
	ss->setReleaseCurve(p->getReleaseCurve());
	ss->setLoopMode(p->getLoopMode());
	ss->setReleaseMode(p->getReleaseMode());
	ss->setLoopStart(p->getLoopStart());
	ss->setLoopEnd(p->getLoopEnd());
	ss->setXfadeLength(p->getXfadeLength());
	ss->setXfadeCurve(p->getXfadeCurve());
	ss->setRoundRobinProcessor(r);

	if (rr != -1){
		ss->setRoundRobin(rr);
	}

	groups[group[0]]->add(ss);
	audioReader = nullptr;
	return true;
}
Example #2
0
void DrumMachine::setDrumSound(String soundName, File sample) {
    WavAudioFormat wavFormat;
    
    ScopedPointer<AudioFormatReader> audioReader(wavFormat.createReaderFor(new FileInputStream(sample), true));
    
    BigInteger notes;
    notes.setRange(lastNote, 1, true);
    
    synth.addSound(new SamplerSound(soundName, *audioReader, notes,
                                    lastNote,   // root midi note
                                    0.0,  // attack time
                                    0.0,  // release time
                                    10.0  // maximum sample length
                                    ));
    
    soundToNote.set(soundName, lastNote++);
}