Provided by: abcmidi_20230625+ds1-1_amd64 bug

NAME

       abcmatch - Search for specific sequences of notes in an abc file composed of many tunes.

SYNOPSIS

       abcmatch  abc file  [-c] [-v] [-r] [-con]    [-fixed nn] [-qnt] [-lev] [-a] [-ign]    [-br
       %d]  [-tp  abc  reference  file]  [-ver]     [-pitch_hist]  [-wpitch_hist]  [-length_hist]
       [-interval_hist] [-pitch_table] [-interval_table] reference number

DESCRIPTION

       abcmatch  is  used  to  search for specific sequences of notes in an  abc file composed of
       many tunes. For example, if you know a few bars of a tune, you can  use  this  program  to
       find  the tune having this sequence and perhaps identify the tune.  At a minimum, abcmatch
       requires two files. A template file called match.abc which contains the bars that you  are
       searching  for  and  a  large  file consisting of a hundred or more abc tunes. The program
       automatically loads up the match.abc file and then scans every tune in the large file

OPTIONS

       -v and -c
              mainly used for debugging when the program does not do what was expected.

       -ver   prints version number and then exits

       --norhythm
              Causes the matching algorithm to ignore the length of notes in a bar, thus  E3/2F/D
              GA2  would  match  EFD  G2A.  The  option  ignores  -r  parameter  since  it is now
              irrelevant.

       -pitch_table
              Used to produce a interval weighted pitch histogram for each tune in the  file.  If
              this  is  saved  in  an  external  file,  that file could be used as a database for
              finding tunes with similar pitch probability density functions (pdf).

       -r     Controls how the matching criterion handles small rhythm variations in the  melody.
              The  -r option must be followed by a number which specifies the temporal resolution
              for the match. When the number is zero, this indicates that a perfect match  should
              be  performed,  meaning that the lengths of each note in the bar must match exactly
              in order to be reported. For larger values a looser  match  will  be  performed  as
              described  below.  Note  lengths  are converted into temporal units where a quarter
              note normally is assigned a value of 24. Therefore an eight note has a value of 12,
              a sixteenth has a value of 6, a half note has a value of 48 and etc. If you specify
              a temporal resolution of 12, then the pitch values of the notes only need to  match
              at time units which are multiples of an eighth note.

       -fixed n
              Causes  the  program  to  disregard  bar  lines  when  does the matching. It allows
              matching of notes between tunes having different time signatures.  n  is  a  number
              which  specifies  the  exact  number  of notes to match. For example if n is 4, the
              program could match |C E G E| .. with |C E|G E| Note the matcher still starts at  a
              beginning of a given bar for both the tune and template.

       -con   Specifies  contour  matching. In this case, the program uses the key signature only
              to indicate accidentals. The pitch contour is computed from the pitch difference or
              interval between adjacent notes.

       -qnt   Uses  the  contour  matching  algorithm  but also quantizes the intervals using the
              following table:

              unison and semitone    0 minor 2nd to major 2nd 1 minor 3rd  to  major  3rd  2  any
              larger interval    3

              Negative numbers are descending intervals.

       -tp file name, reference number
              Substitute any tune for the template match.abc. When using this feature, the entire
              tune is used as a template. Abcmatch does not match the template with  itself,  and
              only bars which match bars in other tunes are reported.

       -br threshold
              Runs  the  program  in  a  brief  mode designed to identify groups of tunes sharing
              common bars. In this mode, the program counts the numbers of bars in the test  tune
              which  are  also  present  in  match.abc. If the number of common bars is larger or
              equal to the threshold then the program reports the tune and the number  of  common
              bars.   The  program  scans all the tunes in the abc file and returns a list of all
              the tunes which have more than a  specific  number  of  bars  in  common  with  the
              template,  match.abc. In actual use, the program is run repeatedly by a script. For
              each tune in a abc file, it creates a  template  file  called  match.abc  and  then
              executes  abcmatch.  The  outputs  are  displayed  on  the screen in a form easy to
              interpret. The user has no control of the matching criterion. The rhythm must match
              exactly  and the notes are transposed to suit the key signature. In other words the
              -r parameter is independent of what is specified in the parameter list.

       -pitch_hist or -length_hist
              Runs the program in another mode. It produces a histogram of  the  distribution  of
              the  notes in the abc file.  The pitch is indicated in midi units. Thus middle C is
              60 and the pitches go up in semitone units. Following the pitch is a count  of  the
              number of times that note occurred.

       -pitch_table or -interval_table
              Used to create a database for a collection of tunes in a file for future analysis.

SEE ALSO

       abc2abc(1), abc2midi(1), mftext(1) ,midi2abc(1) ,midicopy(1) ,yaps(1)

AUTHOR

       This manual page was written by Ross Gammon based on abcmatch.txt by Seymour Shlien.

VERSION

       This man page describes abcmatch version 1.35 from January 15 2006.

                                                                                      ABCMATCH(1)