A mixture of music related methods.
Install locally
git clone [email protected]:jwoertink/medley.git
cd medley/
icr -r ./src/medley.cr
or add as a dependecy to your project
dependencies:
medley:
github: jwoertink/medley
branch: master
require "medley"
# Play with a note
note = Medley::Note.new("G")
puts note.halfstep_up # => "G#"
puts note.wholestep_up # => "A"
puts note.sharp? #=> false
puts note.natural? #=> true
puts note.next_root #=> "A"
puts note.halfstep_down #=> "Gb"
puts note.name #=> "G"
other_note = Medley::Note.new("G#")
other_note.root_matches?(note) #=> true
# Play with a scale
scale = Medley::Scale.new("Cmaj")
scale.notes #=> ["C", "D", "E", "F", "G", "A", "B", "C"]
# Get the flats or sharps from a key of a scale
scale = Medley::Scale.new("Bbmaj")
scale.key.flats #=> ["Bb", "Eb"]
# Learn note patterns from a scale
scale = Medley::Scale.new("Cmaj")
scale.pattern(1, 6, 4, 5) #=> ["C", "A", "F", "G"]
crystal spec
- Fork it ( https://github.com/jwoertink/medley/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- jwoertink Jeremy Woertink - creator, maintainer