Module: Wavify
- Defined in:
- lib/wavify.rb,
lib/wavify/cli.rb,
lib/wavify/dsl.rb,
lib/wavify/audio.rb,
lib/wavify/errors.rb,
lib/wavify/dsp/lfo.rb,
lib/wavify/version.rb,
lib/wavify/adapters.rb,
lib/wavify/sequencer.rb,
lib/wavify/codecs/raw.rb,
lib/wavify/codecs/wav.rb,
lib/wavify/dsp/filter.rb,
lib/wavify/codecs/aiff.rb,
lib/wavify/codecs/base.rb,
lib/wavify/codecs/flac.rb,
lib/wavify/core/format.rb,
lib/wavify/core/stream.rb,
lib/wavify/dsp/effects.rb,
lib/wavify/dsp/effects.rb,
lib/wavify/dsp/envelope.rb,
lib/wavify/dsp/headroom.rb,
lib/wavify/core/duration.rb,
lib/wavify/dsp/processor.rb,
lib/wavify/dsp/automation.rb,
lib/wavify/dsp/effects/eq.rb,
lib/wavify/dsp/oscillator.rb,
lib/wavify/codecs/registry.rb,
lib/wavify/sequencer/track.rb,
lib/wavify/sequencer/engine.rb,
lib/wavify/codecs/ogg_vorbis.rb,
lib/wavify/dsp/effects/delay.rb,
lib/wavify/sequencer/pattern.rb,
lib/wavify/core/sample_buffer.rb,
lib/wavify/dsp/effects/chorus.rb,
lib/wavify/dsp/effects/phaser.rb,
lib/wavify/dsp/effects/reverb.rb,
lib/wavify/dsp/loudness_meter.rb,
lib/wavify/dsp/effects/flanger.rb,
lib/wavify/dsp/effects/limiter.rb,
lib/wavify/dsp/effects/tremolo.rb,
lib/wavify/dsp/effects/vibrato.rb,
lib/wavify/dsp/effects/auto_pan.rb,
lib/wavify/dsp/effects/expander.rb,
lib/wavify/dsp/effects/bitcrusher.rb,
lib/wavify/dsp/effects/compressor.rb,
lib/wavify/dsp/effects/distortion.rb,
lib/wavify/dsp/effects/noise_gate.rb,
lib/wavify/dsp/effects/effect_base.rb,
lib/wavify/sequencer/note_sequence.rb,
lib/wavify/dsp/effects/effect_chain.rb,
lib/wavify/dsp/effects/soft_limiter.rb,
lib/wavify/dsp/effects/podcast_chain.rb,
lib/wavify/dsp/effects/stereo_widener.rb,
lib/wavify/dsp/effects/mastering_chain.rb,
lib/wavify/dsp/effects/envelope_controlled_effect.rb,
sig/dsl.rbs,
sig/dsp.rbs,
sig/core.rbs,
sig/audio.rbs,
sig/codecs.rbs,
sig/stream.rbs,
sig/wavify.rbs,
sig/effects.rbs,
sig/sequencer.rbs
Overview
Wavify is a pure Ruby audio processing toolkit with immutable transforms, multiple codecs, DSP primitives, and a small sequencing DSL.
Defined Under Namespace
Modules: Adapters, Codecs, Core, DSL, DSP, Sequencer Classes: Audio, BufferConversionError, CLI, CodecNotFoundError, DSPError, Error, FormatError, InvalidFormatError, InvalidNoteError, InvalidParameterError, InvalidPatternError, ProcessingError, SequencerError, StreamError, UnsupportedFormatError
Constant Summary collapse
- VERSION =
Gem version string (Semantic Versioning).
"0.2.0"- Effects =
Convenience alias for DSP::Effects.
DSP::Effects
Class Method Summary collapse
-
.build(output_path = nil, format: Core::Format::CD_QUALITY, tempo: 120, beats_per_bar: 4, swing: 0.5, default_bars: 1, random_seed: Random.new_seed, safe_paths: false) { ... } ⇒ Audio
Renders audio from the DSL and optionally writes it to disk.
- .ms(value) ⇒ Wavify::Core::Duration
- .seconds(value) ⇒ Wavify::Core::Duration
Class Method Details
.build(output_path = nil, format: Core::Format::CD_QUALITY, tempo: 120, beats_per_bar: 4, swing: 0.5, default_bars: 1, random_seed: Random.new_seed, safe_paths: false) { ... } ⇒ Audio
Renders audio from the DSL and optionally writes it to disk.
1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 |
# File 'lib/wavify/dsl.rb', line 1131 def build(output_path = nil, format: Core::Format::CD_QUALITY, tempo: 120, beats_per_bar: 4, swing: 0.5, default_bars: 1, random_seed: Random.new_seed, safe_paths: false, &block) song = DSL.build_definition( format: format, tempo: tempo, beats_per_bar: , swing: swing, default_bars: , random_seed: random_seed, safe_paths: safe_paths, &block ) audio = song.render(default_bars: ) audio.write(output_path) if output_path audio end |
.ms(value) ⇒ Wavify::Core::Duration
43 44 45 |
# File 'lib/wavify.rb', line 43 def self.ms(value) Core::Duration.new(value.to_f / 1000.0) end |
.seconds(value) ⇒ Wavify::Core::Duration
37 38 39 |
# File 'lib/wavify.rb', line 37 def self.seconds(value) Core::Duration.new(value) end |