Sha256: 719b0eed1649e7def78161cc63737a3c8431523bd2d770aa1235196470582ee3

Contents?: true

Size: 940 Bytes

Versions: 1

Compression:

Stored size: 940 Bytes

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe SPCore::Envelope do
  it 'should produce an output that follows the amplitude of the input' do
    sample_rate = 400
    sample_count = sample_rate
    generator = SignalGenerator.new(:size => sample_count, :sample_rate => sample_rate)
    base_signal = generator.make_signal [sample_rate / 5.0]    
    modulation_signal = generator.make_signal [sample_rate / 80.0]
    base_signal.multiply! modulation_signal
    
    envelope = base_signal.envelope
    
    Plotter.new(
      :title => "signal and envelope",
      :xlabel => "sample",
      :ylabel => "values",
    ).plot_1d(
      "signal" => base_signal.data,
      "modulation" => modulation_signal.data,
      "envelope" => envelope.data,
    )
    
    max_diff = 0.1
    sample_count.times do |n|
      envelope.data[n].should be_within(max_diff).of(modulation_signal.data[n].abs)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spcore-0.1.8 spec/core/envelope_spec.rb