Releases: jstrait/beats
v2.1.2
Several confusing/unhelpful errors shown due to an error in an input file have been improved. For example, if a pattern has the invalid name "4", the error message will now be Pattern name '4' is not valid. It must be a value that will be parsed from YAML as a String.
, instead of undefined method 'downcase' for 4:Integer
.
v2.1.1
-
Several error messages are improved to be more accurate or specific.
-
Bug fix: Songs can now use *.wav files with more than 2 channels. Previously, using a sound with more than 2 channels would cause a fatal
Invalid sample data array in AudioUtils.normalize()
error. -
Bug fix: If a sound is defined multiple times in a Kit, the final definition should be used as the winner. However, previously this did not occur if the earlier definition was for a composite sound. For example, with this Kit:
Kit: - sound: [sound1.wav, sound2.wav] - sound: sound3.wav
sound
will now be bound tosound3.wav
, not[sound1.wav, sound2.wav]
.
v2.1.0
This version adds support for composite sounds. That is, sounds that are made by combining two or more sounds together. They are a more succinct way of writing songs where multiple tracks play the same rhythm.
Composite sounds can be defined in the Kit by putting multiple sound files in an array:
Kit:
- bass: bass.wav # A traditional non-composite sound
- combo_snare: [clap.wav, 808_snare.wav] # A composite sound
The combo_snare
sound above is a composite sound made by combining clap.wav
and 808_snare.wav
together. It can then be used in a pattern:
Verse:
- bass: X.......X.......
- combo_snare: ....X.......X...
This is equivalent to the following song:
Kit:
- bass: bass.wav
- clap: clap.wav
- snare: 808_snare.wav
Verse:
- bass: X.......X.......
- clap: ....X.......X...
- snare: ....X.......X...
When using the -s
command-line option to write each track to its own *.wav file, each sub-sound in a composite sound will be written to its own file. For example, this song:
Kit:
- combo_snare: [clap.wav, 808_snare.wav]
Verse:
- combo_snare: X...X...X...X...
...will be written to two different files, combo_snare-clap.wav
and combo_snare-808_snare.wav
, when using the -s
option.
Finally, when defining a track in a pattern, multiple sounds can be given in an array as a composite sound. Kit sounds and non-Kit sounds can be used together:
Kit:
- bass: bass.wav
- combo_snare: [clap.wav, 808_snare.wav]
Verse:
- [bass, combo_snare, other_sound.wav]: X...X...X...X...
This is a equivalent to:
Kit:
- bass: bass.wav
- clap: clap.wav
- snare: 808_snare.wav
Verse:
- bass: X...X...X...X...
- clap: X...X...X...X...
- snare: X...X...X...X...
- other_sound.wav: X...X...X...X...
v2.0.0
This is primarily a modernization release, and contains some relatively small backwards incompatible changes.
- Track rhythms can now have spaces in them. For example,
X... .... X... ....
is now a valid rhythm. Spaces are ignored, and don't affect the rhythm. For example,X... X...
is treated as the same rhythm asX...X...
- Wave files using
WAVEFORMATEXTENSIBLE
format can now be used, due to upgrading the WaveFile gem dependency to v0.8.1 behind the scenes. - Installing the gem is now simpler, since it no longer requires installing the legacy
syck
YAML parser via an extension. - A
Fixnum is deprecated
message is no longer shown when using Ruby 2.4 - Backwards incompatible changes:
- Song files containing a
Structure
section are no longer supported. AFlow
section should be used instead. Support for theStructure
section has been deprecated since v1.2.1 (released in 2011). - Track rhythms can no longer start with a
|
character. For example,|X...X...
is no longer a valid rhythm. However, bar lines are still allowed to appear elsewhere in the rhythm. For example,X...X...|X...X...|
is a valid rhythm. The reason for this change is that a rhythm starting with|
is parsed as a YAML scalar block now that Beats is using the Psych YAML library behind the scenes. The fact that the old Syck YAML library didn't treat rhythms starting with a|
as a YAML scalar block appears to have been a bug in Syck?
- Song files containing a
- The minimum supported Ruby version is now 1.9.3, instead of 1.8.7
v1.3.0
- Songs can be swung (either by 8th note or 16th note), using the new
Swing
declaration in the song header. - Support for fractional tempos, such as 100.5
- Bug fix: When you run the
beats
command with no arguments, it now displays the help screen, rather than an error message.
v1.2.5
v1.2.4
v1.2.3
- Bug fix: You can now use
~
in sound file paths, and it will correctly expand to your home folder. (At least on UNIX OSes, I'm not sure if that works on Windows). - The new
--path
option allows setting the base path from which relative sound file paths are searched for.
v1.2.2
- Bug fix: Compatibility issues with Windows. Thanks to Luis Lavena for mentioning the problem and how to fix it.
- Bug fix: Return the correct status code when Beats terminates, to improve scriptability.
v1.2.1
- You can use the
|
character to represent bar lines in a track rhythm. This is optional, but often makes longer rhythms easier to read. - The
Structure
section of the song header is now calledFlow
. (You can still useStructure
for now, but you'll get a warning). - A pattern can contain multiple tracks that use the same sound. Previously, Beats would pick one of those tracks as the 'winner', and the other tracks wouldn't be played.
- Bug fix: A better error message is displayed if a sound file is in an unsupported format (such as MP3), or is not even a sound file.