Sha256: a8ccccb2f6a4b78cb52edf92a03b6457f01d302e4b7cc94b6ddb50c1ab5b617b
Contents?: true
Size: 1.81 KB
Versions: 1
Compression:
Stored size: 1.81 KB
Contents
require 'rubygems' require 'rubyonacid/factories/meta' require 'rubyonacid/factories/constant' require 'rubyonacid/factories/flash' require 'rubyonacid/factories/loop' require 'rubyonacid/factories/random' require 'rubyonacid/factories/repeat' require 'rubyonacid/factories/sine' require 'rubyonacid/factories/skip' def generate_factories random_factory = RubyOnAcid::RandomFactory.new factory_pool = [] #Loop factories loop from 0.0 to 1.0 (or 1.0 to 0.0 if the increment value is negative). factory_pool << RubyOnAcid::LoopFactory.new(random_factory.within(:increment, -0.01, 0.01)) #Constant factories always return the same value, factory_pool << RubyOnAcid::ConstantFactory.new(rand) factory_pool << RubyOnAcid::ConstantFactory.new(rand) factory_pool << RubyOnAcid::FlashFactory.new(rand(100)) #Sine factories produce a "wave" pattern. factory_pool << RubyOnAcid::SineFactory.new(random_factory.within(:increment, -0.01, 0.01)) factory_pool << RubyOnAcid::RepeatFactory.new( RubyOnAcid::LoopFactory.new(random_factory.within(:increment, -0.1, 0.1)), random_factory.within(:interval, 2, 100) ) factory_pool << RubyOnAcid::RepeatFactory.new( RubyOnAcid::SineFactory.new(random_factory.within(:increment, -0.1, 0.1)), random_factory.within(:interval, 2, 100) ) factory_pool end #A skip factory, in charge of randomly resetting the meta factory. @resetter = RubyOnAcid::SkipFactory.new(0.99995) factory = RubyOnAcid::MetaFactory.new factory.factory_pool = generate_factories File.open("raw_audio.dat", "w") do |file| loop do channel_count = factory.within(:chanel_count, 0, 3).to_i channel_count.times do |i| file.putc factory.within(i, 0, 255).to_i end if @resetter.boolean(:reset) factory.factory_pool = generate_factories factory.reset_assignments end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubyonacid-0.2.0 | examples/raw_audio.rb |