abc2midi man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

ABC2MIDI(1)							   ABC2MIDI(1)

NAME
       abc2midi - converts abc file to MIDI file(s)

SYNOPSIS
       abc2midi	 infile	 [refnum]  [-c]	 [-v]  [-ver]  [-t]  [-n  limit] [-RS]
       [-quiet] [-silent] [-Q tempo] [-NFNP] [-NFER]  [-NGRA]  [-STFW]	[-OCC]
       [-NCOM] [-HARP] [-BF] [-TT] [-o outfile] -CSM [filename]

DESCRIPTION
	The default action is to write a MIDI file for each abc tune
	with the filename <stem>N.mid, where <stem> is the filestem
	of the abc file and N is the tune reference number. If the -o
	option is used, only one file is written. This is the tune
	specified by the reference number or, if no reference number
	is given, the first tune in the file.

OPTIONS
       refnum process the tune with reference number refnum

       -c     selects checking only

       -v n   selects verbose option where n is the level (optional)

       -ver   prints version number and exits

       -t     selects filenames derived from tune titles

       -RS    use 3:1 instead of 2:1 for broken rhythms

       -quiet Suppresses some common warnings.

       -silent
	      Supresses other messages.

       -n  X  limits the length of the file name stem to X characters

       -Q  tempo
	      sets the default tempo in quarter notes per minute if it was not
	      specified in the abc header.

       -NFNP  Ignore any dynamic indications !f! !ff! etc.

       -NFER  Ignore any fermata indications (eg H or !fermata!).

       -NGRA  Ignore any grace notes.

       -STFW  Place lyric text in separate MIDI tracks.

       -NCOM  Suppress some comments in the output MIDI file.

       -OCC   Accept old chord convention (eg +D2G2+ instead of [DG]2).

       -BF    BarFly mode: invokes a stress model if possible.

       -HARP  Roll ornaments=roll are generated for the harpist (same pitch)

       -TT    Changes the tuning from A = 440 Hz.

       -o outfile
	      write output to outfile

       -CSM infile
	      load a set of custom stress modes from a file

FEATURES
       * Broken rhythms (>, <), chords, n-tuples,  slurring,  ties,  staccatto
       notes,  repeats,	 in-tune  tempo/length/time  signature changes are all
       supported.

       * R:hornpipe or r:hornpipe is recognized and note timings are  adjusted
       to give a broken rhythm (ab is converted to a>b).

       *  Most	errors in the abc input will generate a suitable error message
       in the output and the converter keeps going.

       * Comments and text fields in the abc  source  are  converted  to  text
       events in the MIDI output

       * If guitar chords are present, they are used to generate an accompani‐
       ment in the MIDI output.

       * If there are  mis-matched  repeat  signs  in  the  abc,  the  program
       attempts to fix them. However, it will not attempt this if a multi-part
       tune description has been used or if multiple voices are in use.

       * Karaoke MIDI files can be generated by using the w: field to  include
       lyrics.

       *  Nonnumeric  voice  id's, eg. V: soprano, as proposed for the new abc
       standard is accepted.

       * Invisible rests specified by x are treated the	 same  way  as	normal
       rests (z).

       *  Decorations  may  be	indicated using either the deprecated notation
       (eg. !fermata!) or the standard version 2.0 notation (eg. +fermata+).

LIMITATIONS
       * No field is inherited from above the X: field of the tune.

ABC SYNTAX EXTENSIONS
       * There are some extensions to the abc syntax of the form

       %%MIDI channel n

       These control channel and program selection,  transposing  and  various
       other features of abc2midi.

       Each  of	 these	should	appear	on  a  line by itself. All of them are
       allowed within the abc tune body. By using these	 in  combination  with
       the part notation, one can, for example, play a part transposed or in a
       different key.

       The idea behind this syntax is that other programs will treat it	 as  a
       comment and ignore it.

       %%MIDI channel n

       selects melody channel n (in the range 1-16).

       %%MIDI program [c] n

       selects program n (in the range 1-128) on channel c. If c is not given,
       the program is selected on the current melody channel. Most modern tone
       generators  follow  the General MIDI standard which defines the instru‐
       ment type for each program number.

       %%MIDI beat a b c n

       controls the way note velocities are selected. The first note in a  bar
       has  velocity  a. Other "strong" notes have velocity b and all the rest
       have velocity c. a, b and c must be in the range 0-128. The parameter n
       determines which notes are "strong". If the time signature is x/y, then
       each note is given a position number k = 0, 1, 2	 ..  x-1  within  each
       bar.  Note that the units for n are not the unit note length. If k is a
       multiple of n, then the note is "strong". The volume  specifiers	 !ppp!
       to !fff! are equivalent to the following :

       !ppp! = %%MIDI beat 30 20 10 1
       !pp!  = %%MIDI beat 45 35 20 1
       !p!   = %%MIDI beat 60 50 35 1
       !mp!  = %%MIDI beat 75 65 50 1
       !mf!  = %%MIDI beat 90 80 65 1
       !f!   = %%MIDI beat 105 95 80 1
       !ff!  = %%MIDI beat 120 110 95 1
       !fff! = %%MIDI beat 127 125 110 1

       %%MIDI beatmod n

       Increments  by  n  (or decrements if n is negative) the velocities a, b
       and c described above. The instructions !crescendo(!  and  !crescendo)!
       are  equivalent	to inserting a %%MIDI beatmod 15 whereever they occur.
       (Alternatively you can use !<(! and !<)!.) Similarly  the  instructions
       !diminuendo(! and !diminuendo)! are equivalent to %%MIDI beatmod -15.

       %%MIDI deltaloudness n

       where  n	 is  a	small  positive	 number.  By default the crescendo and
       diminuendo instructions modify the beat variables a, b,	and  c	by  15
       velocity	 units.	 This  instruction  allows  you to set this default to
       value n.

       %%MIDI nobeataccents

       For instruments such as church organ that have  no  greatly  emphasized
       beat  notes,  using this will force use of the 'b' velocity (see %%MIDI
       beat) for every note irrespective of position in the bar.  This	allows
       dynamics (ff, f, etc) to be used in the normal way.

       %%MIDI beataccents

       Revert to emphasizing notes the the usual way. (default)

       %%MIDI beatstring <string of f, m and p>

       This  provides  an  alternative	way of specifying where the strong and
       weak stresses fall  within  a  bar.  'f'	 means	velocity  a  (normally
       strong),	 'm' means velocity b (medium velocity) and 'p' means velocity
       c (soft velocity).  For example, if the	time  signature	 is  7/8  with
       stresses	 on the first, fourth and sixth notes in the bar, we could use
       the following

       %%MIDI beatstring fppmpmp

       %%MIDI transpose n

       transposes the output by the specified number of semitones.  n  may  be
       positive or negative.

       %%MIDI rtranspose n

       Relative	 transpose  by the specified number of semitones. i.e.	%%MIDI
       transpose a followed by %%MIDI rtranspose b results in a	 transposition
       of  a+b.	 %%MIDI	 transpose b will result in a transposition of b semi‐
       tones, regardless of any previous transposition.

       %%MIDI c n

       specifies the MIDI pitch which corresponds to c.	 The  default  is  60.
       This number should normally be a multiple of 12.

       %%MIDI grace a/b

       sets  the  fraction  of	the next note that grace notes will take up. a
       must be between 1 and b-1. The grace notes may  not  sound  natural  in
       this approach, since the length of the individual grace notes vary with
       the complexity of the grace and the length of  the  following  note.  A
       different  approach  (which  is now the default) assumes that the grace
       notes always have a fixed duration.  To	use  the  other	 approach  you
       would specify,

       %%MIDI gracedivider b

       where b specifies how many parts to divide the unit length specified by
       the L: field command. For example if b = 4 and L:  =  1/8,  then	 every
       grace  note  would be 1/(8*4) or a 32nd note. Time would be stolen from
       the note to which the grace notes are applied. If that note is not long
       enough  to  handle  the	grace then the grace notes would be assigned 0
       duration.

       %%MIDI chordname name n1 n2 n3 n4 n5 n6

       Defines how to play a guitar chord called "name". n1 is usually	0  and
       n2,  n3 to n6 give the pitches of the other notes in semitones relative
       to the root note. There may be fewer than 6 notes in the chord, but not
       more.If	"name"	is already defined, this command re-defines it. Unlike
       most other commands, chordname definitions stay in  effect  from	 where
       they  are defined to the end of the abc file. The following illustrates
       how m, 7, m7 and maj7 could be set up if they were not already defined.

       %%MIDI chordname m 0 3 7
       %%MIDI chordname 7 0 4 7 10
       %%MIDI chordname m7 0 3 7 10
       %%MIDI chordname maj7 0 4 7 11

       %%MIDI gchord string

       sets up how guitar chords are generated. The string is a sequence  made
       of  of  z's, c's	 f's and b's for rests, chords, fundamental and funda‐
       mental plus chord notes respectively.  This specifies how each  bar  is
       to be played.  An optional length is allowed to follow the z's, c's f's
       and b's	e.g.  czf2zf3.	 If  the  abc  contains	 guitar	 chords,  then
       abc2midi	 automatically adds chords and fundamentals after encountering
       the first guitar chord. It keeps using that chord until a new chord  is
       specified  in the abc. Whenever the M: field is encountered in the abc,
       an appropriate default string is set :

       For 2/4 or 4/4 time default is equivalent to : %%MIDI gchord fzczfzcz

       For 3/4 time default is equivalent to : %%MIDI gchord fzczcz

       For 6/8 time default is equivalent to : %%MIDI gchord fzcfzc

       For 9/8 time default is equivalent to : %%MIDI gchord fzcfzcfzc

       The gchord command has been extended to allow you to play the  individ‐
       ual  notes  comprising the guitar chord. This allows you to play broken
       chords or arpeggios. The new codes g,h,i,j, G,H,I,J reference the indi‐
       vidual  notes starting from the lowest note of the chord (not necessar‐
       ily the root in the case of inversions). For example for	 the  C	 major
       chord,  g  refers  to  C, h refers to E and i refers to G. For a gchord
       command such as,

       %%MIDI gchord ghih

       Abc2midi will arpeggiate the C major guitar chord to  CEGE.  The	 upper
       case  letters  G,H,I,  and  J  refer  to the same notes except they are
       transposed down one octave. Note for the first inversion of the C major
       chord  (indicated by "C/E"), E would be the lowest note so g would ref‐
       erence the note E.

       Like other gchord codes, you may append a numeral indicating the	 dura‐
       tion of the note. The same rules apply as before.  You can use any com‐
       bination of the gchord codes, (fcbghijGHIJz).

       %%MIDI chordprog n

       Sets the MIDI instrument for  the  chords  to  be  n.  If  the  command
       includes	 the  string  octave=n	where  n  is a number between -2 and 2
       inclusive, then this will shift	the  pitch  of	the  instrument	 by  n
       octaves. For example %%MIDI chordprog 10 octave=1.)

       %%MIDI bassprog n

       Sets  the  MIDI	instrument  for the bass notes to be n. If the command
       includes the string octave=n where n is	a  number  between  -2	and  2
       inclusive,  then	 this  will  shift  the	 pitch	of the instrument by n
       octaves. For example %%MIDI bassprog 10 octave=-1.)

       %%MIDI chordvol n

       Sets the volume (velocity) of the chord notes at n.

       %%MIDI bassvol n

       Sets the volume (velocity) of the bass notes at n. There is  no	corre‐
       sponding	 melodyvol  command  since  there  are	3  velocity values for
       melody, set using the beat command.

       %%MIDI gchordon

       Turns on guitar chords (they are turned on by default at the start of a
       tune).

       %%MIDI gchordoff

       Turns off guitar chords.

       %%MIDI droneon

       Turns  on  a continuous drone (used in bagpipe music) consisting of two
       notes. By default the notes are A, and A,, played on  a	bassoon	 at  a
       velocity	 of  80.  This	can  be configured by the %%MIDI drone command
       described below.

       %%MIDI droneoff

       Turns off the continuous drone.

       %%MIDI drone n1 n2 n3 n4 n5

       Sets the drone parameters where n1 is the MIDI program, n2 and n3 spec‐
       ify the MIDI pitches of the two notes in the chord, and n4 and n5 spec‐
       ify the MIDI velocities of the two notes.  If  you  do  not  set	 these
       parameters  they are by default 70 45 33 80 80. A value of zero or less
       indicates that the setting of this parameter should be left as it is.

       %%MIDI drum string [drum programs] [drum velocities]

       This sets up a drum pattern. The string determines when there is a drum
       beat and the drum program values determine what each drum strike sounds
       like.

       e.g. %%MIDI drum d2zdd 35 38 38	100 50 50

       The string may contain 'd' for a drum strike or	'z'  for  a  rest.  By
       default	a  voice  starts  with	no drum pattern and '%%MIDI drumon' is
       needed to enable the drumming. The drum pattern is repeated during each
       bar  until '%%MIDI drumoff' is encountered. The %%MIDI drum command may
       be used within a tune to change the drum pattern.  This command	places
       the  drum sounds on channel 10 and assumes your tone generator complies
       with the General Midi standard - if it does  not,  then	you  may  hear
       tones instead of drum sounds.

       In  both	 the  gchord  and drum commands, the standard note length of a
       single note f,c,z or d is not set by the	 L:  command.  Instead	it  is
       adjusted	 so  that the entire gchord string or drum string fits exactly
       into one bar. In other words the duration of each note  is  divided  by
       the  total  duration  of	 the string. This means that, for example, the
       drum string "dd" is equivalent to drum string "d4d4".  You cannot  cur‐
       rently specify fractions directly (eg. C3/2) as done in the body of the
       music, but it is still possible to express complex rhythms.  For	 exam‐
       ple,  to	 indicate  a rhythm such as (3ddd d/d/d/d, you would write the
       string "d4d4d4d3d3d3d3".

       %%MIDI drumbars n

       The %%MIDI drum line can sound quite monotonous if it is repeated  each
       bar.  To	 circumvent  this problem a new MIDI command %%MIDI drumbars n
       where n is a small number will spread out the drum string over  n  con‐
       secutive	 bars. By default drumbars is set to 1 maintaining compatibil‐
       ity with existing abc files. You should take care that  the  drumstring
       is  evenly  divisible between the drumbar bars. Also the time signature
       should not change between bars in a drumbar unit. (Sample abc  file  in
       doc/CHANGES June 24 2008.)

       %%MIDI gchordbars n

       This  command  spreads  the  gchord string over n consecutive bars just
       like drumbars (above). (A sample	 is  found  in	doc/CHANGES  March  17
       2009.)

       With  version  1.54 Dec 4 2004 of abc2midi, notes in chords (eg. [FAc])
       are not played in the same instant but offsetted and  shortened	by  10
       MIDI time units. Thus the first note in the chord (eg. F) is played for
       the full indicated time, the second note (eg. A) starts 10  MIDI	 units
       later  and  is  shortened  by the same amount and the third note starts
       another 10 MIDI units later and is shortened by another 10 units.  This
       introduces  an  "expressivo"  option and avoids the heavy attack. (This
       does not apply to gchords or multivoiced chords.)  The  amount  of  the
       delay and shortening may be configured by the MIDI command

       %%MIDI chordattack n

       where n is a small number. If n is zero, then abc2midi should behave as
       in earlier versions. The delay n is in MIDI time units where there  are
       480  units in a quarter note beat. The program may not run correctly if
       n is too large and there are short chords.

       %%MIDI randomchordattack n

       Like above except that the delay is a random  variable  uniformly  dis‐
       tributed between 0 and n-1.

       %%MIDI trim x/y

       where  x	 and y are two numbers. This command controls the articulation
       of notes and chords by placing silent  gaps  between  the  notes.   The
       length of these gaps is determined by x/y and the unit length specified
       by the L: command. These gaps are produced by shortening the  notes  by
       the  same  amount.   If	the note is already shorter than the specified
       gap, then the gap is set to half the length of the note.	 The  fraction
       x/y  indicates  a  note duration in the same manner as specified in the
       abc file.  The actual duration is based on the unit length specified by
       the L: field command. It is recommended that x/y be a fraction close to
       zero. Note trimming is disabled inside slurs as specified by  parenthe‐
       ses.  You  can turn off all note trimming by setting x to 0, eg 0/1. By
       default, note trimming is turned off at the  beginning  of  a  tune  or
       voice command.

       %%MIDI expand x/y

       where  x	 and  y are two numbers defining a fraction less than 1.  This
       command controls the articulation of notes and chords  in  the  reverse
       manner.	The  notes are lengthened by this fraction so they overlap the
       start of the next note.

       %%MIDI drummap note midipitch

       Please see abcguide.txt.

       %%MIDI ptstress filename

       This command loads file filename into abc2midi which contains the  Phil
       Taylor stress parameters and puts abc2midi in the mode where it applies
       these stress parameters on every note. This model runs in opposition to
       the standard beat model, so the MIDI beat, beatstring, beatmod commands
       become ineffectual.  This also means that the dynamic  indications  !f!
       !pp! etc.  do not work any more.

       There  are  two different implementations of the stress model.  Model 1
       modifies the note articulation and  takes  control  of  the  MIDI  trim
       parameters  too.	 To revert back to the standard model, put the command
       %%MIDI beataccents.  Model 2 modifies both the onset and ending of each
       note  allowing  a  musical beat to expand or contract in time. However,
       the length of a musical measure should be preserved. Note if you	 using
       model  2, which the current default, you must include -BF as one of the
       runtime parameters of abc2midi.

       The model divides a bar into equal segments. For each segment, a	 loud‐
       ness  or MIDI velocity is specified and a duration multiplier is speci‐
       fied. If a note falls into a specific segment, it assumes the  velocity
       of  that	 segment and its duration is modified accordingly. If the note
       overlaps more than one segment, then the note assumes  the  average  of
       those segment values.

       The  input  file	 specifies the number of segments and the loudness and
       duration multipliers for each segment. The file has the following  for‐
       mat.  The first value is the number of segments and each line specifies
       the velocity and duration  multiplier  of  the  specific	 segment.  The
       velocity	 is  limited  to 127 and the duration is a decimal number. The
       note durations is modified by varying the gap between notes, so	it  is
       not  possible to extend a note. This preserves the regular tempo of the
       music. The program scales, the note duration indications by dividing it
       by the maximum value which here is 1.4.

       %%MIDI stressmodel n

       where n is either 1 or 2, selects the stress model implementation.

	other  %%MIDI commands such as bendvelocity, bendstring, controlstring
       have  been  introduced  recently	 and  are  described   in   the	  file
       abcguide.txt.

COMPATIBILITY WITH DRAFT STANDARD 2.0
       The proposed standard introduces a new copyright field using the syntax

       %%abc-copyright (c) Copyright John Smith 2003

       Abc2midi	 now  inserts  this in the MIDI file in the form of a metatext
       copyright tag. Changes were made	 to  the  event_specific  function  in
       store.c	to  process  the copyright information. It is also copied into
       the Karaoke track (if it is created) as as @T field.

SEE ALSO
       abc2ps(1), midi2abc(1), yaps(1).

AUTHOR
       James Allwright <J.R.Allwright@westminster.ac.uk>

SUPPORTED
	by Seymour Shlien <fy733@ncf.ca>

VERSION
       This man page describes abc2midi version 2.27  June 25 2006.

COPYRIGHT
       Copyright 1999 James Allwright

       abc2midi is supplied "as is" without any warranty. It is free  software
       and can be used, copied, modified and distributed without fee under the
       terms of the GNU General Public License.

       More complete documentation may be found in  abcguide.txt  which	 comes
       with the abcMIDI distribution.

				27 August 2011			   ABC2MIDI(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net