Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.6 / 3....
  • Linux Kernel 3.0.82 LTS...
  • KDE Software Compilatio...
  • PulseAudio 4.0
  • Wireshark 1.10.0
  • NetworkManager 0.9.8.2
  • LibreOffice 3.6.6 / 4.0...
  • SystemRescueCd 3.7.0
  • Linux Kernel 3.10 RC6
  • Ubuntu Tweak 0.8.5
  • Home > Linux > Programming > Libraries

    Music::Scales 0.07

    Download button

    No screenshots available
    Downloads: 422  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Ben Daglish | More programs
    Perl Artistic License / FREE
    August 11th, 2007, 15:05 GMT
    ROOT / Programming / Libraries

     Read user reviews (0)  Refer to a friend  Subscribe

    Music::Scales description

    Music::Scales can supply necessary notes / offsets for musical scales.

    Music::Scales can supply necessary notes / offsets for musical scales.

    SYNOPSIS

    use Music::Scales;

    my @maj = get_scale_notes('Eb'); # defaults to major
    print join(" ",@maj); # "Eb F G Ab Bb C D"
    my @blues = get_scale_nums('bl'); # 'bl','blu','blue','blues'
    print join(" ",@blues); # "0 3 5 6 7 10"
    my %min = get_scale_offsets ('G','mm',1); # descending melodic minor
    print map {"$_=$min{$_} "} sort keys %min; # "A=0 B=-1 C=0 D=0 E=-1 F=0 G=0"

    Given a keynote A-G(#/b) and a scale-name, will return the scale, either as an array of notenames or as a hash of semitone-offsets for each note.

    METHODS

    get_scale_nums($scale[,$descending])

    returns an array of semitone offsets for the requested scale, ascending/descending the given scale for one octave. The descending flag determines the direction of the scale, and also affects those scales (such as melodic minor) where the notes vary depending upon the direction. Scaletypes and valid values for $scale are listed below.

    get_scale_notes($notename[,$scale,$descending,$keypref])

    returns an array of notenames, starting from the given keynote. Enharmonic equivalencies (whether to use F# or Gb, for instance) are calculated based on the keynote and the scale. Basically, it attempts to do the Right Thing if the scale is an 8-note one, (the 7th in G harmonic minor being F# rather than Gb, although G minor is a 'flat' key), but for any other scales, (Chromatic, blues etc.) it picks equivalencies based upon the keynote. This can be overidden with $keypref, setting to be either '#' or 'b' for sharps and flats respectively. Cruftiness abounds here.

    get_scale_offsets($notename[,$scale,$descending,$keypref])

    as get_scale_notes(), except it returns a hash of notenames with the values being a semitone offset (-1, 0 or 1) as shown in the synopsis.

    get_scale_MIDI($notename,$octave[,$scale,$descending])

    as get_scale_notes(), but returns an array of MIDI note-numbers, given an octave number (-1..9).

    get_scale_PDL($notename,$octave[,$scale,$descending])

    as get_scale_MIDI(), but returns an array of PDL-format notes.

    is_scale($scalename)

    returns true if $scalename is a valid scale name used in this module.

    Requirements:

    · Perl



    Product's homepage

      


    TAGS:

    musical notes | musical scales | Perl module | musical | scales | notes

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM