Hi all,

for some musical analysis i want to map musical notes notated in Helmholtz pitch notation to MIDI note numbers.

I tried this:

#!/usr/bin/env perl + use warnings; use strict; use charnames qw(:full); use Data::Dump; # use utf8; binmode STDOUT, ":utf8"; my $flat = chr( charnames::vianame(qq(MUSIC FLAT SIGN)) ); my $sharp = chr( charnames::vianame(qq(MUSIC SHARP SIGN)) ); print qq( b$flat\n); print qq( a$sharp\n); my %helmholtz_to_midi = ( "a$sharp\/b$flat" => 70 ); dd \%helmholtz_to_midi; __END__

I get:

b♭
a♯
{ "a\x{266F}/b\x{266D}" => 70 }

But i want something like this:

{ "a♯/b♭" => 70 }

How can i do that?

Short and very simplified explanation why i need such strange keys:

Every musical note in the western system of music has at least two incarnations (there are many more, but i skip the details for the moment).

In this case this is b♭ or a♯. For example: if it is a♯, it may belong to the tonality of F♯ where the note is the major third.

But if written as b♭, the tonality may be F where it is a perfect fourth. It depends on the context.

Thank you very much for any hint and best regards, Karl

«The Crux of the Biscuit is the Apostrophe»


In reply to utf8 hash keys revisited: How can i use musical symbols as hash keys? by karlgoethebier

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.