Sha256: 37166ae2f2e58c1325e35e6a8dfeeae2921ec09709ad9b86140e5d059bc5fe29
Contents?: true
Size: 1.94 KB
Versions: 3
Compression:
Stored size: 1.94 KB
Contents
require 'rubygems' require 'rubyonacid/factories/meta' require 'rubyonacid/factories/constant' require 'rubyonacid/factories/flash' require 'rubyonacid/factories/loop' require 'rubyonacid/factories/modulo' 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 << RubyOnAcid::ModuloFactory.new(RubyOnAcid::LoopFactory.new(0.00001)) 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubyonacid-0.1.2 | examples/raw_audio.rb |
rubyonacid-0.1.1 | examples/raw_audio.rb |
rubyonacid-0.1.0 | examples/raw_audio.rb |