Class: WSK::Actions::GenSawtooth
- Inherits:
-
Object
- Object
- WSK::Actions::GenSawtooth
- Defined in:
- lib/WSK/Actions/GenSawtooth.rb
Instance Method Summary collapse
-
#execute(iInputData, oOutputData) ⇒ Object
Execute.
-
#get_nbr_samples(iInputData) ⇒ Object
Get the number of samples that will be written.
Instance Method Details
#execute(iInputData, oOutputData) ⇒ Object
Execute
- Parameters
-
iInputData (WSK::Model::InputData): The input data
-
oOutputData (Object): The output data to fill
- Return
-
Exception: An error, or nil if success
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/WSK/Actions/GenSawtooth.rb', line 31 def execute(iInputData, oOutputData) # Compute values used to create sawtooth lMaxValue = 2**(iInputData.Header.NbrBitsPerSample-1)-1 lMinValue = -2**(iInputData.Header.NbrBitsPerSample-1) lMiddleSample = iInputData.Header.SampleRate/2 # Create buffer lBuffer = [] iInputData.Header.SampleRate.times do |iIdxSample| iInputData.Header.NbrChannels.times do |iIdxChannel| if (iIdxSample < lMiddleSample) lBuffer << (iIdxSample*lMaxValue)/lMiddleSample else lBuffer << lMinValue+(lMiddleSample-iIdxSample)*lMinValue/(iInputData.Header.SampleRate-lMiddleSample) end end end # Write buffer oOutputData.pushBuffer(lBuffer) return nil end |
#get_nbr_samples(iInputData) ⇒ Object
Get the number of samples that will be written. This is called before execute, as it is needed to write the output file. It is possible to give a majoration: it will be padded with silence.
- Parameters
-
iInputData (WSK::Model::InputData): The input data
- Return
-
Integer: The number of samples to be written
20 21 22 |
# File 'lib/WSK/Actions/GenSawtooth.rb', line 20 def get_nbr_samples(iInputData) return iInputData.Header.SampleRate end |