Class: Beats::Transforms::SongSwinger
- Inherits:
-
Object
- Object
- Beats::Transforms::SongSwinger
- Defined in:
- lib/beats/transforms/song_swinger.rb
Defined Under Namespace
Classes: InvalidSwingRateError
Class Method Summary collapse
Class Method Details
.transform(song, swing_rate) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/beats/transforms/song_swinger.rb', line 6 def self.transform(song, swing_rate) validate_swing_rate(swing_rate) song.patterns.each do |pattern_name, pattern| swung_tracks = pattern.tracks.map do |track_name, track| if swing_rate == 8 Track.new(track.name, swing_8(track.rhythm)) elsif swing_rate == 16 Track.new(track.name, swing_16(track.rhythm)) end end song.patterns[pattern_name] = Pattern.new(pattern_name, swung_tracks) end song.tempo *= 1.5 song end |