#!/usr/bin/perl -w use strict; my %notes_convertion = ( do => 'c', dos => 'cis', dod => 'cis', dob => 'ces', re => 'd', res => 'dis', red => 'dis', reb => 'des', mi => 'e', mis => 'eis', mid => 'eis', mib => 'ees', fa => 'f', fas => 'fis', fad => 'fis', fab => 'fes', sol => 'g', sols => 'gis', sold => 'gis', solb => 'ges', la => 'a', las => 'ais', lad => 'ais', lab => 'aes', si => 'b', sis => 'bis', sid => 'bis', sib => 'bes', ); my @musical_forms = qw!sonata minuit concert sonatine rondo invention aria sinfonia!; my ($pitch, $type, $time, $musical_form) = ("unknown") x 4; while(<>) { if ($pitch eq "unknown" && m!\\key (\w+)\s*\\(major|minor)!) { ($pitch, $type) = ($1,$2); $pitch = $notes_convertion{$pitch} if exists($notes_convertion{$pitch}); } if ($time eq "unknown" && m!\\time (\d+/\d+)!) { $time = $1; } for my $mf (@musical_forms) { if (m!$mf!) { $musical_form = $mf; } } } print "{ meta_pitch => '$pitch', meta_pitch_type => '$type', meta_time => '$time', meta_musical_form => '$musical_form' }\n";