#!/usr/bin/perl -w

# Convert Symantic QA4 ASCII export files to HenrysRecords.org XML.
#
# Copyright (C) 1997-2014  Karl Fogel <kfogel {_AT_} red-bean.com>
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# The Problem:
# ============
#
# When converting one of the .ASC files (i.e., essentially a direct
# export from the corresponding Q&A .DTF file, with a few trivial
# modifications) into a .XML file, we need to convert Henry's many
# idiosyncratic abbreviations to canonical expanded forms.  These
# include things like "VPO" for "Vienna Philharmonic Orchestra",
# "Str Qt" for "String Quartet", "Bar" for "Baritone", and many more.
#
# For most of these abbreviations, we can rely on the ORCH.ASC and
# INSTRUM.ASC files as guides (as represented in @orch_abbrevs and
# @instrum_abbrevs).  But two kinds of situations require special
# attention:
#
#   1. Some expansions are potentially dangerous because they
#      shouldn't always apply, e.g., "Va" is sometimes the instrument
#      "Viola", but sometimes the Italian verb for "Go".  When it
#      appears in a title, it's hard to determine automatically which
#      one is meant.
#
#      SOLUTION: The %suspicions hash in massage() flags these
#      dangerous words, and the %okay_titles hash lists the title
#      expansions we expect.  A similar process happens with the
#      %okay_soloists hash.
#
#   2. Some title or soloist fields are so complex that there's no way
#      to break their conversion into component parts.  We're better
#      off just treating such fields as a single opaque string and
#      expanding them manually.
#
#      SOLUTION: See the %gotcha_titles and %gotcha_soloists hashes.
#
# Also, some abbreviations appear in multiple kinds of fields; for
# these, we use the @common_abbrevs list.
# 
# Now you know why this script is more complex than anyone would expect.

use strict;

my $usage = "Usage: "
    . "'asc-to-xml.pl --TYPE < input > output'\n"
    . "...where TYPE is one of `song', `orchestral' `chamber', or `opera'.\n";

my $type = shift || die ($usage);
my @fields;

if ($type eq '--song')
{
  @fields = ("composer",
             "title",
             "soloists",
             "accompanist",
             "date",
             "conductor",
             "orchestra",
             "label_and_number",
             "timing",
             "live_studio",
             "lp_cd",
             "date_catalogued",
             "composer_involved",
             "filed_under");
}
elsif ($type eq '--chamber')
{
  @fields = ("composer",
             "title",
             "soloists",
             "conductor",
             "date",
             "hall",
             "label_and_number",
             "timing",
             "live_studio",
             "lp_cd",
             "filed_under",
             "date_catalogued",
             "composer_involved",
             "distinctive",
             "nationality");
}
elsif ($type eq '--orchestral')
{
  @fields = ("composer",
             "title",
             "soloists",
             "conductor",
             "orchestra",
             "date",
             "hall",
             "label_and_number",
             "timing",
             "live_studio",
             "lp_cd",
             "filed_under",
             "date_catalogued",
             "nationality",
             "composer_involved",
             "distinctive");
}
elsif ($type eq '--opera')
{
  @fields = ("composer",
             "title",
             "soloists",
             "conductor",
             "orchestra",
             "date",
             "label_and_number",
             "timing",
             "live_studio",
             "lp_cd",
             "filed_under",
             "date_catalogued",
             "composer_involved");
}
else
{
  die "Unknown type \"${type}\"\n";
}


# Abbreviations other than instrument abbreviations.
my @common_abbrevs = (["Ov",  "Overture"],
                      ["Sym", "Symphony"],
                      ["Con", "Concerto"],
                      ["Mvt", "Movement"],
                      ["Mvts", "Movements"],

                      # Yes, this sometimes happens.
                      ["Mvt1", "Movement 1"],
                      ["Mvt2", "Movement 2"],
                      ["Mvt3", "Movement 3"],
                      ["Mvt4", "Movement 4"],
                      ["Mvt5", "Movement 5"],
                      ["Mvt6", "Movement 6"],
                      ["Mvt7", "Movement 7"],
                      ["Mvt8", "Movement 8"],
                      ["Mvt9", "Movement 9"],

                      ["Hpschd", "Harpsichord"],
                      ["Hpsch", "Harpsichord"],
                      ["Qt",  "Quartet"],
                      ["Var", "Variations"],
                      # These two often appear in the <soloists> field.
                      ["Str Qt", "String Quartet"],
                      ["Str Qt\\.", "String Quartet"],
                      ["Sym Chor", "Symphony Chorus"],
                      ["Sym Chor\\.", "Symphony Chorus"]
                     );


# A list of 2-element lists, each element mapping an abbreviation
# onto an instrument name.  An abbreviation may appear multiple times,
# if there are multiple names for that instrument (see "DBs", for
# example).
my @instrum_abbrevs = ( ["Bar", "Baritone"],
                        ["Blk", "Balalaika"],
                        ["Br", "Brass"],
                        ["Bs", "Bass"],
                        ["Bsn", "Bassoon"],
                        ["Cbn", "Contrabassoon"],
                        ["Cbsn", "Contrabassoon"],
                        ["Ch", "Chamber Orchestra"],
                        ["Ch Orch", "Chamber Orchestra"],
                        ["Chor", "Chorus"],
                        ["Cl", "Clarinet"],
                        ["Cuo", "Continuo"],
                        ["Cy", "Cymbal(s)"],
                        ["DBs", "Contrabass"],
                        ["DBs", "Double Bass"],
                        ["DBs", "String Bass"],
                        ["EH", "English Horn"],
                        ["Fl", "Flute"],
                        ["Gtr", "Guitar"],
                        ["Hc", "Harpsichord"],
                        ["Hn", "Horn"],
                        ["Hp", "Harp"],
                        ["Ob", "Oboe"],
                        ["Orch", "Orchestra"],
                        ["Org", "Organ"],
                        ["Pcc", "piccolo"],
                        ["Perc", "Percussion"],
                        ["Pno", "Piano"],
                        ["Rdr", "Recorder"],
                        ["Sax", "Saxophone"],
                        ["Sop", "Soprano"],
                        ["Str", "Strings"],
                        ["Tb", "Tuba"],
                        ["Tbn", "Trombone"],
                        ["Ten", "Tenor"],
                        ["Tmp", "Tympani"],
                        ["Tpt", "Trumpet"],
                        ["V", "Violin"],
                        ["Va", "Viola"],
                        ["VaG", "Viola da Gamba"],
                        ["Vc", "Cello"],
                        ["WW", "Winds"],
                        ["WW", "Woodwinds"],
                        ["gtrs", "Guitars"],
                        ["kb", "Keyboard"],
                        ["ms", "Mezzo-Soprano"],
                        ["perc", "Percussion"]
                       );

# A list of 2-element lists, each element mapping an abbreviation
# onto an orchestra name.  An abbreviation may appear multiple times,
# if there are multiple names for that orchestra.
my $orch_abbrevs_file = "orch-abbrevs.txt";
open(ORCH_ABBREVS_FILE, $orch_abbrevs_file)
    || die("Could not open $orch_abbrevs_file");

my @orch_abbrevs = ();
while (my $line = <ORCH_ABBREVS_FILE>)
{
  my ($abbrev,$full_name) = split ':', $line;
  push(@orch_abbrevs, ([$abbrev, $full_name]));
}
close(ORCH_ABBREVS_FILE);

# Return a dictionary based on abbrev list ABBREVS.
#
# An abbrev list is a list of 2-element tuples; each tuple maps an
# abbreviation (string) onto an expansion (string), and an
# abbreviation may appear multiple times if it has multiple
# expansions.  The returned dictionary has each unique abbrev as a key,
# and the value is all the expansions, joined with ' / ' if there are
# more than one.
sub dictify_abbrevs()
{
  my $abbrevs_ref = shift;
  my @abbrevs = @$abbrevs_ref;
  my %dict;

  foreach my $mapping_ref (@abbrevs)
  {
    my @mapping = @$mapping_ref;
    my $abbrev = $mapping[0];
    my $expansion = $mapping[1];

    if (defined ($dict{$abbrev})) {
      $dict{$abbrev} = $dict{$abbrev} . ' / ' . $expansion;
    }
    else {
      $dict{$abbrev} = $expansion;
    }
    chomp($dict{$abbrev});
  }

  return \%dict;
}


# Keys are titles that the regular code would misexpand.  Values are
# what to use instead of the misexpansion.
my %gotcha_titles =
    ("Bar'khu"
     => "Bar'khu",
     "Con intimissimo sentimento: Landler 1"
     => "Con intimissimo sentimento: Landler 1",
     "Con intimissimo sentimento: Album Leaf"
     => "Con intimissimo sentimento: Album Leaf",
     "Con intimissimo sentimento: Music Box"
     => "Con intimissimo sentimento: Music Box",
     "Con intimissimo sentimento: After Pergolesi"
     => "Con intimissimo sentimento: After Pergolesi",
     "Con intimissimo sentimento: Berceuse"
     => "Con intimissimo sentimento: Berceuse",
     "Flivver Ten Million"
     => "Flivver Ten Million",
     "Flivver Ten Million - A Joyous Epic"
     => "Flivver Ten Million - A Joyous Epic",
     "Nabucco: Va, pensiero"
     => "Nabucco: Va, pensiero",
     "Nabucco de Verdi: Va pensiero"
     => "Nabucco de Verdi: Va pensiero",
     "Va ti consola, addio, op. 31, No. 2"
     => "Va ti consola, addio, op. 31, No. 2",
     "Quartet for Gtrs (2), Cl and Va"
     => "Quartet for Guitars (2), Clarinet and Viola",
     "Serse: Va godendo"
     => "Serse: Va godendo",
     "Don Pasquale: Va ben...Cheti, cheti"
     => "Don Pasquale: Va ben...Cheti, cheti",
     "Va, dal furor portata"
     => "Va, dal furor portata",
     "Var det en drom"
     => "Var det en drom?",
     "Var det en drom?"
     => "Var det en drom?",
     "Var stilla",
     => "Var stilla",
     "Elegy (Adagio) for Str Qt - after Lady Macb.."
     => "Elegy (Adagio) for String Quartet - after Lady Macbeth",
     "Symphony No. 2 ('Ocean') [Orig. 4 Mvt Vers]"
     => "Symphony No. 2 ('Ocean') [Orig. 4 Movement Version]",
     "Symphony No. 13 ('Sym Characterizations')"
     => "Symphony No. 13 ('Symphonic Characterizations')",
     "Pacific 231 - See: Mouvement Sym. No. 1"
     => "Pacific 231 - See: Mouvement Symphonique No. 1",
     "Sinfonisia luonnoksia - See: Sym Sketches"
     => "Sinfonisia luonnoksia - See: Symphonic Sketches",
     "Sinfonia in Memorium (Sym. Metamorfose)"
     => "Sinfonia in Memorium (Symphonic Metamorfosen)",
     "Rispetti e Strambotti (Qt. #1, arr: str ens)"
     => "Rispetti e Strambotti (Quartet #1, arr: String Ensemble)",
     "Rispetti e Strambotti (Quartet. #1, arr: Str Ens)"
     => "Rispetti e Strambotti (Quartet. #1, arr: String Ensemble)",
     "Var on a Hardanger Folksong, for 2 Pnos/Orch"
     => "Variations on a Hardanger Folksong, for 2 Pianos and Orchestra",
     "Double Con for Hc, Pno, & 2 Chamber Orchs"
     => "Double Concerto for Harpsichord, Piano, & 2 Chamber Orchestras",
     "Grande Sonate, Op. 33: Mvt 2- Quasi-Faust"
     => "Grande Sonate, Op. 33: Movement 2 - Quasi-Faust",
     "Grande Sonate, Op. 33: Mvt 2 - Quasi-Faust"
     => "Grande Sonate, Op. 33: Movement 2 - Quasi-Faust",
     "Con brachi assai"
     => "Con brachi assai",
     "Chamber Con for 13 Instr"
     => "Chamber Concerto for 13 Instruments",
     "Chamber Concerto for 13 Instr"
     => "Chamber Concerto for 13 Instruments",
     "Con for Sax"
     => "Concerto for Saxophone",
     "Con for Soprano Sax"
     => "Concerto for Soprano Saxophone",
     "Sonata da Caccia, for ob, hn, hpsch"
     => "Sonata da Caccia, for Oboe, Horn, Harpsichord",
     "Rhapsodic Ov (Imaginary Journey to Faroe...)"
     => "Rhapsodic Overture (Imaginary Journey to Faroe Islands)",
     "Sonata for V No. 2 in a: Mvts. 2, 4"
     => "Sonata for Violin No. 2 in a: Movements 2, 4",
     "Concerto for V: Mvts. 2, 3"
     => "Concerto for Violin: Movements 2, 3",
     "Rispetti e Strambotti (Qt. #1, arr: Str Ens)"
     => "Rispetti e Strambotti (Quartet #1, arr: Strings Ens)",
     "Symphony No. 5: Mvt. II"
     => "Symphony No. 5: Movement II",
     "Concerto for Pno No. 1: Mvt. 1"
     => "Concerto for Piano No. 1: Movement 1",
     "Plaint and Var for Gtr and Perc"
     => "Plaint and Variations for Guitar and Percussion",
     "Con for V, Vc, WW and Perc"
     => "Concerto for Violin, Cello, Woodwinds / Winds and Percussion",
     "Fantasia on Spanish Themes - See Span Ov #2"
     => "Fantasia on Spanish Themes - See Spanish Overture #2",
     "Plaint and Var, for Gtr and Perc"
     => "Plaint and Variations, for Guitar and Percussion",
     "Paroles Tissees (Ten, Str, Hp, Pno, Perc)"
     => "Paroles Tissees (Tenor, Strings, Harp, Piano, Percussion)",
     "Concerto for Va, Str, and Perc"
     => "Concerto for Viola, Strings, and Percussion",
     "Symphony No. 13 ('Sym Characterizations')"
     => "Symphony No. 13 ('Symphonic Characterizations')",
     "Gnarly Buttons (Con for Clar)"
     => "Gnarly Buttons (Concerto for Clarinet)",
     "Capricorn Con, for Fl, Ob, Tr, Str"
     => "Capricorn Concerto, for Flute, Oboe, Trumpet, Strings",
     "Sym Rhap on 'I Pitch my Lonely Carafan'"
     => "Symphonic Rhap on 'I Pitch my Lonely Carafan'",
     "Sym Rhap on R. Rogers' 'Song in my Heart'"
     => "Symphonic Rhap on R. Rogers' 'Song in my Heart'",
     "Elektra: Sym Suite"
     => "Elektra: Symphonic Suite",
     "Plaint and Var, for Gt and Perc"
     => "Plaint and Variations, for Guitar and Percussion",
     "Pacific 231 - See: Mouvement Sym No. 1"
     => "Pacific 231 - See: Mouvement Symphonique No. 1",
     "Colored Field (Con for Eng Horn)"
     => "Colored Field (Concerto for English Horn)",
     "Air and Var for Clar and Band"
     => "Air and Variations for Clarinet and Band",
     "Rhapsodic Ov (Fantasy Voyage to Faroe Isl.)"
     => "Rhapsodic Overture (Fantasy Voyage to Faroe Islands)",
     "Dramatic Ov                                o"
     => "Dramatic Overture",
     "Sym on a French Mt. Air - See: Sym No. 1"
     => "Symphony on a French Mountain Air - See: Symphony No. 1",
      "Lamenting with Ariadne, for Va and Ch Orch"
     => "Lamenting with Ariadne, for Viola and Chamber Orchestra",
     "Con for Tr, Str and Perc"
     => "Concerto for Trumpet, Strings and Percussion",
     "Con for Trumpet, Strings and Percussion"
     => "Concerto for Trumpet, Strings and Percussion",
     "Pigmalion: Ov (Transcr for Hc by Balbastre)"
     => "Pigmalion: Overture (Transcribed for Harpsichord by Balbastre)",
     "Pigmalion: Ov (Transcr for Hc)"
     => "Pigmalion: Overture (Transcribed for Harpsichord by Balbastre)",
     "Symphony No. 1 [First vers: 1885-6: Mvt 2)"
     => "Symphony No. 1 [First version: 1885-1886: Movement 2)",
     "Symphony No. 1 [First vers: 1885-6: Mvt 3)"
     => "Symphony No. 1 [First version: 1885-1886: Movement 3)",
     "Forza del Destino, La; Ov"
     => "Forza del Destino, La: Overture",
     "Suite for Kbd No. 4: Gavotte and Var"
     => "Suite for Keyboard No. 4: Gavotte and Variations",
     "Surviving A Son's Suicide, for Str. Qt"
     => "Surviving A Son's Suicide, for String Quartet",
     "Sonata for V and Pno No. 1: Mvt 1-Vivace"
     => "Sonata for Violin and Piano No. 1: Movement 1 - Vivace",
     "Suite for Va and pno, Op. 102a"
     => "Suite for Viola and pno, Op. 102a",
     "Bad Pets, for Bass Bar, fl, gtr"
     => "Bad Pets, for Bass Baritone, fl, gtr",
     "Dame Kobo0ld: Ov"
     => "Dame Kobo0ld: Overture",
     "Concerto for Vc and Ten Players"
     => "Concerto for Cello and Ten Players",
     # This one is just a typo fix.  Eventually Henry will fix it in
     # his master copy of the database, rendering this obsolete:
     "Sinfonia Concertante for V and Va, KI. 364"
     => "Sinfonia Concertante for Violin and Viola, K. 364",
     "Serenade for Ten, Hn & Str: Mvts 1, 4-8"
     => "Serenade for Tenor, Horn & Strings: Movements 1, 4-8",
     "Var for pno in c"
     => "Variations for Piano in C",
     "Liquid Melancholy (Con for Clarinet)"
     => "Liquid Melancholy (Concerto for Clarinet)",
     "Liquid Melancholy (Con for Clar)"
     => "Liquid Melancholy (Concerto for Clarinet)",
     "Liquid Melancholy (Con for Cl)"
     => "Liquid Melancholy (Concerto for Clarinet)",
     "Liquid Melancholy (Concerto for Clar)"
     => "Liquid Melancholy (Concerto for Clarinet)",
     "Liquid Melancholy (Concerto for Cl)"
     => "Liquid Melancholy (Concerto for Clarinet)",
     "Var og elsk"
     => "Var og elsk",
     "Ten Thousand Miles Away"
     => "Ten Thousand Miles Away",
     "Masquerade--Con for V, Vc, and Orch"
     => "Masquerade: Concerto for Violin, Cello, and Orchestra",
     "Suite of Dances for Pno, Ob, Va, Dbl bs"
     => "Suite of Dances for Piano, Oboe, Viola, Double Bass",
     "Theme and Var for Pnos (2), K. 501 in G"
     => "Theme and Variations for Pianos (2), K. 501 in G",
     "Leonore Ov. No. 3"
     => "Leonore Overture No. 3",
     "Romances (2) for Va and Chamber Ens"
     => "Romances (2) for Viola and Chamber Ensemble",
     "Orphus in Hades: Ov"
     => "Orpheus in Hades: Overture",
     "Dame Blanche, La; Ov"
     => "Dame Blanche, La: Overture"

    );

# Keys are soloists that the regular code would misexpand.  Values are
# what to use instead of the misexpansion.
my %gotcha_soloists =
    (
     "Pelton; Atlanta Sym Chor"
     => "Pelton; Atlanta Symphony Chorus",
     "Montreal Sym Chor"
     => "Montreal Symphony Chorus",
     "Ainsley; Montreal Sym Chor"
     => "Ainsley; Montreal Symphony Chorus",
     "Goerke; Simpson; Olsen; Berg; Atlanta Sym Chor"
     => "Goerke; Simpson; Olsen; Berg; Atlanta Symphony Chorus",
     "Atlanta Sym Chor"
     => "Atlanta Symphony Chorus",
     "Tokyo Sym Chor"
     => "Tokyo Symphony Chorus",
     "Wilson; Clement; Gietz; Rouillon; Bertsch; Schwartz; Montreal Sym Ch"
     => "Wilson; Clement; Gietz; Rouillon; Bertsch; Schwartz; Montreal Symphony Chorus",
     "Murphy; Webster; Milwaukee Sym Chor"
     => "Murphy; Webster; Milwaukee Symphony Chorus",
     "Montreal Sym Ch"
     => "Montreal Symphony Chorus",
     "Goerke; Plegato; Atlanta Sym Chor"
     => "Goerke; Plegato; Atlanta Symphony Chorus",
     "Phillips; Redmon; Taylor; Baylon; Nashville Sym Chor"
     => "Phillips; Redmon; Taylor; Baylon; Nashville Symphony Chorus",
     "San Francisco Sym Chor"
     => "San Francisco Symphony Chorus",
     "Brewer; Donose; Tessier; Owens; Atlanta Sym Chamber Chor"
     => "Brewer; Donose; Tessier; Owens; Atlanta Symphony Chamber Chorus",
     "Armstrong; Baker; Tear; Lon Sym Chorus"
     => "Armstrong; Baker; Tear; London Symphony Chorus",
     "V Phil Qt"
     => "Vienna Philharmonic Quartet",
     "VPO Quartet"
     => "Vienna Philharmonic Quartet",
     "Bouillon St Qt"
     => "Bouillon String Quartet",
     "Arditti Str Qt." 
     => "Arditti String Quartet",
     "Bochmann Str. Qt." 
     => "Bochmann String Quartet",
     "Capet Qt." 
     => "Capet Quartet",
     "New Hudsen Sax Qt"
     => "New Hudsen Saxophone Quartet",
     "Gabrilowitsch; Flonzaley Qt." 
     => "Gabrilowitsch; Flonzaley Quartet",
     "Juilliard Qt." 
     => "Juilliard Quartet",
     "Moscow Qt. members" 
     => "Moscow Quartet members",
     "Montreal Symphony Ch"
     => "Montreal Symphony Chorus",
     "Wilson; Clement; Gietz; Rouillon; Bertsch; Schwartz; Montreal Symphony Ch"
     => "Wilson; Clement; Gietz; Rouillon; Bertsch; Schwartz; Montreal Symphony Chorus",
     "Ens from Sao Paulo Sym"
     => "Ensemble from Sao Paulo Symphony",
     "Malmberg; Haeggander; SF Sym Chorus"
     => "Malmberg; Haeggander; San Francisco Symphony Chorus",
     "Cortot; International Str Qt"
     => "Cortot; International String Quartet",
     "Francescatti; Casadesus; Guilet Qt"
     => "Francescatti; Casadesus; Guilet Quartet",
     "Fischer; Breronel Str Qt"
     => "Fischer; Breronel String Quartet",
     "Bingham Str Qt"
     => "Bingham String Quartet",
     "Rochmnann Str Qt"
     => "Rochmnann String Quartet",
     "Chara Str Qt"
     => "Chara String Quartet",
     "Leipzig Str Qt"
     => "Leipzig String Quartet",
     "Benedict; Sydney Sym Chorus"
     => "Benedict; Sydney Symphony Chorus",
     "Lorenz; Tanaka; Yoshida; Uno; Mihara; Fukui; Nagai; Tokyo Sym Chor"
     => "Lorenz; Tanaka; Yoshida; Uno; Mihara; Fukui; Nagai; Tokyo Symphony Chorus",
     "Borronmeo Qt"
     => "Borronmeo Quartet",
     "Biava Str Qt"
     => "Biava String Quartet",
     "Crafoord Str Qt"
     => "Crafoord String Quartet",
     "Endellion Str Qt"
     => "Endellion String Quartet",
     "Dawson; Blochwitz; Bar; Lippert; Purves"
     => "Dawson; Blochwitz; Bar; Lippert; Purves",
     "Domingo; Stemme; Fujimura; Pape; Bar"
     => "Domingo; Stemme; Fujimura; Pape; Bar",
     "Daniel Qt;; Wurtz"
     => "Daniel Quartet; Wurtz",
     "Lark Qt; Sheronick, perc."
     => "Lark Quartet; Sheronick, percussion",
     "Lark Qt; Guise-Langlois, cl"
     => "Lark Quartet; Guise-Langlois, clarinet",
     "Orpheus Str Qt"
     => "Orpheus String Quartet",
     "Flagstad; Meisle; Jagel; Pinza; Cincinnati Sym Chor"
     => "Flagstad; Meisle; Jagel; Pinza; Cincinnati Symphony Chorus",
     "Oppens; Cassat Str Qt."
     => "Oppens; Cassat String Quartet",
     "Oppens; Cassat Str Qt"
     => "Oppens; Cassat String Quartet",
     "Wright; Hawthorne Str Qt"
     => "Wright; Hawthorne String Quartet",
     "BBC Sym Chorus;"
     => "BBC Symphony Chorus"
    );

# Soloists that we know don't need 'CHECK' warnings.
my %okay_soloists =
    (
     "Leonskaja; Berg Quartet" => 1,
     "Sonar Quartet" => 1,
     "Brazilian Guitar Quartet" => 1,
     "Biava Quartet" => 1,
     "Koh; Atlanta Symphony Chorus" => 1,
     "Deas; Virginia Symphony Chorus" => 1,
     "Lener Quartet" => 1,
     "Vegh Quartet." => 1,
     "Lajtha Quartet" => 1,
     "Danel Quartet" => 1,
     "Korondi; Sao Paulo Symphony Male Choir" => 1,
     "Acosta; Avalon Quartet" => 1,
     "Budapest Quartet" => 1,
     "Daedalus Quartet" => 1,
     "Purvis; Juilliard Quartet" => 1,
     "Tinalley String Quartet" => 1,
     "Bohemian Quartet" => 1,
     "Sevcik-Lhotsky Quartet" => 1,
     "Mendelssohn Quartet" => 1,
     "B. Marsalis Quartet" => 1,
     "Bratislava Guitar Quartet" => 1,
     "Chandler-Eteme; Steele; Deas; Gardner; Rockham Symphony Choir; Brazeal Dennard Chorale" => 1,
     "Acantus Quartet; Hartmann" => 1,
     "Acosta; Avalon Quartet" => 1,
     "Ainsley; Montreal Symphony Chorus" => 1,
     "Albrecht Quartet" => 1,
     "Arditti Quartet" => 1,
     "Atlanta Symphony Chorus" => 1,
     "Australian Sax Quartet" => 1,
     "B. Marsalis Quartet" => 1,
     "BBC National Chorus of Wales; Bournemouth Symphony Chorus" => 1,
     "BBC Symphony Chorus" => 1,
     "Barbagallo; Da Vinci Quartet" => 1,
     "Belcea Quartet" => 1,
     "Bernard Walton; Aeolian Quartet" => 1,
     "Biava String Quartet" => 1,
     "Bingham String Quartet" => 1,
     "Bohemian Quartet" => 1,
     "Borodin Quartet" => 1,
     "Borodin Quartet; Milman" => 1,
     "Boston Symphony Chamber Players" => 1,
     "Bournemouth Symphony Chorus" => 1,
     "Bratislava Guitar Quartet" => 1,
     "Bryn-Julson; Seattle Symphony Chorale" => 1,
     "Budapest Quartet" => 1,
     "Busch Quartet" => 1,
     "Calvet Quartet" => 1,
     "Calvet Quartet; Casadesus" => 1,
     "Capet Quartet" => 1,
     "Champell Quartet" => 1,
     "Chandler-Eteme; Steele; Deas; Gardner; Rockham Symphony Choir; Brazeal Dennard Chorale" => 1,
     "Chara String Quartet" => 1,
     "Ciampi; Capet Quartet" => 1,
     "Clement; Gunn; Atlanta Symphony Chorus" => 1,
     "Colorado Quartet" => 1,
     "Cortot; International String Quartet" => 1,
     "Crafoord String Quartet" => 1,
     "Cypress Quartet" => 1,
     "Da Vinci Quartet" => 1,
     "Daedalus Quartet" => 1,
     "Dallas Symphony Chorus" => 1,
     "Draper; Lener Quartet" => 1,
     "Eaglen; Maultsby; Burden; Brainerd; Seattle Symphony Chorale" => 1,
     "El Paso Festival Quartet" => 1,
     "Emerson Quartet" => 1,
     "Endellion Quartet" => 1,
     "Endellion String Quartet" => 1,
     "EntreQuatre Guitar Quartet" => 1,
     "Evans; Coleman-Wright; Waynflete Singers; Bournemouth Symphony Chorus" => 1,
     "Fine Arts Quartet" => 1,
     "Fine Arts Quartet; Sharon" => 1,
     "Finnish Brass Symphony" => 1,
     "Fischer; Breronel String Quartet" => 1,
     "Flonzaley Quartet" => 1,
     "Gabrilowitsch; Flonzaley Quartet" => 1,
     "Hansa Quartet" => 1,
     "Hawkins; Ciompi Quartet" => 1,
     "Hoelscher; Mandelring Quartet" => 1,
     "Horne; Atlanta Symphony Chorus" => 1,
     "Joachim Quartet" => 1,
     "Juilliard Quartet" => 1,
     "Klein; Vermeer Quartet" => 1,
     "Kolisch Quartet" => 1,
     "Koppel Quartet" => 1,
     "Korondi; Sao Paulo Symphony Male Choir" => 1,
     "Kronos Quartet" => 1,
     "Kuijken Quartet" => 1,
     "Kuznetzova; Golub; Russian State Symphony Horns" => 1,
     "LaSalle Quartet" => 1,
     "Langridge; Endellion Quartet Members" => 1,
     "Leipzig String Quartet" => 1,
     "Lener Quartet; Draper; A. Brain; Hinchcliff; Hobday" => 1,
     "London Symphony Chorus" => 1,
     "Lorenz; Tanaka; Yoshida; Uno; Mihara; Fukui; Nagai; Tokyo Symphony Chor" => 1,
     "Mairecker-Buxbaum Quartet" => 1,
     "Mandelring Quartet Members" => 1,
     "Meliora Quartet; Brian Preston" => 1,
     "Members Juilliard Quartet" => 1,
     "Members, National Symphony of Wash; Fogel; Skidmore; Teare" => 1,
     "Mendelssohn Quartet" => 1,
     "Nashville Symphony Chorus" => 1,
     "Netherlands Quartet" => 1,
     "Nissman; Laurentian Quartet" => 1,
     "Nomos Quartet" => 1,
     "Norwegian String Quartet" => 1,
     "O'Connor; Palmer; Dresser; St. Lawrence Quartet;" => 1,
     "Pacifica Quartet" => 1,
     "Pelton; Gunn; Atlanta Symphony Chorus" => 1,
     "Pittsburgh Symphony Brass" => 1,
     "Popp; Kaufmann; Protschka; Bamberg Symphony Chorus" => 1,
     "Pro Arte Quartet" => 1,
     "Purvis; Juilliard Quartet" => 1,
     "Riccitelli; Pentcheva; Sao Paulo Symphony Chorus" => 1,
     "Robinson; Ciompi Quartet" => 1,
     "Rochmnann String Quartet" => 1,
     "Rodgers; Rigby; Robson; Coleman-Wright; Waynflete Singers; Bournemouth Symphony Chorus" => 1,
     "Rose Quartet" => 1,
     "Rubinstein; Guarneri Quartet" => 1,
     "San Francisco Symphony Chorus; Delan; Chernov; Hunka; Birgersson; Carlsson" => 1,
     "Schoenberg Quartet" => 1,
     "Seattle Symphony Chorale" => 1,
     "Seattle Symphony Chorus" => 1,
     "Serkin; Busch Quartet" => 1,
     "Sevcik-Lhotsky Quartet" => 1,
     "Sibelius Academy Quartet" => 1,
     "Sibelius Quartet" => 1,
     "Sibelius Quartet; Gustafsson" => 1,
     "Silverwood Quartet" => 1,
     "Skutova-Slanickova; Albrecht Quartet" => 1,
     "Souza; Tennant; Dearman; Remy; Haddad; Anderson; Gwinnet Young Singers; Atlanta Symphony Chorus" => 1,
     "St. Lawrence Quartet" => 1,
     "St. Lawrence Quartet; Palmer, clar" => 1,
     "St. Lawrence Quartet; Ying Quartet; Dressler" => 1,
     "Susso; Eye Plus One Drummers; Steele; Edwards; Lokumbe Quartet; Green; Abbema; Jones; Smith; Morgan State Univ. Choir; Kennedy-King Choir" => 1,
     "Szymanowski Quartet; Kirschnereit" => 1,
     "Takacs Quartet" => 1,
     "Takacs Quartet; Hough" => 1,
     "Taneyev Quartet" => 1,
     "Temperley; Esswood; Jenkins; Robarts; BBC Singers; BBC Symphony Chorus" => 1,
     "Terfel; Bournemouth Symphony Chorus" => 1,
     "Theorin; Francesconi; van Hal; Smits; Sao Paulo Symphony Choir" => 1,
     "Thurston; Griller Quartet" => 1,
     "Tibbels; Groves; Trinity Boys' Choir; BBC Symphony CHorus" => 1,
     "Tinalley String Quartet" => 1,
     "Tourel; New Music Quartet" => 1,
     "Troitskay; Randova; Kaludov; Leiferkus; Montreal Symphony Choir" => 1,
     "Unidentified soloists; Milwaukee Symphony Chorus" => 1,
     "Upshaw; Kronos Quartet" => 1,
     "Vegh Quartet; Casals" => 1,
     "Vermeer Quartet" => 1,
     "Vermeer Quartet; Klein" => 1,
     "Vertavo Quartet" => 1,
     "Vilnius Quartet" => 1,
     "Wallinger Quartet" => 1,
     "West; Columbus Symphony Chorus; Columbus Children's Chorus" => 1,
     "Zapolski Quartet" => 1,
     "Matthews; Mumford; San Francisco Symphony Choir" => 1,
     "McGill; Pacifica Quartet" => 1,
     "Israel String Quartet" => 1,
     "Schneider Quartet" => 1,
     "L. A. String Quartet" => 1,
     "Kani; Fader; Vega Quartet" => 1,
     "Lee (sop); Vega Quartet" => 1,
     "Johnson; Vega Quartet" => 1,
     "Cordoz; Fernandez; Brodsky Quartet" => 1,
     "Brodsky Quartet" => 1,
     "Daniel Quartet;" => 1,
     "Avalon Quartet" => 1,
     "Rivera; Polegato; Atlanta Symphony Chorus" => 1,
     "Masselos; Guarneri Quartet members" => 1,
     "New Orford Quartet" => 1,
     "Lener Quartet; Goossens" => 1,
     "Lener Quartet; Loeser-Lebert" => 1,
     "Dover Quartet; Tree" => 1,
     "Dover Quartet" => 1,
     "Neidich; Gosling; Daedalus Quartet" => 1,
     "Sao Paulo Symphony Choir" => 1,
     # Would be nice to expand the "Chor" and "Phil" abbreviations in this:
     "Dresden State Opera Chor; Czech Phil Choir; Dresden Symphony Choir; MDR Radio Choir; Dresden Phil Choir;" => 1,
     "Saggese; Moravian Quartet" => 1,
     "Kapell; Fine Arts Quartet" => 1,
     "Orpheus String Quartet" => 1,
     "Isbin; Pacifica Quartet" => 1,
     "Isbin; Pacifica Quartet;" => 1,
     "Pacifica Quartet" => 1,
     "Pacifica Quartet;" => 1,
     "Lark Quartet" => 1,
     "Lark Quartet; Stern; Mayforth; Kruger; Sewell" => 1,
     "Lewis; BBC Symphony Chorus; LPO Choir; Alexandra Choir" => 1,
     "Pacifica Quartet; Murphy" => 1,
     "Richter; Borodin Quartet; Mozgovenko" => 1,
     "Bevan; Clayton; Carducci Quartet; Lloyd" => 1,
     "Vertavo Quartet; Bjorn Nyman" => 1,
     "Takacs Quartet; Ohlsson" => 1,
     "Royal; Rice; Katajala; Welton; Malmo Symphony Festival Choir" => 1,
     "Flagstad; Meisle; Jagel; Pinza; Cincinnati Symphony Chorus" => 1,
     "Klenke Quartet" => 1,
     "Mariani Piano Quartet" => 1,
     "Choi; Hanna; Avalon Quartet" => 1,
     "Oppens; Cassat String Quartet" => 1,
     "Capet Quartet" => 1,
     "Suk Quartet" => 1,
     "BBC Symphony Chorus" => 1,
     "Stenhammar Quartet" => 1,
     "Fine Arts Quartet; Witkowski" => 1,
     "Clayton; Sonnenberg; Evans; Jones; Houston Symphony Chorus" => 1
    );

# Titles that we know don't need 'CHECK' warnings.
my %okay_titles =
    (
     "Theme with Variations, Op. 40" => 1,
     "Othello Overture, Op. 93" => 1,
     "Life for the Tsar: Overture" => 1,
     "Prometheus Bound: Overture" => 1,
     "Symphony in G [a.k.a. Mozart Symphony #37]" => 1,
     "Othello Overture, Op. 93" => 1,
     "Widerspenstigen Zahmung, Der: Overture" => 1,
     "Symphony for Strings - See: String Symphony" => 1,
     "Tannhauser: Overture and Baccanale" => 1,
     "Variations on 'Ah, vous dirai-je maman'" => 1,
     "Sonata for Piano No. 2 in E: Movements 1, 2" => 1,
     "Overture to a Symphony Concert, Op. 26" => 1,
     "Orango: Overture" => 1,
     "Charlotte Corday: Overture" => 1,
     "Concerto for Viola in D" => 1,
     "Concerto for Viola No. 1 in D" => 1,
     "Concerto for Viola in B-Flat" => 1,
     "Concert Variations upon 'Down among the Dead Men'" => 1,
     "Indigo and the 40 Thieves: Overture" => 1,
     "Overture to a Symphony Concert (Revised), Op. 26a" => 1,
     "Overture with Fanfares" => 1,
     "Variations on a Theme by Schumann" => 1,
     "Cantata No. 29: Overture" => 1,
     "Cantata No. 29: Overture" => 1,
     "Pieces (2) for Viola and Piano: Le Soir" => 1,
     "Pieces (2) for Viola and Piano: Legende" => 1,
     "Quintet for Clarinet, Violin, Viola, Cello and Piano in D" => 1,
     "Vyborg District: Overture" => 1,
     "Canti della stagione alta - See: Concerto for Piano" => 1,
     "Variations on a Hungarian Peasant Song" => 1,
     "Romance for Viola and Orchestra (arr for Violin and Orchestra)" => 1,
     "Theme and Variations, Op. 58" => 1,
     "Mataswintha: Overture" => 1,
     "Variations on 'Marlborough, s'en va-t-en guerre'" => 1,
     "Remembrance Overture" => 1,
     "Perzeus Overture" => 1,
     "Twelfth Night Overture" => 1,
     "Tragedy of Coriolanus, The Overture" => 1,
     "Midsummer Night's Dream, A Overture" => 1,
     "Antony and Cleopatra Overture" => 1,
     "Taming of the Shrew, The Overture" => 1,
     "Julius Caesar Overture" => 1,
     "Powder her Face: Overture, Waltz and Finale" => 1,
     "Dante Symphony No. 2, 'Abandon Hope...'" => 1,
     "Dante Symphony No. 1, 'Among the Live'" => 1,
     "Concerto No. 9 for Violin, Viola and Orchestra" => 1,
     "Symphony No. 2: Movement 3" => 1,
     "Symphonie Fantastique: 2nd Movement Excerpt" => 1,
     "Flying Dutchman: Overture - Excerpt" => 1,
     "Concerto for Piano: Movement 2 - Largo" => 1,
     "1812 Overture - abridged" => 1,
     "1812 Overture" => 1,
     "5X5 (Four Variations on a Five-Part Theme)" => 1,
     "Abduction from the Seraglio, The: Overture" => 1,
     "Abencerages, Les: Overture" => 1,
     "Abismo de sed - Arr: Viola & Piano" => 1,
     "Abu Hassan: Overture" => 1,
     "Academic Festival Overture" => 1,
     "Adagio and Allegro for Viola and Piano, Op. 70" => 1,
     "Adagio and Rondo for Harp, Flute, Oboe, Viola, Cello K.617" => 1,
     "Adigeya - Sextet for Violin, Viola, Cello, Clarinet, Horn, Piano" => 1,
     "Aida: Overture (Reconstructed: Spada)" => 1,
     "Aida: Overture (reconstructed: Spada)" => 1,
     "Air and Variations for Clarinet and Band" => 1,
     "Aladdin Overture, Op. 44" => 1,
     "Alceste: Overture" => 1,
     "Alessandro Stradella: Overture" => 1,
     "Alfonso and Estrella: Overture" => 1,
     "Ali-Baba: Overture" => 1,
     "Allegro Appassionata for Viola and Piano" => 1,
     "Alzira: Overture" => 1,
     "Amelia al ballo: Overture" => 1,
     "American Festival Overture" => 1,
     "American Overture" => 1,
     "American Overture, An" => 1,
     "Amor and Digteren, Overture" => 1,
     "Amor and the Poet Overture" => 1,
     "Amore Medico, L': Overture" => 1,
     "Amore industrioso, L': Overture" => 1,
     "Amphitrion: Overture" => 1,
     "Anacreon: Overture" => 1,
     "Andante & Variations for Piano 4 Hands in G, K. 501" => 1,
     "Andante and Variations for Piano and Orchestra" => 1,
     "Andante and Variations for Pnos (2), Cello (2), and Horn" => 1,
     "Andante expressivo for Viola and Piano" => 1,
     "Andante for String Quartet, Op. 81, No. 1" => 1,
     "Angel of Dusk (Concerto for Cb)" => 1,
     "Anima - See Concerto for Cello No. 2" => 1,
     "Anniversary Overture" => 1,
     "Annunciations (Concerto for Organ, Brass, and Winds / Woodwinds)" => 1,
     "Annunciations (Concerto for Organ, Brass, and Woodwinds / Winds)" => 1,
     "Antony and Cleopatra Overture" => 1,
     "Antony and Cleopatra Overture" => 1,
     "Antony and Cleopatre: Overture, Op. 57" => 1,
     "Aotearoa Overture" => 1,
     "Aria and Variations for Guitar ('La Frescobalda')" => 1,
     "Ariadne auf Naxos: Overture" => 1,
     "Arioso and Tarantelle for Viola and Piano" => 1,
     "Arlesienne, L': Suite No. 1: Overture" => 1,
     "Armer Columbus: Overture" => 1,
     "Armide: Overture" => 1,
     "Aroldo: Overture" => 1,
     "Artaxerxes: Overture" => 1,
     "Artists' Life Waltz: Symphony Metamorphosis" => 1,
     "As You Like It Overture" => 1,
     "As You Like It Overture" => 1,
     "As You Like It Overture, Op. 28" => 1,
     "Azucarillos y Aguardiente: Overture" => 1,
     "Bagatelles (6) for String Quartet" => 1,
     "Bal Masque, Le: Overture" => 1,
     "Barber of Baghdad, The: Overture" => 1,
     "Barber of Seville: Overture - Fragment" => 1,
     "Barber of Seville: Overture [Abridged]" => 1,
     "Barber of Seville: Overture" => 1,
     "Barenhauter, Der: Overture" => 1,
     "Bartered Bride, The: Overture" => 1,
     "Battaglia di Legnano, La: Overture" => 1,
     "Beatrice and Benedict: Overture" => 1,
     "Beautiful Galathea: Overture" => 1,
     "Beckus the Dandipratt, Comedy Overture" => 1,
     "Bekranzt mit Laub - Fest-Overture" => 1,
     "Belfagor: Overture" => 1,
     "Belle Helene, La: Overture" => 1,
     "Benvenuto Cellini: Overture" => 1,
     "Berenice: Overture" => 1,
     "Bianca-nera Overture" => 1,
     "Blumine - See: Symphony No. 1: Blumine Movement" => 1,
     "Boccaccio: Overture" => 1,
     "Bolla och Badin: Overture" => 1,
     "Bonita rama de sauce - Arr: Viola & Piano" => 1,
     "Boston Overture" => 1,
     "Brandenburg Concerto No. 1" => 1,
     "Brandenburg Concerto No. 2" => 1,
     "Brandenburg Concerto No. 3" => 1,
     "Brandenburg Concerto No. 4" => 1,
     "Brandenburg Concerto No. 5" => 1,
     "Brandenburg Concerto No. 6" => 1,
     "Bronze Horse: Overture" => 1,
     "Bruder Lustig: Overture" => 1,
     "Building of the House Overture, The" => 1,
     "Building of the House: Overture" => 1,
     "Burlesque Variations on an Original Theme" => 1,
     "Bylina: Overture" => 1,
     "Calif of Bagdad: Overture" => 1,
     "Calife de Bagdad, La: Overture" => 1,
     "Calm Sea and Prosperous Voyage Overture" => 1,
     "Cambiale di Matrimonio: Overture" => 1,
     "Camp David Overture, A" => 1,
     "Cancion de cuna para dormir - arr: Viola & Piano" => 1,
     "Candide: Overture" => 1,
     "Canonic Variations on Vom Himmel hoch, BWV. 769" => 1,
     "Cantus Arcticus (Concerto for Birds & Orchestra)" => 1,
     "Capriccio for String Quartet, Op. 81, No. 3" => 1,
     "Caris Mere, for Soprano and Viola" => 1,
     "Carmen: Overture" => 1,
     "Carnival Overture" => 1,
     "Ce qu'on entend sur la montagne - Symphony Poem 1" => 1,
     "Celebration Overture" => 1,
     "Cenerentola: Overture" => 1,
     "Chamber Concerto for 13 Instruments" => 1, 
     "Chamber Concerto for Clarinet, String Quartet & String Orchestra" => 1,
     "Chamber Concerto for Oboe and 5 Instr" => 1,
     "Chamber Concerto for Oboe and Five Instr" => 1,
     "Chamber Concerto for Piano, Violin, & 13 Winds / Woodwinds" => 1,
     "Chamber Concerto for Piano, Violin, & 13 Winds / Woodwinds" => 1,
     "Chamber Concerto for Piano, Violin, & 13 Winds / Woodwinds" => 1,
     "Chamber Concerto for Piano, Violin, & 13 Winds / Woodwinds" => 1,
     "Chamber Concerto for Piano, Violin, & 13 Woodwinds / Winds" => 1,
     "Chamber Symphony, Op. 2" => 1,
     "Chandos Anthem No. 2: Overture in d" => 1,
     "Chanticleer Festival Overture" => 1,
     "Chasse de Jeanne Henri: Overture" => 1,
     "Chasse du Jeune Henri: Overture" => 1,
     "Chevere - arr: Viola & Piano" => 1,
     "Choral varie, for Viola and Orchestra" => 1,
     "Chorale Variations on Vom Himmel Hoch" => 1,
     "Chorale Variations on vom Himmel Hoch" => 1,
     "Chorale Variations on von Himmel Hoch" => 1,
     "Chorale Variations" => 1,
     "Christelflein, Das: Overture" => 1,
     "Christmas Eve: Overture" => 1,
     "Cid, De: Overture" => 1,
     "Clemenza di Tito: Overture" => 1,
     "Cockaigne Overture" => 1,
     "Cockaigne Overture: Abridged" => 1,
     "Colas Breugnon: Overture" => 1,
     "Colored Field (Concerto for English Horn)" => 1,
     "Comedy Overture - See: Doctor Merryheart" => 1,
     "Comedy Overture" => 1,
     "Comedy Overture, A" => 1,
     "Comedy of Errors Overture" => 1,
     "Comedy of Errors: Overture" => 1,
     "Concert Overture in E, Op. 12" => 1,
     "Concert Overture in E, op. 12" => 1,
     "Concert Overture in F" => 1,
     "Concert Overture" => 1,
     "Concert Overture, Op. 32" => 1,
     "Concertante Variations on a Theme of Beethoven" => 1,
     "Concertino Op. 45, No. 9, for Viola and Strings" => 1,
     "Concertino for Viola and Piano" => 1,
     "Concertino for Viola and Small Orchestra" => 1,
     "Concerto For Violin in d, BWV. 1052 (Arr. Harpsichord Concerto)" => 1,
     "Concerto For Violin in g, BWV. 1056 (Arr. Harpsichord Concerto)" => 1,
     "Concerto Grosso for String Quartet and Orchestra" => 1,
     "Concerto No. 9 for Violin, Viola and Orchestra" => 1,
     "Concerto Sinfonico, for Saxophone Quartet & Orchestra" => 1,
     "Concerto assequio, con rispetto" => 1,
     "Concerto da Camera for Piano & String Quartet" => 1,
     "Concerto for 12 Cello" => 1,
     "Concerto for 2 Viola's and Strings in G" => 1,
     "Concerto for Cello & Chamber Orchestra ('La Serenissima')" => 1,
     "Concerto for Cello [Arr for Viola: Tertis]" => 1,
     "Concerto for Clarinet, Viola, and Orchestra, Op. 88" => 1,
     "Concerto for Dbl Brass Choir and Orchestra" => 1,
     "Concerto for Flute and Chamber Orchestra" => 1,
     "Concerto for Flute, arr. from Flute Quartet No. 1" => 1,
     "Concerto for Flutes & Orchestra (Impressione marine)" => 1,
     "Concerto for Guitar No. 2 ('Paganini Variations')" => 1,
     "Concerto for Harpsichord, Strings and Percussion" => 1,
     "Concerto for Harpsichord, Strings and perc" => 1,
     "Concerto for Horn: Movement 2" => 1,
     "Concerto for Oboe and Strings" => 1,
     "Concerto for Oboe in B-Flat" => 1,
     "Concerto for Oboe in c" => 1,
     "Concerto for Oboe" => 1,
     "Concerto for Oboe, Op. 7, No. 3 in B-Flat" => 1,
     "Concerto for Oboe, Op. 7, No. 6 in D" => 1,
     "Concerto for Piano No. 12, K. 414: Movements 2, 3" => 1,
     "Concerto for Piano No. 1: Movement 1" => 1,
     "Concerto for Piano No. 1: Movement 3" => 1,
     "Concerto for Piano No. 2: Movement 2" => 1,
     "Concerto for Piano No. 3 in d: Movement 1" => 1,
     "Concerto for Piano No. 3 in d: Movement 3" => 1,
     "Concerto for Piano No. 3: 2nd and 3rd Movements" => 1,
     "Concerto for Piano No. 3: Movement 1" => 1,
     "Concerto for Piano No. 4, Op. 59" => 1,
     "Concerto for Piano No. 5 ('Emperor'): Movement 1" => 1,
     "Concerto for Piano No. 5 ('Emperor'): Movement 3" => 1,
     "Concerto for Piano in E-Flat" => 1,
     "Concerto for Piano in a: Cadenza, First Movement" => 1,
     "Concerto for Piano, Violin, Cello ('Triple'): Movement 1" => 1,
     "Concerto for Piano, Violin, and String Quartet in D" => 1,
     "Concerto for Piano: Movement 2 - Largo" => 1,
     "Concerto for Piano: Movement 3" => 1,
     "Concerto for Piano: Movements 1 & 3 only" => 1,
     "Concerto for Piano: Slow Movement (completed-Young)" => 1,
     "Concerto for Saxophone Quartet and Orchestra" => 1,
     "Concerto for String Quartet and Winds" => 1,
     "Concerto for String Quartet, Woodwinds / Winds, Percussion" => 1,
     "Concerto for Viola ('Hommage a la France')" => 1,
     "Concerto for Viola ('Menorah')" => 1,
     "Concerto for Viola (arr. for Cello)" => 1,
     "Concerto for Viola [1961 Revised Version]" => 1,
     "Concerto for Viola and Chamber Orchestra" => 1,
     "Concerto for Viola and Orchestra ('Lugubre')" => 1,
     "Concerto for Viola and Orchestra [arr for Cello: Serly]" => 1,
     "Concerto for Viola and Orchestra" => 1,
     "Concerto for Viola and Piano" => 1,
     "Concerto for Viola d'amore, Lute - arr for Cello" => 1,
     "Concerto for Viola in A" => 1,
     "Concerto for Viola" => 1,
     "Concerto for Viola, Strings, and Percussion" => 1,
     "Concerto for Viola, op. 2, No. 1" => 1,
     "Concerto for Violin No. 1 in a: First Movement" => 1,
     "Concerto for Violin No. 2 (Tape, Baritone, Ensemble)" => 1,
     "Concerto for Violin and Cello (Double): Movement 1" => 1,
     "Concerto for Violin and String Quartet No. 1" => 1,
     "Concerto for Violin and Strings: Grave (arr. for Cello & Strings)" => 1,
     "Concerto for Violin, Cello, Woodwinds / Winds and Percussion" => 1,
     "Concerto for Violin, Piano, and String Quartet in D" => 1,
     "Concerto for Violin, Viola and Orchestra ('Double')" => 1,
     "Concerto for Violin, Viola, and Cello" => 1,
     "Concerto for Violin: Movements 1 & 3" => 1,
     "Concerto in Pieces (Purcell Variations)" => 1,
     "Concerto intimissimo sentimento: After Pergolesi" => 1,
     "Concerto intimissimo sentimento: Album Leaf" => 1,
     "Concerto intimissimo sentimento: Berceuse" => 1,
     "Concerto intimissimo sentimento: Landler 1" => 1,
     "Concerto intimissimo sentimento: Music Box" => 1,
     "Concerto leggerezza pensosa" => 1,
     "Consecration of the House: Overture" => 1,
     "Coriolan Overture [Fragment]" => 1,
     "Coriolan Overture" => 1,
     "Coriolan: Overture" => 1,
     "Corsair Overture" => 1,
     "Cosi Fan Tutte: Overture" => 1,
     "Cosi fan Tutte: Overture" => 1,
     "Countess, The: Overture" => 1,
     "Creatures of Prometheus: Overture" => 1,
     "Creatures of Prometheus: Overture, Allegretto, Fin" => 1,
     "Crown Diamonds: Overture" => 1,
     "Cuba dentro de un piano - Arr: Viola & Piano" => 1,
     "Cuban Overture" => 1,
     "Cyrano de Bergerac: Overture" => 1,
     "Dama Boba, La: Overture" => 1,
     "Dance Variations, for 2 Pnos and Orchestra" => 1,
     "Dante Symphony No. 1, 'Among the Live'" => 1,
     "Dante Symphony No. 2, 'Abandon Hope...'" => 1,
     "Daughter of the Regiment: Overture" => 1,
     "Derby Day Overture" => 1,
     "Deux Journees, Les: Overture (The Water Carrier)" => 1,
     "Dialogues - Triple Concerto for Violin, Cello, and Piano" => 1,
     "Die Meistersinger: Overture" => 1,
     "Die Meistersinger: Overture" => 1,
     "Divertimenti (3) for String Quartet" => 1,
     "Divertimento, K. 439b/2: Alternate Last Movement" => 1,
     "Doctor Merryhart (Comedy Overture)" => 1,
     "Doktor Faust, Overture to the puppet-play" => 1,
     "Domino noir, Le: Overture" => 1,
     "Don Carlos Overture" => 1,
     "Don Giovanni: Overture" => 1,
     "Don Pasquale: Overture" => 1,
     "Donna Diana: Overture" => 1,
     "Double Concerto - See Concerto for Flute & Bass" => 1,
     "Double Concerto for Harpsichord, Piano, & 2 Chamber Orchs" => 1,
     "Dragons de Villars, Les: Overture" => 1,
     "Dramatic Overture for Large Orchestra" => 1,
     "Dramatic Overture" => 1,
     "Drottnignen av Golconda: Overture" => 1,
     "Drottningen av Golconda: Overture" => 1,
     "Drysdale Overture" => 1,
     "Duets for Violin and Viola" => 1,
     "Duo No. 2 for Violin and Viola, K. 424" => 1,
     "Duo for Viola and Piano" => 1,
     "Echoes of Ossian Overture" => 1,
     "Edinburgh Overture" => 1,
     "Egmont: Overture" => 1,
     "Eine Lustspiel Overture" => 1,
     "Ekkehard Overture" => 1,
     "Elegiac Overture" => 1,
     "Elegy (Adagio) for String Quartet - after Lady Macbeth" => 1,
     "Enchanter, The: Overture" => 1,
     "Enigma Variations" => 1,
     "Enigma Variations: Nimrod [arr: Brass]" => 1,
     "Enigma Variations: Nimrod" => 1,
     "Erste Falte, Die: Overture" => 1,
     "Esclavos Felices: Overture" => 1,
     "Eskapaden eines Gassenhauser (see: Variations...)" => 1,
     "Estrella de Soria: Overture" => 1,
     "Euryanthe: Overture" => 1,
     "Fair Melusina: Overture" => 1,
     "Fairies, The: Overture" => 1,
     "Fairy Tale, The (Concert Overture)" => 1,
     "Fairy Tales for Clarinet, Viola, Piano, op. 132" => 1,
     "Fall of Babylon, The: Overture" => 1,
     "Faniska: Overture" => 1,
     "Fantasia Concertante, for Viola, Cello, and orch" => 1,
     "Fantasia on Spanosh Themes - See Span Overture #2" => 1,
     "Fantastic Overture" => 1,
     "Fantasy Voyage to Faroe - See: Rhapsodic Overture" => 1,
     "Fantasy and Variations on a Theme by Bellini" => 1,
     "Fantasy for Piano, D. 760 ('Wanderer'): Movement 2." => 1,
     "Fantasy for Viola" => 1,
     "Fatinitza: Overture" => 1,
     "Faust Overture, A" => 1,
     "Faust: Overture" => 1,
     "Fausto Criollo Overture" => 1,
     "Fausto Criollo: Overture" => 1,
     "Fausto criollo Overture" => 1,
     "Festival Overture in March Style (1862 World Fair)" => 1,
     "Festival Overture on the Danish National Anthem" => 1,
     "Festival Overture" => 1,
     "Festival Overture, Op. 62" => 1,
     "Festive Overture" => 1,
     "Fidelio: Overture" => 1,
     "Fine Arts Quartet; Sharon" => 1,
     "Fine Arts Quartet; Sharon" => 1,
     "Five Variants of Dives and Laz..-See: Variations.." => 1,
     "Fledermaus: Overture [Abridged]" => 1,
     "Fledermaus: Overture [Rehearsal]" => 1,
     "Fledermaus: Overture" => 1,
     "Flos Campi (Suite for Viola, Chorus, Orchestra)" => 1,
     "Flying Dutchman: Overture - Excerpt" => 1,
     "Flying Dutchman: Overture - Excerpt" => 1,
     "Flying Dutchman: Overture" => 1,
     "For Valour (Concert Overture)" => 1,
     "Forza del Destino, La: Overture" => 1,
     "Forza del destino, La: Overture" => 1,
     "Fossegrimen: Overture" => 1,
     "Four Seasons: Winter: Movement 2 [arr for Cello]" => 1,
     "Fra Diavolo: Overture" => 1,
     "Fractured Lines (Double Percussion Concerto)" => 1,
     "Fragment for String Quartet" => 1,
     "Franc-juges: Overture (Transcribed for Band)" => 1,
     "Franc-juges: Overture" => 1,
     "Francesca da Rimini Overture" => 1,
     "Freischutz: Overture" => 1,
     "Friedensengel, Der: Overture" => 1,
     "Frog He Went a-courting, A (Variations for Cello & Piano)" => 1,
     "Froissart Overture" => 1,
     "From the Cradle to the Grave - Symphony Poem 13" => 1,
     "From the House of the Dead: Overture" => 1,
     "Fugue for String Quartet, Op. 81, No. 4" => 1,
     "Gadfly, The: Overture" => 1,
     "Garatuja Overture" => 1,
     "Gayne: Nuneh Variations (arr. Violin & Piano)" => 1,
     "Gazza Ladra, La: Overture" => 1,
     "Gazza Ladra: Overture" => 1,
     "Gemini Variations for Flute, Violin & Piano" => 1,
     "Genom Kvallen - See: Concerto for Piano, Choir, Or." => 1,
     "Genom Kvallen - See: Concerto for Piano, Choir, Orchestra" => 1,
     "Genom Kvallen - See: Concerto for Piano, Chorus, Orchestra" => 1,
     "Genoveva: Overture" => 1,
     "Giorno di Regno, Un (Il finto Stanislao): Overture" => 1,
     "Giovanna d'Arco: Overture" => 1,
     "Girl Crazy: Overture" => 1,
     "Gnarly Buttons (Concerto for Clarinet)" => 1,
     "Goldoni Overture, A" => 1,
     "Grand Variations on Rule Brittania" => 1,
     "Grande Sonate, Op. 33: Movement 2 (Quasi-Faust)" => 1,
     "Grosse Fuge for String Quartet, Op. 133" => 1,
     "Guardian Outwitted, The: Overture" => 1,
     "Guardian Outwitted, The: Overture" => 1,
     "Gudrun: Overture" => 1,
     "Gwendoline: Overture" => 1,
     "Gypsy Baron: Overture" => 1,
     "Halka: Overture" => 1,
     "Hamlet (Fantasy Overture), Op. 67" => 1,
     "Hamlet (Fantasy Overture), Op. 67" => 1,
     "Hamlet (Fantasy Overture), Op. 67a" => 1,
     "Hamlet (Fantasy Overture), op. 67a" => 1,
     "Hamlet Overture" => 1,
     "Hamlet: Overture" => 1,
     "Hansel and Gretel: Overture" => 1,
     "Hebrides Overture" => 1,
     "Hebrides Overture: Rehearsal Fragment" => 1,
     "Heilige Linde, Die: Overture" => 1,
     "Helios Overture" => 1,
     "Helios Overture, Op. 17" => 1,
     "Henry IV: Overture" => 1,
     "Hermann and Dorothea: Overture" => 1,
     "Heroic Overture" => 1,
     "Herzog Wildfang: Overture" => 1,
     "Hiawatha: Overture" => 1,
     "Hjalarljod Overture" => 1,
     "Holiday Overture" => 1,
     "Homecoming of the Exile: Overture (Die Heimkehr)" => 1,
     "Horaces, Les: Overture" => 1,
     "Hotellerie Portugaise, L': Overture" => 1,
     "Huerfanita, La: Overture" => 1,
     "Hulpigung's Overture" => 1,
     "Hussite Overture" => 1,
     "Idomeneo: Overture" => 1,
     "If I Were King: Overture" => 1,
     "Im Fruhling Overture - See: In Springtime Overture" => 1,
     "Impresario: Overture" => 1,
     "Improvisations (4) for Violin, Viola, and Cello" => 1,
     "In Autumn (Concert Overture)" => 1,
     "In Springtime Overture" => 1,
     "Inganno felice: Overture" => 1,
     "Introduction & Variations for Flute and Piano, D. 802" => 1,
     "Introduction & Variations. for Flute and Piano, D. 802" => 1,
     "Introduction and Dance, for Viola and Piano" => 1,
     "Introduction, Theme and Variations, for Contrabassoon and Piano" => 1,
     "Introduction, Theme, and Variations in f for Oboe & Orchestra" => 1,
     "Iphigenie en Aulide: Overture" => 1,
     "Italiana in Algeri: Overture" => 1,
     "Jayhawk, Magic Bird: Overture" => 1,
     "Jealousy Overture" => 1,
     "Jean de Paris: Overture" => 1,
     "Jerusalem: Overture" => 1,
     "Jessonda: Overture" => 1,
     "John Socman: Overture" => 1,
     "Joyous Overture, A" => 1,
     "Jubel Overture" => 1,
     "Jubel-Overture" => 1,
     "Jubilation Overture" => 1,
     "Julius Caesar Overture" => 1,
     "Julius Caesar Overture" => 1,
     "Julius Caesar: Overture" => 1,
     "Kammermusik No. 5 for Viola and Chamber Orchestra" => 1,
     "Karelia: Overture" => 1,
     "Kathchen von Heilbronn, Das: Overture" => 1,
     "Katya Kabanova: Overture" => 1,
     "King John Overture" => 1,
     "King John Overture" => 1,
     "King Lear Overture" => 1,
     "King Lear: Overture" => 1,
     "King Manfred: Overture" => 1,
     "King Stephan: Overture" => 1,
     "Kiss, The: Overture" => 1,
     "Kleist Overture, Op. 16" => 1,
     "Knight Templar, Overture (Der Tempelritter)" => 1,
     "Kol Nidre, arr. for Viola and Piano" => 1,
     "Kol Nidre, for Strings. Quartet." => 1,
     "Konzertmusik for Viola and Chamber Orchestra, Op. 48" => 1,
     "Konzertstuck for Viola and Piano" => 1,
     "Lachrymae for Viola and Piano" => 1,
     "Lachrymae, for Viola and Orchestra" => 1,
     "Ladders to Fire (Concerto for Two Pianos)" => 1,
     "Lady Godiva Overture" => 1,
     "Lamenting with Ariadne, for Viola and Chamber Orchestra" => 1,
     "Langsamer Satz for String Quartet" => 1,
     "Latin-American Symphonette: Movements 2, 3" => 1,
     "Laurentian Overture, A" => 1,
     "Le Maschere: Overture" => 1,
     "Leonore Overture No. 1" => 1,
     "Leonore Overture No. 2 - Rehearsal Fragment" => 1,
     "Leonore Overture No. 2" => 1,
     "Leonore Overture No. 3 - Rehearsal Fragment" => 1,
     "Leonore Overture No. 3" => 1,
     "Liebesverbot, Das: Overture" => 1,
     "Lied, for Viola and Orchestra" => 1,
     "Life for the Tsar, A: Overture" => 1,
     "Light Cavalry: Overture" => 1,
     "Lilliburlero Variations for 2 Pnos" => 1,
     "Linda di Chamounix: Overture" => 1,
     "Lions (A Dream) for jazz Quartet and Orchestra" => 1,
     "Little Overture" => 1,
     "Liturgy for Viola and Orchestra: See: Mourned by..." => 1,
     "Lodoiska: Overture" => 1,
     "London Overture, A" => 1,
     "Loreley, Die: Overture" => 1,
     "Louisville Concerto, for Violin, Viola, Cello and Orchestra" => 1,
     "Love Sonnets (4) for Baritone and Chamber Orchestra" => 1,
     "Love and the Poet, Overture: See - Amor & Digteren" => 1,
     "Luisa Miller: Overture" => 1,
     "Lustspiel Overture" => 1,
     "Lux Aeterna for Flute and Viola" => 1,
     "Lux Aeterna, for Violin, Viola, and Orchestra" => 1,
     "Lyric Fantasies for Viola and Strings" => 1,
     "Lyric Movement, for Viola and Small Orchestra" => 1,
     "Lyric Suite, for String Quartet" => 1,
     "Macbeth Overture" => 1,
     "Macbeth: Overture" => 1,
     "Magic Flute: Overture" => 1,
     "Maja dolorosa, La - arr: Viola & Piano" => 1,
     "Majo discreto, El - arr: Viola & Piano" => 1,
     "Majo olvidado, El - arr: Viola & Piano" => 1,
     "Manfred: Overture" => 1,
     "Marionettes: Overture" => 1,
     "Mariotta: Overture" => 1,
     "Marriage of Figaro: Overture" => 1,
     "Masaniello: Overture" => 1,
     "Maschere, Le: Overture" => 1,
     "Maskarade: Overture" => 1,
     "Maskerade: Overture" => 1,
     "Masques et Bergamasques: Overture" => 1,
     "Matrimonia segreto, Il: Overture" => 1,
     "May Night: Overture" => 1,
     "Medea: Overture" => 1,
     "Meistersinger: Overture" => 1,
     "Melpomene, A Dramatic Overture" => 1,
     "Merchant of Venice, The Overture" => 1,
     "Merchant of Venice, The Overture" => 1,
     "Merry Mount: Overture" => 1,
     "Merry Wives of Windsor: Overture" => 1,
     "Metamorphosen - See: Concerto for Violin No. 2" => 1,
     "Midsummer Night's Dream, A Overture" => 1,
     "Midsummer Night's Dream, A Overture" => 1,
     "Midsummer Night's Dream: Overture" => 1,
     "Midsummer Night's Dream: Overture, Scherzo, Noct" => 1,
     "Midsummer Night's Dream: Overture, Scherzo, Noct" => 1,
     "Midsummer Night's Dream: Overture, Scherzo, Nocturne" => 1,
     "Mignon: Overture" => 1,
     "Millennium Overture, A" => 1,
     "Mirar de la Maja, El - arr: Viola & Piano" => 1,
     "Modinha for Oboe, Viola, and Piano" => 1,
     "Monologue for Viola and Strings" => 1,
     "Morning, Noon, and Night in Vienna: Overture" => 1,
     "Morte di Semiramide: Overture" => 1,
     "Mourned by the Wind, for Viola & Orchestra (Liturgy)" => 1,
     "Much Ado About Nothing Overture" => 1,
     "Much Ado About Nothing Overture" => 1,
     "Much Ado About Nothing Overture" => 1,
     "Much Ado About Nothing Overture" => 1,
     "Much Ado About Nothing: Overture" => 1,
     "Muette de Portici, La: Overture" => 1,
     "Music Day at Plon: Variations for Clarinet and Strings" => 1,
     "My Home Overture" => 1,
     "Nabucco: Overture" => 1,
     "Namensfeier Overture" => 1,
     "Namouna: Theme and Variations" => 1,
     "Neues vom Tage: Overture" => 1,
     "Nine-Minute Overture" => 1,
     "Nobody knows de trouble I seen (Trumpet Concerto)" => 1,
     "Nordic Nature Symphony No. 6 ('Landscape Dreams')" => 1,
     "Norma: Overture" => 1,
     "Nouveau seigneur du Village, Le: Overture" => 1,
     "Nouveau seigneur du Village: Overture" => 1,
     "Nymphea, for String Quartet and electronics" => 1,
     "Oberon: Overture [Abridged]" => 1,
     "Oberon: Overture" => 1,
     "Oberto: Overture" => 1,
     "Occasional Overture" => 1,
     "Oresteya Overture" => 1,
     "Orestia, The: Overture" => 1,
     "Orpheus in Hades: Overture" => 1,
     "Othello Overture" => 1,
     "Othello: Overture" => 1,
     "Outback Overture, An" => 1,
     "Outdoor Overture, An" => 1,
     "Overture ('In Memoriam Heinrich von Kleist')" => 1,
     "Overture for a Comedy" => 1,
     "Overture for a Comic Book Hero" => 1,
     "Overture in C" => 1,
     "Overture in g" => 1,
     "Overture in g, BWV. 822" => 1,
     "Overture in the French Style" => 1,
     "Overture on Flying Dutchman as Played at Sight..." => 1,
     "Overture on Flying Dutchman as Played at Sight..." => 1,
     "Overture on Hebrew Themes" => 1,
     "Overture on Russian Themes" => 1,
     "Overture on Russian and Kirghiz Folk Themes" => 1,
     "Overture to a Comedy (Overture zu einem Lustspiel)" => 1,
     "Overture to a Grand Orchestra" => 1,
     "Overture to a Greek Tragedy" => 1,
     "Overture to a Greek Tragedy: Oedipus at Colonus" => 1,
     "Overture, Scherzo and Finale, Op. 52" => 1,
     "Oye mi llanto - arr: Viola & Piano" => 1,
     "Pacific 231 - See: Mouvement Symphonique No. 1" => 1,
     "Paganini Variations for Guitar - see Concerto for Guitar" => 1,
     "Paganini Variations, for Guitar and Orchestra" => 1,
     "Paisajes Mexicanos (Symphonic Variations)" => 1,
     "Pampamapa - Arr: Viola & Piano" => 1,
     "Parachute Dancing Overture" => 1,
     "Paraphrase on Tannhauser Overture of Wagner" => 1,
     "Paraphrase on Tannhauser Overture" => 1,
     "Paria: Overture" => 1,
     "Paroles Tissees (Tenor, Strings, Harp, Piano, Percussion)" => 1,
     "Partita for Cello, Piano, Harpsichord, Guitar, Percussion" => 1,
     "Partita for Violin No. 1: Three Movements (arr. Guitar)" => 1,
     "Pastoral Fantasia, for Viola and Strings" => 1,
     "Pathetique Overture" => 1,
     "Patrie Overture" => 1,
     "Peace Overture" => 1,
     "Penelope: Overture" => 1,
     "Peter Schmoll: Overture" => 1,
     "Petit Chaperon Rouge: Overture" => 1,
     "Petit Chaperon rouge, Le: Overture" => 1,
     "Petites Pieces (4) for Viola, Piano, and Horn" => 1,
     "Petrouchka: 3 Movements for Piano" => 1,
     "Petrouchka: 3 Movements for Piano" => 1,
     "Phantasy for Viola and Orchestra" => 1,
     "Phedre: Overture" => 1,
     "Pieces for Clarinet, Viola and Piano (8), Op. 83" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 1 in a" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 2 in b" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 3 in c" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 4 in d" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 5 in f" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 6 in g" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 7 in B" => 1,
     "Pieces for Clarinet, Viola and Piano (8): No. 8 in e-fl" => 1,
     "Pieces for Clarinet, Viola, and Piano (8), Op. 83" => 1,
     "Pietra del paragone: Overture" => 1,
     "Pique Dame: Overture" => 1,
     "Pirata, Il: Overture" => 1,
     "Plaint and Variations for Guitar and Percussion" => 1,
     "Plaint and Variations, for Guitar and Percussion" => 1,
     "Plump Jack: Overture" => 1,
     "Poet and Peasant: Overture" => 1,
     "Poisoned Kiss: Overture" => 1,
     "Polka for String Quartet - (from Age of Gold)" => 1,
     "Polonia Overture" => 1,
     "Portsmouth Point Overture" => 1,
     "Powder her Face: Overture, Waltz and Finale" => 1,
     "Powder her Face: Overture, Waltz and Finale" => 1,
     "Prairie Overture" => 1,
     "Pre aux clercs, La: Overture" => 1,
     "Preciosa: Overture" => 1,
     "Prelude & Fugue for Viola Da Gamba, BWV.894 in a" => 1,
     "Prelude and Theme with Variations for Violin Solo" => 1,
     "Prendiditos de la mano - arr: Viola & Piano" => 1,
     "Preziosa: Overture" => 1,
     "Prince Igor: Overture" => 1,
     "Prince Kholmski: Overture" => 1,
     "Promenade Overture" => 1,
     "Prometheus Bound Overture" => 1,
     "Prometheus, Poem of Fire - See: Symphony No. 5" => 1,
     "Punto de habanera - Arr: Viola & Piano" => 1,
     "Quartet for Strings No. 4 in c, Op. 18/4: Movement 1" => 1,
     "Quartet for Strings No. 4 in c, Op. 18/4: Movement 3" => 1,
     "Quartet for Strings No. 5 in A, Op. 18/5: Movement 2" => 1,
     "Quartet for Strings No. 5 in A, Op. 18/5: Movement 3" => 1,
     "Quartet for Strings, D. 810 ('Death...') Movement 2" => 1,
     "Quartet for Strings, D. 810 ('Death...'): Movement 3" => 1,
     "Quartet for Strings, D. 810 ('Death...): Movement 3" => 1,
     "Quartet for Strings, Op. 50, No. 2: Movement 2" => 1,
     "Quartet for Strings, Op. 76, No. 5: Movement 2" => 1,
     "Quasi hoquetus, for Bassoon, Piano and Viola" => 1,
     "Quattro Rusteghi, I: Overture" => 1,
     "Quintet for Clar and String Quartet: Fourth Movement" => 1,
     "Quintet for Clarinet and String Quartet: Fourth Movement" => 1,
     "Quintet for Clarinet, Violin, Viola, Cello, and Piano, Op. 11" => 1,
     "Quintet for Piano & String Quartet" => 1,
     "Quintet for Piano & Strings in A: 5th Movement" => 1,
     "Raftsman, The: Overture" => 1,
     "Ramuntcho: Overture" => 1,
     "Rantzau, I: Overture" => 1,
     "Raymond: Overture" => 1,
     "Reflets (5) for Soprano, Baritone, and Orchestra" => 1,
     "Reis Glirios (Overture)" => 1,
     "Requiem for Piano and String Quartet" => 1,
     "Return of Ulysses, The: Overture" => 1,
     "Rhapsodic Overture (Fantasy Voyage to Faroe Islands)" => 1,
     "Rhapsodic Overture (Imaginary Journey to Faroe...)" => 1,
     "Rhapsodies (2) for Piano, Oboe, Viola" => 1,
     "Rhapsodies (2) for Piano, Oboe, Viola" => 1,
     "Rhapsody for Viola and Orchestra" => 1,
     "Rhapsody-Concerto for Viola and Orchestra" => 1,
     "Rienzi: Overture" => 1,
     "Rip Van Winkle Overture" => 1,
     "Rispetti e Strambotti (Quartet. #1, arr: String Ensemble)" => 1,
     "Rob Roy Overture" => 1,
     "Robert Browning Overture" => 1,
     "Roi d'Ys, Le: Overture" => 1,
     "Roman Carnival Overture" => 1,
     "Romance for Viola and Orchestra, Op. 85" => 1,
     "Romeo and Juliet Overture" => 1,
     "Romeo and Juliet: Overture" => 1,
     "Rosa y el sauce - arr: Viola & Piano" => 1,
     "Rosamunde: Overture" => 1,
     "Rosenberger Variations, for String Quartet" => 1,
     "Royal Fireworks Music: Movement 1" => 1,
     "Rubayat, for Baritone. and Chamber Ens" => 1,
     "Ruins of Athens: Overture" => 1,
     "Rule Britannia Overture" => 1,
     "Russian Easter Overture" => 1,
     "Russian Overture" => 1,
     "Russlan and Ludmilla: Overture" => 1,
     "Ruy Blas Overture" => 1,
     "Sakuntala: Overture" => 1,
     "Salve Regina, for Baritone & Orchestra" => 1,
     "Samson: Overture (Arr: Sargent)" => 1,
     "Santa Claus Overture (a lyrical intermezzo)" => 1,
     "Sarka: Overture" => 1,
     "Saskia Overture" => 1,
     "Satyricon Overture" => 1,
     "Scala di Seta: Overture" => 1,
     "Scala di seta: Overture" => 1,
     "Scapino Overture" => 1,
     "Scenes Historiques I, Op. 25, No. 1: Overture" => 1,
     "Schauspiel Overture" => 1,
     "Scherzo for String Quartet, Op. 81, No. 2" => 1,
     "Scherzo for Viola and Cello" => 1,
     "Schmied von Marienburg, Der: Overture" => 1,
     "School for Scandal Overture" => 1,
     "Se equivoco la paloma - Arr: Viola & Piano" => 1,
     "Seasons: Spring: First Movement" => 1,
     "Seasons: Spring: Movement 1" => 1,
     "Secret of Suzanne, The: Overture" => 1,
     "Semiramide: Overture" => 1,
     "Semyon Kotko: Overture" => 1,
     "Septet for Clarinet, Horn, Bassoon, Piano, Violin, Viola, and Cello" => 1,
     "Serenade for Flute, Violin, and Viola in D, Op. 25" => 1,
     "Serenade for Orchestra in F: Movements 1, 3, 5" => 1,
     "Serenade for Tenor, Horn, and Strings, Op. 31" => 1,
     "Serenade, K. 320, in D ('Posthorn'): 4 Movements" => 1,
     "Session II for Violin and Viola" => 1,
     "Seven Gates of Jerusalem - See: Symphony No. 7" => 1,
     "Shakespeare Overture, A" => 1,
     "Short Overture, for Strings" => 1,
     "Siege of Corinth, The: Overture" => 1,
     "Signor Bruschino: Overture" => 1,
     "Sinfonia Concertante for Violin and Viola, K. 364" => 1,
     "Sinfonia Concertante, Violin, Viola, Oboe, Bassoon, Orchestra" => 1,
     "Sinfonia Concerto No. 1 in F for 2 Violin & Orchestra" => 1,
     "Sinfonia Concerto No. 2 in B-flat for 2 Violin & Orchestra" => 1,
     "Sinfonia Fidei, for Soprano, Tenor, Chorus, Orchestra" => 1,
     "Sinfonia in Memorium (Symphonic Metamorfosen)" => 1,
     "Sinfonisia luonnoksia - See: Symphonic Sketches" => 1,
     "Sleeping Beauty: Variations and Entr'acte" => 1,
     "Soleares: Overture" => 1,
     "Solemn Overture on Russian Themes" => 1,
     "Solemn Overture, A (King Lear)" => 1,
     "Sonata III: Movement 1" => 1,
     "Sonata III: Movement 2: Cancion and Postlude" => 1,
     "Sonata da Caccia, for Oboe, Horn, Harpsichord" => 1,
     "Sonata for Arpeggione - arr. as Cello Concerto" => 1,
     "Sonata for Cello and Piano in One Movement" => 1,
     "Sonata for Flute, Harp, and Viola No. 2" => 1,
     "Sonata for Harpsichord and Vn ('Jeux Olympiques')" => 1,
     "Sonata for Piano No. 13 in E-Flat: Movement 1" => 1,
     "Sonata for Piano No. 14 ('Moonlight'): Movement 1" => 1,
     "Sonata for Piano No. 14 ('Moonlight'): Movement 1,3" => 1,
     "Sonata for Piano No. 2 ('Funeral March'): Movement 2" => 1,
     "Sonata for Piano No. 2 ('Funeral March'): Movement 3" => 1,
     "Sonata for Piano No. 2 ('Funeral March'): Movement 3" => 1,
     "Sonata for Piano No. 2 ('Funeral March'): Movement 3" => 1,
     "Sonata for Piano No. 2 ('Funeral March'): Movement 4" => 1,
     "Sonata for Piano No. 2 ('Funeral'): Movement 3" => 1,
     "Sonata for Piano No. 2 ('Funeral'): Movement 4" => 1,
     "Sonata for Piano No. 2 ('Funeral'): Movements 2 & 3" => 1,
     "Sonata for Piano No. 2 ('Funeral'): Movements 3 & 4" => 1,
     "Sonata for Piano No. 2 in g#, Op. 19: Movement 1" => 1,
     "Sonata for Piano No. 2: Movement 2" => 1,
     "Sonata for Piano No. 2: Movement 3" => 1,
     "Sonata for Piano no. 8 ('Pathetique'): Movement 2" => 1,
     "Sonata for Piano, D. 959, in A: Movement 2" => 1,
     "Sonata for Viola and Piano No. 1 in c" => 1,
     "Sonata for Viola and Piano No. 1" => 1,
     "Sonata for Viola and Piano No. 1, Op. 1" => 1,
     "Sonata for Viola and Piano No. 2 in F" => 1,
     "Sonata for Viola and Piano No. 2" => 1,
     "Sonata for Viola and Piano No. 2, Op. 43" => 1,
     "Sonata for Viola and Piano in F, Op. 11, No. 4" => 1,
     "Sonata for Viola and Piano no. 1" => 1,
     "Sonata for Viola and Piano, Op. 147" => 1,
     "Sonata for Viola and Piano, op. 147" => 1,
     "Sonata for Viola da Gamba & Harpsichord, BWV. 1027, in G" => 1,
     "Sonata for Viola da Gamba & Harpsichord, BWV. 1028, in D" => 1,
     "Sonata for Viola da Gamba & Harpsichord, BWV. 1029, in g" => 1,
     "Sonata for Violin and Piano No. 3: First Movement" => 1,
     "Sonatine: Movements 1, 2" => 1,
     "Songs of a Knight Errant, for String Quartet & Harp" => 1,
     "Spanish Overture No. 1" => 1,
     "Spanish Overture No. 2 (Fantasy on Spanish Themes)" => 1,
     "Spanish Popular Songs (7) - arr: Viola & Piano" => 1,
     "Speziale, Lo: Overture" => 1,
     "Spring Overture, Op. 15" => 1,
     "Stabat Mater, for Soprano and String Quartet" => 1,
     "Stiffelio: Overture" => 1,
     "Stimmen...Verstummen (Symphony in 12 Movements)" => 1,
     "Storm, The (Overture), op. 76" => 1,
     "Strathclyde Concerto No. 3 for Horn, Trumpet, Orchestra" => 1,
     "Strathclyde Concerto No. 4 for Clarinet and Orchestra" => 1,
     "String Around Autumn, A, for Viola and Orchestra" => 1,
     "Styx, for Viola, Chorus & Orchestra" => 1,
     "Suite : 14: Gavotte and Variations" => 1,
     "Suite No. 3 for Violin, Viola, and Strings" => 1,
     "Suite for Orchestra No. 3: Theme and Variations" => 1,
     "Suite for String Quartet and Piano" => 1,
     "Suite for Viola and Orchestra" => 1,
     "Sultane, La: Overture and Allegro" => 1,
     "Summer Night and Sunrise (Symphony Poem)" => 1,
     "Svat: Overture" => 1,
     "Symphonic Concerto for Piano: Movement 2" => 1,
     "Symphonic Concerto for Piano: Second Movement" => 1,
     "Symphonic Variations on a Popular Song" => 1,
     "Symphonic Variations on an African Air" => 1,
     "Symphonie Espagnole: Movements 4, 5 - Violin & Piano" => 1,
     "Symphonie Fantastique: 2nd Movement. Excerpt" => 1,
     "Symphonie fantastique: Movement. 4 [arr: Brass]" => 1,
     "Symphonie fantastique: Movement 4 [arr: Brass]" => 1,
     "Symphony ('Festive') - See: Festive Symphony" => 1,
     "Symphony ('Israel') -- See: Israel Symphony" => 1,
     "Symphony No. 10 ('Short Symphony')" => 1,
     "Symphony No. 12 ('Symphony Klangfiguren')" => 1,
     "Symphony No. 1: Blumine Movement" => 1,
     "Symphony No. 1: Movement 2" => 1,
     "Symphony No. 1: Movement 3" => 1,
     "Symphony No. 1: Movement. 3" => 1,
     "Symphony No. 2 ('Ocean') [2nd Movement Omitted]" => 1,
     "Symphony No. 2 ('Ocean') [Orig. 4 Movement Vers]" => 1,
     "Symphony No. 2 ('Romantic'): Movements 2, 3" => 1,
     "Symphony No. 2, Op. 17: Movement 3 (Ostinato)" => 1,
     "Symphony No. 2: Movement 1" => 1,
     "Symphony No. 2: Movement 2 (Interlude & Dance)" => 1,
     "Symphony No. 2: Movement 2" => 1,
     "Symphony No. 2: Movement. 3" => 1,
     "Symphony No. 2: Movements 3, 2" => 1,
     "Symphony No. 2: Rehearsal of Second Movement" => 1,
     "Symphony No. 3 ('Eroica'): Movement 2" => 1,
     "Symphony No. 3 ('Eroica'): Movement 2, opening" => 1,
     "Symphony No. 3: Movements 4 & 5" => 1,
     "Symphony No. 4 ('Holmia'): Movement 1" => 1,
     "Symphony No. 41 ('Jupiter'): Movement 4" => 1,
     "Symphony No. 4: Movement 3" => 1,
     "Symphony No. 4: Movement 4" => 1,
     "Symphony No. 4: Movements 1 and 2" => 1,
     "Symphony No. 5: Movement 1" => 1,
     "Symphony No. 5: Movement 2" => 1,
     "Symphony No. 5: Movement 3" => 1,
     "Symphony No. 5: Movement 4" => 1,
     "Symphony No. 5: Movements 1, 2, 4" => 1,
     "Symphony No. 6 ('Pathetique') Movement 2" => 1,
     "Symphony No. 6 ('Pathetique') Movement 4" => 1,
     "Symphony No. 6 ('Pathetique'): Movement 2" => 1,
     "Symphony No. 6, For Viola (2) and Orchestra" => 1,
     "Symphony No. 6, for Viola (2) and Orchestra" => 1,
     "Symphony No. 6: Last 3 Movements only" => 1,
     "Symphony No. 6: Movement 2 [Abridged]" => 1,
     "Symphony No. 6: Movement 3 [Abridged]" => 1,
     "Symphony No. 6: Movements 2, 3, 4" => 1,
     "Symphony No. 7, for Strings and Harpsichord" => 1,
     "Symphony No. 7: Movement 1 - Fragment" => 1,
     "Symphony No. 7: Rehearsal - 2nd Movement" => 1,
     "Symphony No. 8 ('Unfinished'): First Movement" => 1,
     "Symphony No. 8: Movement 2" => 1,
     "Symphony No. 9 ('From the New World') Movement 1" => 1,
     "Symphony in C (with revised 2nd Movement)" => 1,
     "Symphony on a French Mt. Air -See: Symphony No.1" => 1,
     "Syrens, The: Overture" => 1,
     "Tam O'Shanter, Overture" => 1,
     "Taming of the Shrew, The Overture" => 1,
     "Taming of the Shrew, The Overture" => 1,
     "Taming of the Shrew, The: Overture" => 1,
     "Taming of the Shrew: Overture" => 1,
     "Tancredi: Overture" => 1,
     "Tannhauser: Overture [Arr: Sousa - for Band]" => 1,
     "Tannhauser: Overture and Bacchanale" => 1,
     "Tannhauser: Overture" => 1,
     "Te Deum a Due Cori: Overture" => 1,
     "Tempest, The: Overture" => 1,
     "Theater Set: Overture" => 1,
     "Theatre Overture" => 1,
     "Theme and Var for Viola and Orchestra" => 1,
     "Theme and Variations for Orchestra, Op. 43b" => 1,
     "Theme and Variations for Piano" => 1,
     "Theme and Variations for Viola and Orchestra" => 1,
     "Theme and Variations for Violin, Cello and Orchestra, Op. 29a" => 1,
     "Theme and Variations for Winds / Woodwinds, Op. 43a" => 1,
     "Theme and Variations for Winds / Woodwinds, Op. 43a" => 1,
     "Theme and Variations for Winds / Woodwinds, Op. 43a" => 1,
     "Theme and Variations for Woodwinds / Winds, Op. 43a" => 1,
     "Theme and Variations in F, Op. 97" => 1,
     "Theme and Variations in b for String Quartet" => 1,
     "Theme and Variations, VL. 151, in D" => 1,
     "Theme, Variations & Fugue for Piano & Or (Rasmandala)" => 1,
     "Thomas and Sally: Overture" => 1,
     "Tiefland: Overture" => 1,
     "Timoleon: Overture" => 1,
     "Tinker's Wedding: Comedy Overture" => 1,
     "To Hiroshige's Cat: Movement 1" => 1,
     "Tom Sawyer Overture" => 1,
     "Tote Stadt, Die: Marietta's Lied (arr. Soprano, Piano, String Quartet)" => 1,
     "Tragedy of Coriolanus, The Overture" => 1,
     "Tragedy of Coriolanus, The Overture" => 1,
     "Tragic Overture" => 1,
     "TreeStone, for Soprano, Tenor, and Chamber Orchestra" => 1,
     "Tresor Suppose, Le: Overture" => 1,
     "Trio for Clarinet, Viola, & Piano, K. 498 ('Kegelstatt')" => 1,
     "Trio for Guitar, Violin, and Viola" => 1,
     "Trio for Heckelphone, Viola, and Piano" => 1,
     "Trio for Piano, Clarinet, & Viola, K. 498 ('Kegelstatt')" => 1,
     "Trio in E-Flat for Piano, Clarinet, Viola ('Kegelstatt')" => 1,
     "Triple Overture, for Violin, Cello, Piano, and Orchestra" => 1,
     "Triple Overture, for Violin, Cello, Pn, and Orchestra" => 1,
     "Triple Overture, for Violin, Cello, Pn, and Orchestra" => 1,
     "Triste - arr: Viola & Piano" => 1,
     "Troubadours (Variations for Guitar and Orchestra)" => 1,
     "Tryptique for Strings: Movements 1, 3" => 1,
     "Tsar Boris: Overture" => 1,
     "Tsar's Bride, The: Overture" => 1,
     "Turangalila Symphony: Movement 3" => 1,
     "Turangalila Symphony: Movement 6" => 1,
     "Turco in Italia: Overture" => 1,
     "Twelfth Night Overture" => 1,
     "Twelfth Night Overture" => 1,
     "Twelfth Night: Overture" => 1,
     "Variations & Fugue on Purcell See: Young Person's.." => 1,
     "Variations (15) on a Finnish Song" => 1,
     "Variations (24) on 'La Folla Di Spagna'" => 1,
     "Variations For Oboe (2) and English Horn on 'La ci darem'" => 1,
     "Variations Sefaa Esec, VL. 258" => 1,
     "Variations Symphonique -  See: Symphonic Variations" => 1,
     "Variations and Fugue on Theme of Handel" => 1,
     "Variations and Fugue on a Theme by Handel, Op. 24" => 1,
     "Variations and Fugue on a Theme of Beethoven" => 1,
     "Variations and Fugue on a Theme of Hiller, Op. 100" => 1,
     "Variations and Fugue on a Theme of Kuhnau" => 1,
     "Variations and Fugue on a Theme of Mozart" => 1,
     "Variations for Cello and Piano on 'Bei Mannern'" => 1,
     "Variations for Cello and Piano on 'Ein Madchen...'" => 1,
     "Variations for Cello and Piano on 'Judas Maccabeus'" => 1,
     "Variations for Clarinet & Orchestra in B-Flat on Euer Liebreiz" => 1,
     "Variations for Flute and Piano, Op. 105" => 1,
     "Variations for Flute and Piano, Op. 107" => 1,
     "Variations for Orchestra on a Theme of Ruth Gipps" => 1,
     "Variations for Orchestra" => 1,
     "Variations for Piano Trio in E-flat, op. 44 (14)" => 1,
     "Variations for Piano Trio on 'Ich bin der Schneider'" => 1,
     "Variations for Piano and Orchestra" => 1,
     "Variations for Piano in A on a Russian Theme" => 1,
     "Variations for Piano in D (6)" => 1,
     "Variations for Piano in F (6)" => 1,
     "Variations for Piano in F on an Original Theme" => 1,
     "Variations for Piano in F on an Original Theme" => 1,
     "Variations for Piano in c (32)" => 1,
     "Variations for Piano on 'God Save the King'" => 1,
     "Variations for Piano on 'Rule Britannia' (5)" => 1,
     "Variations for Piano on Kind, willst du ruhig schlafen" => 1,
     "Variations for Piano on a Turkish March" => 1,
     "Variations for Piano on a Waltz by Diabelli" => 1,
     "Variations for Piano on a waltz by Diabelli" => 1,
     "Variations on  'Was machst du mit dem Knie...'" => 1,
     "Variations on 'Ah, vous dirai-je, Maman'" => 1,
     "Variations on 'Oh Forest, Forest'" => 1,
     "Variations on Abegg - See: Abegg Variations" => 1,
     "Variations on Adeste Fideles" => 1,
     "Variations on Besacas, VL. 265" => 1,
     "Variations on Hungarian Song, Op. 21, #2" => 1,
     "Variations on Theme of Beethoven - See: Concertante" => 1,
     "Variations on Theme of Corelli [Arr: Francescatti]" => 1,
     "Variations on a Hardanger Folksong, for 2 Pnos/Orchestra" => 1,
     "Variations on a Minuet by Duport, K. 573" => 1,
     "Variations on a Ronde from Gustav III (Piano and Orchestra" => 1,
     "Variations on a Theme by Haydn" => 1,
     "Variations on a Theme by Hindemith" => 1,
     "Variations on a Theme by Nielsen" => 1,
     "Variations on a Theme by Paganini" => 1,
     "Variations on a Theme by Paganini, Book 1" => 1,
     "Variations on a Theme by Paganini, Book 2" => 1,
     "Variations on a Theme by Paganini, Books 1 & 2" => 1,
     "Variations on a Theme by Paisiello, K. 398" => 1,
     "Variations on a Theme of Couperin" => 1,
     "Variations on a Theme of Frank Bridge" => 1,
     "Variations on a Theme of Tchaikovsky" => 1,
     "Variations on a Ukranian Folksong" => 1,
     "Variations on a theme by Paganini, Books 1 & 2" => 1,
     "Variations on an Original Theme" => 1,
     "Variations on the theme 'Sefaa Esec'" => 1,
     "Variations with Fugue for Piano ('Eroica')" => 1,
     "Vathek (Variations on an Oriental Theme)" => 1,
     "Veiled Prophet of Khorassan: Overture" => 1,
     "Verbum nobile: Overture" => 1,
     "Verbuum Nobile: Overture" => 1,
     "Vespri Siciliani, I: Overture" => 1,
     "Viaggio a Reims: Overture" => 1,
     "Vogels, De - Overture" => 1,
     "Von der Weige bis zum Grabe - Symphony Poem 13" => 1,
     "War and Peace: Overture" => 1,
     "Wasps, The: Overture" => 1,
     "Wasps, The: Overture." => 1,
     "Water Music: Overture" => 1,
     "Waverly Overture" => 1,
     "What One Hears on the Mt. - Symphony Poem No. 1" => 1,
     "William Tell: Overture [Finale]" => 1,
     "William Tell: Overture" => 1,
     "Willow-Wood (Cantata for Baritone, Chorus, Orchestra)" => 1,
     "Winter's Tale, The Overture" => 1,
     "Winter's Tale, The Overture" => 1,
     "Yankee Doodle, with Variations, for Organ" => 1,
     "Yorick Overture" => 1,
     "Zampa: Overture" => 1,
     "Zauberharfe, Die: Overture" => 1,
     "Sonata No. 2, for Flute, Harp, and Viola" => 1,
     "Capricorn Concerto, for Flute, Oboe, Trumpet, Strings" => 1,
     "Adonais: Elegiac Overture" => 1,
     "Overture in D" => 1,
     "Symphonic Overture No. 3" => 1,
     "Symphony No. 3 ('Espansiva'): Slow Movement" => 1,
     "Concerto for Flute: Original 2nd Movement" => 1,
     "Overture Mediterraneenne" => 1,
     "Overture Mediterranee" => 1,
     "Symphonic Variations on 'Has Anybody Seen Kelly'" => 1,
     "Purple Rhapsody, for Viola and Orchestra" => 1,
     "Symphony No. 1 [with Blumine Movement]" => 1,
     "West Side Story Concerto for String Quartet & Orchestra" => 1,
     "Concerto for Piano in One Movement" => 1,
     "Concerto for Violin (2) and Orchestra" => 1,
     "German Requiem: Movements 1, 3, 4, 5" => 1,
     "Thurm zu Babel, Der: Overture" => 1,
     "Frithiof: Overture" => 1,
     "Jawnuta - Idyll: Overture" => 1,
     "New Don Quixote, or 100 Follies: Overture" => 1,
     "Hetman's Mistress, The: Overture" => 1,
     "Concerto for Trumpet, Strings and Percussion" => 1,
     "Forza del Destino, La: Overture" => 1,
     "Normandy - Symphonic Variations" => 1,
     "Theme and Variations for Violin and Piano" => 1,
     "Theme and Variations for Horn and Piano" => 1,
     "Introduction, Theme and Variations for Horn and Piano" => 1,
     "Introduction and Variations on a Popular Round" => 1,
     "Sonata for Viola and Piano No. 1 in B-Flat" => 1,
     "Canonic Variations and Fugue" => 1,
     "Klavierubung: Book 6, Staccato: Mozart Variations" => 1,
     "Variations (9) on a Chopin Prelude" => 1,
     "Grand Variations on a Savoyard Theme, For Guitar" => 1,
     "Variations on a Theme by Nielsen, for Guitar" => 1,
     "Dame Kobold: Overture" => 1,
     "Cola di Rienzo Overture" => 1,
     "King Alfred: Overture" => 1,
     "Eifersuchtigen, Die: Overture" => 1,
     "Scottish Fantasy for Viola and Orchestra" => 1,
     "Conjurer (Concerto for Percussion & Strings)" => 1,
     "Lyra Angelica (Concerto for Harp and Strings)" => 1,
     "Excelsior: Overture" => 1,
     "Sonata for Piano No. 2: ('Funeral'): Movement 2" => 1,
     "Sonata for Flute, Harp, and Viola" => 1,
     "Introduction and Variations (24) for Violin" => 1,
     "Trio for Clarinet, Viola, and Piano" => 1,
     "Sonata for Viola and Piano, Op. 101" => 1,
     "Sonata for Viola and Piano, Op. 117" => 1,
     "Sonata for Viola Solo, Op. 92, no. 3" => 1,
     "Impromptu for Viola and Piano" => 1,
     "From My Window No. 1 for Oboe, Viola, and Piano" => 1,
     "Quartet for Flute, Harpsichord, Cello and Viola in a, Wq93" => 1,
     "Quartet for Flute, Harpsichord, Cello and Viola in D, Wq94" => 1,
     "Quartet for Flute, Harpsichord, Cello and Viola in G, Wq95" => 1,
     "Convergence, for Viola and Piano" => 1,
     "Capricci for Violin and Viola (4)" => 1,
     "Duo No. 1 for Violin and Viola, K. 423" => 1,
     "Sonata for Piano No. 6 in F: Movements 2, 3" => 1,
     "Sonata for Piano No. 18 in E-Flat: Movements 2, 3" => 1,
     "Sonata for Violin and Piano in E-Flat: Movement 2" => 1,
     "Concerto for Trumpets (2) and Band" => 1,
     "Variations on an Arabian Theme, for Piano" => 1,
     "Breath, for Strings. Quartet [Arr: string Orchestra]" => 1,
     "Introduction, Variations, and Finale on Bellini's Norma" => 1,
     "Grande Variations on themes from Fra Diavolo" => 1,
     "Introduction, Variations, and Polacca on Il Pirata" => 1,
     "Introduction and Variations Brillante on Pacini Theme" => 1,
     "Overture, Scherzo and Finale" => 1,
     "Tantalus's Torment: Overture" => 1,
     "Jolly Robbers: Overture" => 1,
     "Wiener Jubel: Overture" => 1,
     "Hjalarljod: Overture" => 1,
     "Diversions Overture" => 1,
     "Mandragola: Overture" => 1,
     "Forza del Destino: Overture" => 1,
     # ZOMG, Vivaldi.  Really?
     "Concerto for Viola d'amore, RV 392 in D" => 1,
     "Concerto for Viola d'amore, RV 393 in d" => 1,
     "Concerto for Viola d'amore, RV 97 in F" => 1,
     "Concerto for Viola d'amore, RV 394 in d" => 1,
     "Concerto for Viola d'amore, RV 395 in d" => 1,
     "Concerto for Viola d'amore, RV 396 in A" => 1,
     "Concerto for Viola d'amore, RV 397 in a" => 1,
     "Concerto for Viola d'amore, RV 540 in d" => 1,
     "Variations for Orchestra, Op. 50" => 1,
     "Rip van Winkle Overture" => 1,
     "Winter's Tale Overture" => 1,
     "Variations on La ci darmen la mano" => 1,
     "Concerto tenerezza" => 1,
     "Above Clouds, for Viola and Piano" => 1,
     "Introduction and Variations on a Theme by Mozart" => 1,
     "Petrouchkia: 3 Movements for Piano" => 1,
     "Concerto for Cello (arr. for Cello Quintet)" => 1,
     "Sonata for Violin and Piano No. 2: Movement III" => 1,
     "Variations on Rossini's Mose, arr: Cello & Guitar" => 1,
     "Overture to a Chivalrous Play" => 1,
     "Venetian Concerto No. 1" => 1,
     "Venetian Concerto No. 2" => 1,
     "Venetian Concerto No. 3" => 1,
     "Venetian Concerto No. 4" => 1,
     "Freischutz, Die: Overture" => 1,
     "Concerto for Piano in G: Movement 3" => 1,
     "Symphony No. 3: Movements 2, 3" => 1,
     "School for Scandal Overture (Arr: Bader)" => 1,
     "Profanation (Movement 2, Jeremiah Symphony)" => 1,
     "Symphony No. 4: Movement 5 - Evening Snow" => 1,
     "Variations on a Theme by Duport" => 1,
     "Variations on Bach's Weinen, Klagen, Sorgen, Zagen" => 1,
     "Sonata for Viola and Piano" => 1,
     "Variations for Cello and Piano on 'Bei Mannern...'" => 1,
     "Variations on Mozart's 'La ci darem la mano'" => 1,
     "Finta Gardiniera, La: Overture" => 1,
     "Concerto for Cello No. 1 in a" => 1,
     "Dance Variations for Voice and Orchestra" => 1,
     "Sonata for Piano No. 2 ('Funeral March') Movement 3" => 1,
     "Variations on the Obtaining of a Dwelling" => 1,
     "Pieces for Organ (6): Prelude, Fugue, Variations" => 1,
     "Magic Flute, The: Overture" => 1,
     "Partita for Violin No. 3: 3 Movements" => 1,
     "Variations on an Oriental Theme" => 1,
     "Perle du Bresil: Overture" => 1,
     "Suite for Viola and Strings" => 1,
     "Serenade for Tenor, Horn & Strings: Movements 1, 4-8" => 1,
     "Aria [Arr: Horn], Horn & Strings: Movements 1, 4-8" => 1,
     "Touches: Chorale, 8 Variations, and Coda" => 1,
     "Symphony No. 5: Movements 2, 3" => 1,
     "Im Fruhling, Concert Overture" => 1,
     "Indigo and the Forty Thieves: Overture" => 1,
     "Indigo and the Forty Thieves: Overture" => 1,
     "Variations on a Theme of Hindemith" => 1,
     "Vespri Siciliani: Overture" => 1,
     "Tempus Perfectum: A Concert Overture" => 1,
     "Bartered Bride: Overture" => 1,
     "Faust Overture" => 1,
     "Sonata for Piano No. 2: Movement 2, 'Allegretto'" => 1,
     "Sonata for Piano No. 18: Movement 2: 'Scherzo'" => 1,
     "Sonata for Piano No. 18: Movement 3: 'Menuetto'" => 1,
     "Variations for Oboe, Piano, and Strings" => 1,
     "Oracion del torero for Strings. Quartet" => 1,
     "Phantasy for Viola & Piano" => 1,
     "Clemenza di Tito, La: Overture" => 1,
     "Natsukusa-Ya, for Piano Quartet" => 1,
     "Variations on a Minuet of Duport, K. 573" => 1,
     "Lustige Overture" => 1,
     "Sonata for Piano No. 14 ('Moonlight') Movement 1" => 1,
     "Variations on a Nordic Folksong for Violin and Piano" => 1,
     "Sonata for Clarinet and Piano (Arr: Viola & Piano)" => 1,
     "Variations and Fugue on a Theme by Brahms" => 1,
     "Improvisator: Overture" => 1,
     "Masquerade-Concerto for Violin, Cello, and Orchestra" => 1,
     "Variations for Cello and Piano on 'Ein Madchen'" => 1,
     "Sonata for Orchestra (arr. of Symphony 5)" => 1,
     "Concerto for Piano No. 1: Movements 2, 3" => 1,
     "Sonata for Viola and Piano in f#" => 1,
     "Morpheus, for Viola and Piano" => 1,
     "Berceuse, for Viola and Piano" => 1,
     "Regrets, for Viola and Piano" => 1,
     "Lullaby, for Clarinet and Viola" => 1,
     "Prelude, Allegro and Pastorale for Clarinet & Viola" => 1,
     "Russlan and Ludmila: Overture" => 1,
     "Freischutz, Der: Overture" => 1,
     "Variations and Fugue on a Theme of Hiller, Op. 100" => 1,
     "Barber of Bagdad: Overture" => 1,
     "Superviola 3.0, for Viola and Prepared Piano" => 1,
     "Variations on a Theme of Corelli" => 1,
     "Leonore Overture No. 3" => 1,
     "Serenade for String Quartet" => 1,
     "South Bank Overture" => 1,
     "Lucio Silla: Overture" => 1,
     "Isola disabitata, L': Overture" => 1,
     "Andante and Variations in B-Flat" => 1,
     "Marriage of Figaro, The: Overture" => 1,
     "Variations on a Theme of Beethoven" => 1,
     "Sanctum, for Viola and Piano" => 1,
     "Bronze Horse, The: Overture" => 1,
     "Beautiful Galatea, The: Overture" => 1,
     "Flying Dutchman, The: Overture" => 1,
     "Gwendolyne: Overture" => 1,
     "Orpheus in Hades: Overture" => 1,
     "Dame Blanche, La: Overture" => 1,
     "Boccacio: Overture" => 1,
     "Olympic Mountains Overture" => 1,
     "Prologue and Variations for Strings" => 1,
     "Themisto: Overture" => 1,
     "Concerto for Violin, Viola and Winds / Woodwinds" => 1,
     "Dark with Excessive Bright (Violin Concerto)" => 1,
     "Symphony No. 2: Movement 3, Ostinato" => 1,
     "Symphony No. 9 ('Great'): Movements 1, 2" => 1,
     "Variations on Mozart's La ci darem la mano" => 1,
     "Rhapsodies (2) for Oboe, Viola, and Piano" => 1,
     "Quartet for Strings No. 1, 'From My Life': Movement 3" => 1,
     "Guarany, Il: Overture" => 1,
     "Fosca: Overture" => 1,
     "Salvator Rosa: Overture" => 1,
     "Sinfonia Concertante for Violin, Harp, Orchestra: Movement 2" => 1,
     "Thamos, King of Egypt: Movements 2, 3" => 1,
     "Sultane, Le: Overture and Allegro" => 1,
     "Roi d'Ys: Overture" => 1,
     "Ruy Blas: Overture" => 1,
     "Suite for Orchestra No. 1 [Movement 3 omitted]" => 1,
     "Fete galante: Overture" => 1,
     "Aladdin: Overture" => 1,
     "Little Overture for Strings" => 1,
     "Commedia dell'arte Overture" => 1,
     "Fantasy and Variations brillantes on Blangini" => 1,
     "Variations on The Girl I Left Behind Me" => 1
    );


# If TITLE contains any abbreviated instruments, expand them and
# return the new title; else return TITLE unchanged.  ABBREVS was
# created by dictify_abbrevs().
#
# Also take care of some special substitution cases, such as the whole
# "Well-tempered Clavier" mess (see the comment in the code for
# details), and make sure that numbers lose their leading zeros, e.g.,
# "Symphony No. 094" becomes just "Symphony No. 94", and adjust
# over-zealous conversions such as "Str Orch" becoming "Strings
# Orchestra".
# 
# For possibly spurious conversions, print to stderr 'CHECK:' followed
# by the before and after strings.
sub massage ()
{
  my $orig_title = shift;
  my $title = $orig_title;

  my $abbrevs_ref = shift;
  my %abbrevs = %$abbrevs_ref;
  
  # Things that might be wrongly expanded.
  my %suspicions = ('Va' => 1, 'Bar' => 1, 'Ten' => 1, 'Ov' => 1);
  my $check_it = 0;

  foreach my $key (keys (%abbrevs))
  {
    my $new_title = $title;
    $new_title =~ s/(\b)${key}(\b)/$1$abbrevs{$key}$2/g;

    if ((defined ($suspicions{$key})) && (! ($title eq $new_title))) {
      $check_it = 1;
    }

    $title = $new_title;
  }

  # Special cases for some titles that were inconsistently shortened
  # in Q&A (at least, "Bk" vs "Bk." was inconsistent).  For example,
  # we encountered all of the following:
  # 
  #    "Well-temp Clav, Bk 1"
  #    "Well-temp Clav, Book 1: P & F 07 in E-Flat"
  #    "Well-Tempered Clav: Bk 1: Prelude No. 01"  (w/ Parkening)
  #
  # From now on, the canonical form for these in the public db is:
  #
  #   "Well-tempered Clavier, Book 1: Prelude and Fugue No. 6 in d"
  #
  # though of course anything from the colon out to the end is
  # optional, since that data isn't always there.
  #
  # The following substitutions ensure that this happens:
  $title =~ s/Well-[Tt]emp Clav/Well-tempered Clavier/g;
  $title =~ s/Well-Tempered Clav:/Well-tempered Clavier,/g;
  $title =~ s/Bk\./Book/g;
  $title =~ s/Bk/Book/g;
  $title =~ s/P \& F /Prelude and Fugue No. /g;

  # Change "No. 06" to "No. 6" everywhere... as in Haydn's
  # symphony "No. 001" becoming "No. 1", for another example.
  $title =~ s/ 0+([0-9])/ $1/g;

  # Unstring them which was strung too strong.
  $title =~ s/Strings Orchestra/String Orchestra/g;
  $title =~ s/Strings Or/String Or/g;
  $title =~ s/Strings Qt/String Quartet/g;
  $title =~ s/Strings Quartet/String Quartet/g;

  # Ah, the old intro question.
  $title =~ s/Intro /Introduction /g;
  $title =~ s/Intro,/Introduction,/g;

  # Can we get some movement on the movements?
  $title =~ s/Movement\./Movement/g;
  $title =~ s/Movements\./Movements/g;

  ### TODO: It's lame that we assume titles here, in violation of
  ### massage()'s position as a supposedly abstract replacer.
  if ($check_it && (! defined($okay_titles{$title}))) {
    print STDERR "CHECK (title massage):\n";
    print STDERR "OLD: \"${orig_title}\"\n";
    print STDERR "NEW: \"${title}\"\n";
    print STDERR "\n";
  }
            
  return $title;
}


my $orch_dict_ref = &dictify_abbrevs(\@orch_abbrevs);
my %orch_dict = %$orch_dict_ref;

my $common_abbrevs_dict_ref = &dictify_abbrevs(\@common_abbrevs);
my %common_abbrevs_dict = %$common_abbrevs_dict_ref;

my $instrum_dict_ref = &dictify_abbrevs(\@instrum_abbrevs);
my %instrum_dict = %$instrum_dict_ref;


# Get rid of the leading "--".
$type = substr ($type, 2);

print "<henryrec type=\"${type}\">\n";

my $num_fields = scalar (@fields);
my $field_idx = 0;
while (<>)
{
  chomp;

  if ($field_idx == 0) {
    print "<entry>\n";
  }

  if ($fields[$field_idx] eq "orchestra") {
    if ((length ($_) <= 3) && (defined ($orch_dict{$_}))) {
      $_ = $orch_dict{$_};
    }
  }
  elsif ($fields[$field_idx] eq "title") {
    # Some titles we already know would get misexpanded, so we
    # just handle them specially.
    if (defined ($gotcha_titles{$_})) {
      $_ = $gotcha_titles{$_};
    }
    else {
      my $orig = $_;
      $_ = &massage ($_, \%instrum_dict);
      my $new = &massage ($_, \%common_abbrevs_dict);
      if ($new ne $_ && (! defined($okay_titles{$new}))) {
        print STDERR "CHECK (title second time):\n";
        print STDERR "OLD: \"$_\"\n";
        print STDERR "NEW: \"$new\"\n";
        print STDERR "\n";
      }
      else {
        $_ = $new;
      }
    }
  }
  elsif ($fields[$field_idx] eq "soloists") {
    if (defined ($gotcha_soloists{$_})) {
      $_ = $gotcha_soloists{$_};
    }
    else {
      my $new = &massage ($_, \%common_abbrevs_dict);
      if ($new ne $_ && (! defined($okay_soloists{$new}))) {
        print STDERR "CHECK (soloist):\n";
        print STDERR "OLD: \"$_\"\n";
        print STDERR "NEW: \"$new\"\n";
        print STDERR "\n";
      }
      else {
        $_ = $new;
      }
    }
  }

  # Escape for XML.
  s/&/&amp;/g;
  s/>/&gt;/g;
  s/</&lt;/g;

  print "<" . $fields[$field_idx] . ">";
  print $_;
  print "</" . $fields[$field_idx] . ">\n";

  $field_idx++;

  if ($field_idx == $num_fields) {
    print "</entry>\n";
    $field_idx = 0;
    <>;   # Eat the record separator -- Q&A uses a newline.
  }
}

print "</henryrec>\n";

if ($field_idx != 0) {
  print STDERR "Warning: check ${type} output for trailing garbage.\n";
}
