LinSin::LinSin(MappingBase_InputsWithTypesOnly) throw() { UGen inputs[] = { MappingBase_InputsNoTypes }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); bool hasScalarRanges = inLow.isScalar() && inHigh.isScalar() && outLow.isScalar() && outHigh.isScalar(); if(hasScalarRanges == true) { for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new LinSinScalarUGenInternal(MappingBase_InputsNoTypes); internalUGens[i]->initValue(ugen::linsin(input.getValue(i), inLow.getValue(i), inHigh.getValue(i), outLow.getValue(i), outHigh.getValue(i))); } } else { for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new LinSinSignalUGenInternal(MappingBase_InputsNoTypes); internalUGens[i]->initValue(ugen::linsin(input.getValue(i), inLow.getValue(i), inHigh.getValue(i), outLow.getValue(i), outHigh.getValue(i))); } } }
Impulse::Impulse(Impulse_InputsWithTypesOnly) throw() { UGen inputs[] = { Impulse_InputsNoTypes }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new ImpulseUGenInternal(Impulse_InputsNoTypes); } }
Pause::Pause(Pause_InputsWithTypesOnly) throw() { UGen inputs[] = { Pause_InputsNoTypes }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new PauseUGenInternal(Pause_InputsNoTypes); internalUGens[i]->initValue(input.getValue(i) * level.getValue(i)); } }
Schmidt::Schmidt(UGen const& input, UGen const& lo, UGen const& hi) throw() { UGen inputs[] = { input, lo, hi }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new SchmidtUGenInternal(input, lo, hi); } }
LagUD::LagUD(UGen const& input, UGen const& lagTimeUp, UGen const& lagTimeDown) throw() { UGen inputs[] = { input, lagTimeUp, lagTimeDown }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new LagUDUGenInternal(input, lagTimeUp, lagTimeDown); internalUGens[i]->initValue(input.getValue(i)); } }
MulAdd::MulAdd(UGen const& input, UGen const& mul, UGen const& add) throw() { UGen inputs[] = { input, mul, add }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); ugen_assert(numInputChannels > 0); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new MulAddUGenInternal(input, mul, add); internalUGens[i]->initValue(input.getValue(i) * mul.getValue(i) + add.getValue(i)); } }
BAllPass::BAllPass(UGen const& input, UGen const& freq, UGen const& rq) throw() { UGen inputs[] = { input, freq, rq }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { BEQBaseUGenInternal* filter = new BAllPassUGenInternal(input, freq, rq); filter->calculateCoeffs(freq.getValue(i), rq.getValue(i), 1.f); filter->initValue(input.getValue(i)); internalUGens[i] = filter; } }
BHiShelf::BHiShelf(UGen const& input, UGen const& freq, UGen const& rs, UGen const& gain) throw() { UGen inputs[] = { input, freq, rs, gain }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { BEQBaseUGenInternal* filter = new BHiShelfUGenInternal(input, freq, rs, gain); filter->calculateCoeffs(freq.getValue(i), rs.getValue(i), gain.getValue(i)); filter->initValue(input.getValue(i) * gain.getValue(i)); internalUGens[i] = filter; } }
SAH::SAH(UGen const& input, UGen const& trig) throw() { UGen inputs[] = { input, trig }; const int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); initInternal(numInputChannels); for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new SAHUGenInternal(input, trig); if(trig.getValue(i) <= 0.f) internalUGens[i]->initValue(0.f); else internalUGens[i]->initValue(input.getValue(i)); } }
Map::Map(MapTableBase_InputsWithTypesAndDefaults) throw() { UGen inputs[] = { input, inLow, inHigh }; int numInputChannels = findMaxInputChannels(numElementsInArray(inputs), inputs); if(table.getNumChannels() > numInputChannels) numInputChannels = table.getNumChannels(); initInternal(numInputChannels); bool hasScalarRanges = inLow.isScalar() && inHigh.isScalar(); if(hasScalarRanges == true) { for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new MapTableScalarUGenInternal(MapTableBase_InputsNoTypes); float inLowValue = inLow.getValue(i); float inRange = inHigh.getValue(i) - inLowValue; float tableIndex = (input.getValue(i) - inLowValue) * table.size() / inRange; internalUGens[i]->initValue(table.getSampleUnchecked(i, tableIndex)); } } else { for(unsigned int i = 0; i < numInternalUGens; i++) { internalUGens[i] = new MapTableSignalUGenInternal(MapTableBase_InputsNoTypes); float inLowValue = inLow.getValue(i); float inRange = inHigh.getValue(i) - inLowValue; float tableIndex = (input.getValue(i) - inLowValue) * table.size() / inRange; internalUGens[i]->initValue(table.getSampleUnchecked(i, tableIndex)); } } }