Stay in key, explore and listen to scales while staying in your comfy shell.
$ scalez d# blues
D# F# G# A A# C# D#
$ scalez a minor --sing
[Enchanting tune plays]
$ scalez --list
blues
dorian-mode
enigmatic
harmonic-minor
locrian-mode
lydian-mode
major
melodic-minor
minor
mixolydian-mode
neopolitan-major
neopolitan-minor
pentatonic-blues
pentatonic-major
pentatonic-minor
pentatonic-neutral
phrygian-mode
prometheus
romanian-minor
spanish-gypsy
super-locrian
You need a working Haskell installation (GHC + base, stack/cabal).
-
scalez uses sox for audio playback. So you have to install it:
- OSX
$ brew install sox
- Ubuntu
$ apt install sox
- Arch
$ pacman -S sox
- OSX
-
Install the
process
haskell package:cabal update && cabal install process
-
Clone this repo, compile and move scalez to your executables:
$ git clone https://github.com/nkleemann/scalez $ cd scalez $ ghc -o scalez Main.hs $ cp scalez /usr/local/bin/scalez
$ scalez <rootnote> <scalename> [--sing]
All notes are represented as lower- or uppercase letters. Black keys are represented with sharps:
C C# D D# E F F# G G# A A# B
You can find the list of all available scales by invoking: scalez --list
. The name you pass has to match - ignoring upper or lower case inputs.
If you want to listen to a specific scale you pass the --sing
flag at the end.
You can add a new scale by adding it to the scalez
Map in Scale.hs. A Scale is modelled after a fixed sequence of intervals/steps.
This is a WIP - I will extend the functionallity, clean up the architecture and install process and handle audio playback in a better way. Functionallity is verified under osx and gnu/linux.