Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Transpose guitar chords

by johngg (Canon)
on Feb 23, 2011 at 14:32 UTC ( [id://889797]=note: print w/replies, xml ) Need Help??


in reply to Transpose guitar chords

Being about as musical as a brick, I can't comment about how you transpose the notes. I do think you'd be better off setting up the array first and then deriving the hash from it rather than the other way around; it saves you having to sort. The no warnings qw{ qw }; is to silence warnings where Perl thinks we are trying to put comments inside a qw{ ... } list.

knoppix@Microknoppix:~$ perl -Mstrict -MData::Dumper -wE ' > my @notesArr = do { > no warnings qw{ qw }; > qw{ A A# B C C# D D# E F F# G G# }; > }; > my $value = 0; > my %notesHash = map { $_ => $value ++ } @notesArr; > print Data::Dumper->Dumpxs( > [ \ @notesArr, \ %notesHash ], > [ qw{ *notesArr *notesHash } ] > );' @notesArr = ( 'A', 'A#', 'B', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#' ); %notesHash = ( 'F' => 8, 'A' => 0, 'A#' => 1, 'C#' => 4, 'E' => 7, 'B' => 2, 'D#' => 6, 'C' => 3, 'D' => 5, 'G#' => 11, 'F#' => 9, 'G' => 10 ); knoppix@Microknoppix:~$

I hope this is of interest.

Cheers,

JohnGG

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://889797]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (4)
As of 2024-04-19 00:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found