void pclType::init() { initOriginals(); setDecays(); }
int Shakers :: setupNum(int inst) { int i, rv = 0; StkFloat temp; if (inst == 1) { // Cabasa rv = inst; nObjects_ = CABA_NUM_BEADS; defObjs_[inst] = CABA_NUM_BEADS; setDecays(CABA_SOUND_DECAY, CABA_SYSTEM_DECAY); defDecays_[inst] = CABA_SYSTEM_DECAY; decayScale_[inst] = 0.97; nFreqs_ = 1; baseGain_ = CABA_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0] = temp; freqalloc_[0] = 0; setFreqAndReson(0,CABA_CENTER_FREQ,CABA_RESON); setFinalZs(1.0,-1.0,0.0); } else if (inst == 2) { // Sekere rv = inst; nObjects_ = SEKE_NUM_BEANS; defObjs_[inst] = SEKE_NUM_BEANS; this->setDecays(SEKE_SOUND_DECAY,SEKE_SYSTEM_DECAY); defDecays_[inst] = SEKE_SYSTEM_DECAY; decayScale_[inst] = 0.94; nFreqs_ = 1; baseGain_ = SEKE_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0] = temp; freqalloc_[0] = 0; this->setFreqAndReson(0,SEKE_CENTER_FREQ,SEKE_RESON); this->setFinalZs(1.0, 0.0, -1.0); } else if (inst == 3) { // Guiro rv = inst; nObjects_ = GUIR_NUM_PARTS; defObjs_[inst] = GUIR_NUM_PARTS; setDecays(GUIR_SOUND_DECAY,1.0); defDecays_[inst] = 0.9999; decayScale_[inst] = 1.0; nFreqs_ = 2; baseGain_ = GUIR_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp; freqalloc_[0] = 0; freqalloc_[1] = 0; freq_rand_[0] = 0.0; freq_rand_[1] = 0.0; setFreqAndReson(0,GUIR_GOURD_FREQ,GUIR_GOURD_RESON); setFreqAndReson(1,GUIR_GOURD_FREQ2,GUIR_GOURD_RESON2); ratchet_ = 0; ratchetPos_ = 10; } else if (inst == 4) { // Water Drops rv = inst; nObjects_ = WUTR_NUM_SOURCES; defObjs_[inst] = WUTR_NUM_SOURCES; setDecays(WUTR_SOUND_DECAY,WUTR_SYSTEM_DECAY); defDecays_[inst] = WUTR_SYSTEM_DECAY; decayScale_[inst] = 0.8; nFreqs_ = 3; baseGain_ = WUTR_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp; gains_[2]=temp; freqalloc_[0] = 1; freqalloc_[1] = 1; freqalloc_[2] = 1; freq_rand_[0] = 0.2; freq_rand_[1] = 0.2; freq_rand_[2] = 0.2; setFreqAndReson(0,WUTR_CENTER_FREQ0,WUTR_RESON); setFreqAndReson(1,WUTR_CENTER_FREQ0,WUTR_RESON); setFreqAndReson(2,WUTR_CENTER_FREQ0,WUTR_RESON); setFinalZs(1.0,0.0,0.0); } else if (inst == 5) { // Bamboo rv = inst; nObjects_ = BAMB_NUM_TUBES; defObjs_[inst] = BAMB_NUM_TUBES; setDecays(BAMB_SOUND_DECAY, BAMB_SYSTEM_DECAY); defDecays_[inst] = BAMB_SYSTEM_DECAY; decayScale_[inst] = 0.7; nFreqs_ = 3; baseGain_ = BAMB_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp; gains_[2]=temp; freqalloc_[0] = 1; freqalloc_[1] = 1; freqalloc_[2] = 1; freq_rand_[0] = 0.2; freq_rand_[1] = 0.2; freq_rand_[2] = 0.2; setFreqAndReson(0,BAMB_CENTER_FREQ0,BAMB_RESON); setFreqAndReson(1,BAMB_CENTER_FREQ1,BAMB_RESON); setFreqAndReson(2,BAMB_CENTER_FREQ2,BAMB_RESON); setFinalZs(1.0,0.0,0.0); } else if (inst == 6) { // Tambourine rv = inst; nObjects_ = TAMB_NUM_TIMBRELS; defObjs_[inst] = TAMB_NUM_TIMBRELS; setDecays(TAMB_SOUND_DECAY,TAMB_SYSTEM_DECAY); defDecays_[inst] = TAMB_SYSTEM_DECAY; decayScale_[inst] = 0.95; nFreqs_ = 3; baseGain_ = TAMB_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp*TAMB_SHELL_GAIN; gains_[1]=temp*0.8; gains_[2]=temp; freqalloc_[0] = 0; freqalloc_[1] = 1; freqalloc_[2] = 1; freq_rand_[0] = 0.0; freq_rand_[1] = 0.05; freq_rand_[2] = 0.05; setFreqAndReson(0,TAMB_SHELL_FREQ,TAMB_SHELL_RESON); setFreqAndReson(1,TAMB_CYMB_FREQ1,TAMB_CYMB_RESON); setFreqAndReson(2,TAMB_CYMB_FREQ2,TAMB_CYMB_RESON); setFinalZs(1.0,0.0,-1.0); } else if (inst == 7) { // Sleighbell rv = inst; nObjects_ = SLEI_NUM_BELLS; defObjs_[inst] = SLEI_NUM_BELLS; setDecays(SLEI_SOUND_DECAY,SLEI_SYSTEM_DECAY); defDecays_[inst] = SLEI_SYSTEM_DECAY; decayScale_[inst] = 0.9; nFreqs_ = 5; baseGain_ = SLEI_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp; gains_[2]=temp; gains_[3]=temp*0.5; gains_[4]=temp*0.3; for (i=0;i<nFreqs_;i++) { freqalloc_[i] = 1; freq_rand_[i] = 0.03; } setFreqAndReson(0,SLEI_CYMB_FREQ0,SLEI_CYMB_RESON); setFreqAndReson(1,SLEI_CYMB_FREQ1,SLEI_CYMB_RESON); setFreqAndReson(2,SLEI_CYMB_FREQ2,SLEI_CYMB_RESON); setFreqAndReson(3,SLEI_CYMB_FREQ3,SLEI_CYMB_RESON); setFreqAndReson(4,SLEI_CYMB_FREQ4,SLEI_CYMB_RESON); setFinalZs(1.0,0.0,-1.0); } else if (inst == 8) { // Stix1 rv = inst; nObjects_ = STIX1_NUM_BEANS; defObjs_[inst] = STIX1_NUM_BEANS; setDecays(STIX1_SOUND_DECAY,STIX1_SYSTEM_DECAY); defDecays_[inst] = STIX1_SYSTEM_DECAY; decayScale_[inst] = 0.96; nFreqs_ = 1; baseGain_ = STIX1_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; freqalloc_[0] = 0; setFreqAndReson(0,STIX1_CENTER_FREQ,STIX1_RESON); setFinalZs(1.0,0.0,-1.0); } else if (inst == 9) { // Crunch1 rv = inst; nObjects_ = CRUNCH1_NUM_BEADS; defObjs_[inst] = CRUNCH1_NUM_BEADS; setDecays(CRUNCH1_SOUND_DECAY,CRUNCH1_SYSTEM_DECAY); defDecays_[inst] = CRUNCH1_SYSTEM_DECAY; decayScale_[inst] = 0.96; nFreqs_ = 1; baseGain_ = CRUNCH1_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; freqalloc_[0] = 0; setFreqAndReson(0,CRUNCH1_CENTER_FREQ,CRUNCH1_RESON); setFinalZs(1.0,-1.0,0.0); } else if (inst == 10) { // Wrench rv = inst; nObjects_ = WRENCH_NUM_PARTS; defObjs_[inst] = WRENCH_NUM_PARTS; setDecays(WRENCH_SOUND_DECAY,1.0); defDecays_[inst] = 0.9999; decayScale_[inst] = 0.98; nFreqs_ = 2; baseGain_ = WRENCH_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp; freqalloc_[0] = 0; freqalloc_[1] = 0; freq_rand_[0] = 0.0; freq_rand_[1] = 0.0; setFreqAndReson(0,WRENCH_FREQ,WRENCH_RESON); setFreqAndReson(1,WRENCH_FREQ2,WRENCH_RESON2); ratchet_ = 0; ratchetPos_ = 10; } else if (inst == 11) { // Sandpapr rv = inst; nObjects_ = SANDPAPR_NUM_GRAINS; defObjs_[inst] = SANDPAPR_NUM_GRAINS; this->setDecays(SANDPAPR_SOUND_DECAY,SANDPAPR_SYSTEM_DECAY); defDecays_[inst] = SANDPAPR_SYSTEM_DECAY; decayScale_[inst] = 0.97; nFreqs_ = 1; baseGain_ = SANDPAPR_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0] = temp; freqalloc_[0] = 0; this->setFreqAndReson(0,SANDPAPR_CENTER_FREQ,SANDPAPR_RESON); this->setFinalZs(1.0, 0.0, -1.0); } else if (inst == 12) { // Cokecan rv = inst; nObjects_ = COKECAN_NUM_PARTS; defObjs_[inst] = COKECAN_NUM_PARTS; setDecays(COKECAN_SOUND_DECAY,COKECAN_SYSTEM_DECAY); defDecays_[inst] = COKECAN_SYSTEM_DECAY; decayScale_[inst] = 0.95; nFreqs_ = 5; baseGain_ = COKECAN_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp*1.8; gains_[2]=temp*1.8; gains_[3]=temp*1.8; gains_[4]=temp*1.8; freqalloc_[0] = 0; freqalloc_[1] = 0; freqalloc_[2] = 0; freqalloc_[3] = 0; freqalloc_[4] = 0; setFreqAndReson(0,COKECAN_HELMFREQ,COKECAN_HELM_RES); setFreqAndReson(1,COKECAN_METLFREQ0,COKECAN_METL_RES); setFreqAndReson(2,COKECAN_METLFREQ1,COKECAN_METL_RES); setFreqAndReson(3,COKECAN_METLFREQ2,COKECAN_METL_RES); setFreqAndReson(4,COKECAN_METLFREQ3,COKECAN_METL_RES); setFinalZs(1.0,0.0,-1.0); } else if (inst>12 && inst<20) { // Nextmug rv = inst; nObjects_ = NEXTMUG_NUM_PARTS; defObjs_[inst] = NEXTMUG_NUM_PARTS; setDecays(NEXTMUG_SOUND_DECAY,NEXTMUG_SYSTEM_DECAY); defDecays_[inst] = NEXTMUG_SYSTEM_DECAY; decayScale_[inst] = 0.95; nFreqs_ = 4; baseGain_ = NEXTMUG_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp*0.8; gains_[2]=temp*0.6; gains_[3]=temp*0.4; freqalloc_[0] = 0; freqalloc_[1] = 0; freqalloc_[2] = 0; freqalloc_[3] = 0; freqalloc_[4] = 0; freqalloc_[5] = 0; setFreqAndReson(0,NEXTMUG_FREQ0,NEXTMUG_RES); setFreqAndReson(1,NEXTMUG_FREQ1,NEXTMUG_RES); setFreqAndReson(2,NEXTMUG_FREQ2,NEXTMUG_RES); setFreqAndReson(3,NEXTMUG_FREQ3,NEXTMUG_RES); setFinalZs(1.0,0.0,-1.0); if (inst == 14) { // Mug + Penny nFreqs_ = 7; gains_[4] = temp; gains_[5] = temp*0.8; gains_[6] = temp*0.5; setFreqAndReson(4,PENNY_FREQ0,PENNY_RES); setFreqAndReson(5,PENNY_FREQ1,PENNY_RES); setFreqAndReson(6,PENNY_FREQ2,PENNY_RES); } else if (inst == 15) { // Mug + Nickel nFreqs_ = 6; gains_[4] = temp; gains_[5] = temp*0.8; gains_[6] = temp*0.5; setFreqAndReson(4,NICKEL_FREQ0,NICKEL_RES); setFreqAndReson(5,NICKEL_FREQ1,NICKEL_RES); setFreqAndReson(6,NICKEL_FREQ2,NICKEL_RES); } else if (inst == 16) { // Mug + Dime nFreqs_ = 6; gains_[4] = temp; gains_[5] = temp*0.8; gains_[6] = temp*0.5; setFreqAndReson(4,DIME_FREQ0,DIME_RES); setFreqAndReson(5,DIME_FREQ1,DIME_RES); setFreqAndReson(6,DIME_FREQ2,DIME_RES); } else if (inst == 17) { // Mug + Quarter nFreqs_ = 6; gains_[4] = temp*1.3; gains_[5] = temp*1.0; gains_[6] = temp*0.8; setFreqAndReson(4,QUARTER_FREQ0,QUARTER_RES); setFreqAndReson(5,QUARTER_FREQ1,QUARTER_RES); setFreqAndReson(6,QUARTER_FREQ2,QUARTER_RES); } else if (inst == 18) { // Mug + Franc nFreqs_ = 6; gains_[4] = temp*0.7; gains_[5] = temp*0.4; gains_[6] = temp*0.3; setFreqAndReson(4,FRANC_FREQ0,FRANC_RES); setFreqAndReson(5,FRANC_FREQ1,FRANC_RES); setFreqAndReson(6,FRANC_FREQ2,FRANC_RES); } else if (inst == 19) { // Mug + Peso nFreqs_ = 6; gains_[4] = temp; gains_[5] = temp*1.2; gains_[6] = temp*0.7; setFreqAndReson(4,PESO_FREQ0,PESO_RES); setFreqAndReson(5,PESO_FREQ1,PESO_RES); setFreqAndReson(6,PESO_FREQ2,PESO_RES); } } else if (inst == 20) { // Big Rocks nFreqs_ = 1; rv = inst; nObjects_ = BIGROCKS_NUM_PARTS; defObjs_[inst] = BIGROCKS_NUM_PARTS; setDecays(BIGROCKS_SOUND_DECAY,BIGROCKS_SYSTEM_DECAY); defDecays_[inst] = BIGROCKS_SYSTEM_DECAY; decayScale_[inst] = 0.95; baseGain_ = BIGROCKS_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; freqalloc_[0] = 1; freq_rand_[0] = 0.11; setFreqAndReson(0,BIGROCKS_FREQ,BIGROCKS_RES); setFinalZs(1.0,0.0,-1.0); } else if (inst == 21) { // Little Rocks nFreqs_ = 1; rv = inst; nObjects_ = LITLROCKS_NUM_PARTS; defObjs_[inst] = LITLROCKS_NUM_PARTS; setDecays(LITLROCKS_SOUND_DECAY,LITLROCKS_SYSTEM_DECAY); defDecays_[inst] = LITLROCKS_SYSTEM_DECAY; decayScale_[inst] = 0.95; baseGain_ = LITLROCKS_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; freqalloc_[0] = 1; freq_rand_[0] = 0.18; setFreqAndReson(0,LITLROCKS_FREQ,LITLROCKS_RES); setFinalZs(1.0,0.0,-1.0); } else if (inst == 22) { // Tuned Bamboo rv = inst; nObjects_ = TBAMB_NUM_TUBES; defObjs_[inst] = TBAMB_NUM_TUBES; setDecays(TBAMB_SOUND_DECAY, TBAMB_SYSTEM_DECAY); defDecays_[inst] = TBAMB_SYSTEM_DECAY; decayScale_[inst] = 0.7; nFreqs_ = 7; baseGain_ = TBAMB_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; gains_[1]=temp; gains_[2]=temp; gains_[3]=temp; gains_[4]=temp; gains_[5]=temp; gains_[6]=temp; freqalloc_[0] = 0; freqalloc_[1] = 0; freqalloc_[2] = 0; freqalloc_[3] = 0; freqalloc_[4] = 0; freqalloc_[5] = 0; freqalloc_[6] = 0; freq_rand_[0] = 0.0; freq_rand_[1] = 0.0; freq_rand_[2] = 0.0; freq_rand_[3] = 0.0; freq_rand_[4] = 0.0; freq_rand_[5] = 0.0; freq_rand_[6] = 0.0; setFreqAndReson(0,TBAMB_CENTER_FREQ0,TBAMB_RESON); setFreqAndReson(1,TBAMB_CENTER_FREQ1,TBAMB_RESON); setFreqAndReson(2,TBAMB_CENTER_FREQ2,TBAMB_RESON); setFreqAndReson(3,TBAMB_CENTER_FREQ3,TBAMB_RESON); setFreqAndReson(4,TBAMB_CENTER_FREQ4,TBAMB_RESON); setFreqAndReson(5,TBAMB_CENTER_FREQ5,TBAMB_RESON); setFreqAndReson(6,TBAMB_CENTER_FREQ6,TBAMB_RESON); setFinalZs(1.0,0.0,-1.0); } else { // Maraca (inst == 0) or default rv = 0; nObjects_ = MARA_NUM_BEANS; defObjs_[0] = MARA_NUM_BEANS; setDecays(MARA_SOUND_DECAY,MARA_SYSTEM_DECAY); defDecays_[0] = MARA_SYSTEM_DECAY; decayScale_[inst] = 0.9; nFreqs_ = 1; baseGain_ = MARA_GAIN; temp = log(nObjects_) * baseGain_ / (StkFloat) nObjects_; gains_[0]=temp; freqalloc_[0] = 0; setFreqAndReson(0,MARA_CENTER_FREQ,MARA_RESON); setFinalZs(1.0,-1.0,0.0); } return rv; }