Hi Andreas, Below is the list of options for my current version of smf in linux for converting **kern data to MIDI. The executable is coming in the next email message. The program is very sensitive to **kern durations in a Humdrum file -- they must add correctly or the program will refuse to convert the file. If a spine splits, the two spines will still reside in only one MIDI track. Newly added to the smf program: the MIDI instruments are automatically selected according to the tandem interpretation that specifies the instrument (E.g.: "*Ipiano" selects the pianoforte MIDI timbre. The default choices for each instrument can be overridden with the "-i" option of smf. At the bottom of this message I list the default instrument name translations to General MIDI instrument numbers. The issue of multiple instruments playing the same spine has not yet been addressed: the last instrument listed will be selected to play the spine's music. The track names are given as the name of the instrument that is playing the track. The program is working farily well, but e-mail with bugs as you find them. For debugging purposes, if you omit the "-o" option, the MIDI file data will be printed in ASCII format so that you can see what went wrong. -=+Craig =========================================================================== smf options: -C = don't store global comments as text events. -T = don't store non-kern data as text events. -o file.mid = file to write MIDI data. If no output, then the data is sent to standard output as text data. --plus = encode using MIDI+ standard. -v volume = set the volume of note on messages. -s tempo-scale = doesn't work yet? The program reads *MM markings however. -I = don't store MIDI program change messages. -i MIDI-list = set humdrum instruments to specified midi instrument number. For example to convert the humdrum instrument "xylo" to a piano timber, you would set the option to this: -i "xylo 0" To also change the violin to a piano sound do this: -i "xylo 0 violn 0", or -i "xylo 0, violn 0", or -i "xylo 0; violn 0" -f instnum = to force all instruments to be "instnum". Example: "-f 0" forces all tracks to play with piano sound. -c channel = force all tracks to be on the same channel. --options = lists all command-line options. =========================================================================== The #defines used for the General MIDI instruments in the list are found further below. !! http://dactyl.som.ohio-state.edu/Humdrum/guide.append2.html **humdrum **GM **fullname accor GM_ACCORDION "accordion" alto GM_RECORDER "alto" archl GM_ACOUSTIC_GUITAR_NYLON "archlute" armon GM_HARMONICA "harmonica" arpa GM_ORCHESTRAL_HARP "harp" bagpI GM_BAGPIPE "bagpipe (Irish)" bagpS GM_BAGPIPE "bagpipe (Scottish)" banjo GM_BANJO "banjo" barit GM_CHOIR_AAHS "baritone" baset GM_CLARINET "bassett horn" bass GM_CHOIR_AAHS "bass" bdrum GM_TAIKO_DRUM "bass drum (kit)" bguit GM_ELECTRIC_BASS_FINGER "electric bass guitar" biwa GM_FLUTE "biwa" bscan GM_CHOIR_AAHS "basso cantante" bspro GM_CHOIR_AAHS "basso profondo" calam GM_OBOE "chalumeau" calpe GM_LEAD_CALLIOPE "calliope" calto GM_CHOIR_AAHS "contralto" campn GM_TUBULAR_BELLS "bell" cangl GM_ENGLISH_HORN "english horn" caril GM_TUBULAR_BELLS "carillon" castr GM_CHOIR_AAHS "castrato" casts GM_WOODBLOCKS "castanets" cbass GM_CONTRABASS "contrabass" cello GM_CELLO "violoncello" cemba GM_HARPSICHORD "harpsichord" cetra GM_VIOLIN "cittern" chime GM_TUBULAR_BELLS "chimes" chlma GM_BASSOON "alto shawm" chlms GM_BASSOON "soprano shawm" chlmt GM_BASSOON "tenor shawm" clara GM_CLARINET "alto clarinet (in E-flat)" clarb GM_CLARINET "bass clarinet (in B-flat)" clarp GM_CLARINET "piccolo clarinet" clars GM_CLARINET "soprano clarinet" clavi GM_CLAVI "clavichord" clest GM_CELESTA "celesta" colsp GM_FLUTE "coloratura soprano" cor GM_FRENCH_HORN "horn" cornm GM_BAGPIPE "French bagpipe" corno GM_TRUMPET "cornett" cornt GM_TRUMPET "cornet" crshc GM_REVERSE_CYMBAL "crash cymbal (kit)" ctenor GM_CHOIR_AAHS "counter-tenor" ctina GM_ACCORDION "concertina" drmsp GM_FLUTE "dramatic soprano" dulc GM_DULCIMER "dulcimer" eguit GM_ELECTRIC_GUITAR_CLEAN "electric guitar" fag_c GM_BASSOON "contrabassoon" fagot GM_BASSOON "bassoon" false GM_RECORDER "falsetto" feme GM_CHOIR_AAHS "female voice" fife GM_BLOWN_BOTTLE "fife" fingc GM_REVERSE_CYMBAL "finger cymbal" flt_a GM_FLUTE "alto flute" flt_b GM_FLUTE "bass flute" fltda GM_RECORDER "alto recorder" fltdb GM_RECORDER "bass recorder" fltdn GM_RECORDER "sopranino recorder" fltds GM_RECORDER "soprano recorder" fltdt GM_RECORDER "tenor recorder" flt GM_FLUTE "flute" flugh GM_FRENCH_HORN "flugelhorn" forte GM_HONKYTONK_PIANO "fortepiano" glock GM_GLOCKENSPIEL "glockenspiel" gong GM_STEEL_DRUMS "gong" guitr GM_ACOUSTIC_GUITAR_NYLON "guitar" hammd GM_DRAWBAR_ORGAN "Hammond electronic organ" heltn GM_CHOIR_AAHS "Heldentenor" hichi GM_OBOE "hichiriki" hurdy GM_LEAD_CALLIOPE "hurdy-gurdy" kit GM_SYNTH_DRUM "drum kit" kokyu GM_FIDDLE "kokyu (Japanese spike fiddle)" komun GM_KOTO "komun'go (Korean long zither)" koto GM_KOTO "koto (Japanese long zither)" kruma GM_TRUMPET "alto crumhorn" krumb GM_TRUMPET "bass crumhorn" krums GM_TRUMPET "soprano crumhorn" krumt GM_TRUMPET "tenor crumhorn" liuto GM_ACOUSTIC_GUITAR_NYLON "lute" lyrsp GM_FLUTE "lyric soprano" lyrtn GM_FRENCH_HORN "lyric tenor" male GM_CHOIR_AAHS "male voice" mando GM_ACOUSTIC_GUITAR_NYLON "mandolin" marac GM_AGOGO "maracas" marim GM_MARIMBA "marimba" mezzo GM_CHOIR_AAHS "mezzo soprano" nfant GM_CHOIR_AAHS "child's voice" nokan GM_SHAKUHACHI "nokan (a Japanese flute)" oboeD GM_ENGLISH_HORN "oboe d'amore" oboe GM_OBOE "oboe" ocari GM_OCARINA "ocarina" organ GM_CHURCH_ORGAN "pipe organ" panpi GM_PAN_FLUTE "panpipe" piano GM_ACOUSTIC_GRAND_PIANO "pianoforte" piatt GM_REVERSE_CYMBAL "cymbals" picco GM_PICCOLO "piccolo" pipa GM_ACOUSTIC_GUITAR_NYLON "Chinese lute" porta GM_TANGO_ACCORDION "portative organ" psalt GM_CLAVI "psaltery (box zither)" qin GM_CLAVI "qin, ch'in (Chinese zither)" quitr GM_ACOUSTIC_GUITAR_NYLON "gittern" rackt GM_TRUMPET "racket" rebec GM_ACOUSTIC_GUITAR_NYLON "rebec" recit GM_CHOIR_AAHS "recitativo" reedo GM_REED_ORGAN "reed organ" rhode GM_ELECTRIC_PIANO_1 "Fender-Rhodes electric piano" ridec GM_REVERSE_CYMBAL "ride cymbal (kit)" sarod GM_SITAR "sarod" sarus GM_TUBA "sarrusophone" saxA GM_ALTO_SAX "E-flat alto saxophone" saxB GM_BARITONE_SAX "B-flat bass saxophone" saxC GM_BARITONE_SAX "E-flat contrabass saxophone" saxN GM_SOPRANO_SAX "E-flat sopranino saxophone" saxR GM_BARITONE_SAX "E-flat baritone saxophone" saxS GM_SOPRANO_SAX "B-flat soprano saxophone" saxT GM_TENOR_SAX "B-flat tenor saxophone" sdrum GM_SYNTH_DRUM "snare drum (kit)" shaku GM_SHAKUHACHI "shakuhachi" shami GM_SHAMISEN "shamisen (Japanese fretless lute)" sheng GM_SHANAI "mouth organ (Chinese)" sho GM_SHANAI "mouth organ (Japanese)" sitar GM_SITAR "sitar" soprn GM_CHOIR_AAHS "soprano" spshc GM_REVERSE_CYMBAL "splash cymbal (kit)" steel GM_STEEL_DRUMS "steel-drum" sxhA GM_ALTO_SAX "E-flat alto saxhorn" sxhB GM_BARITONE_SAX "B-flat bass saxhorn" sxhC GM_BARITONE_SAX "E-flat contrabass saxhorn" sxhR GM_BARITONE_SAX "E-flat baritone saxhorn" sxhS GM_SOPRANO_SAX "B-flat soprano saxhorn" sxhT GM_TENOR_SAX "B-flat tenor saxhorn" synth GM_ELECTRIC_PIANO_2 "keyboard synthesizer" tabla GM_MELODIC_DRUM "tabla" tambn GM_TINKLE_BELL "tambourine" tambu GM_MELODIC_DRUM "tambura" tanbr GM_MELODIC_DRUM "tanbur" timpa GM_MELODIC_DRUM "timpani" tiorb GM_ACOUSTIC_GUITAR_NYLON "theorbo" tom GM_TAIKO_DRUM "tom-tom drum" trngl GM_TINKLE_BELL "triangle" tromb GM_TROMBONE "bass trombone" tromp GM_TRUMPET "trumpet" tromt GM_TROMBONE "tenor trombone" tuba GM_TUBA "tuba" ud GM_ACOUSTIC_GUITAR_NYLON "ud" ukule GM_ACOUSTIC_GUITAR_NYLON "ukulele" vibra GM_VIBRAPHONE "vibraphone" vina GM_SITAR "vina" viola GM_VIOLA "viola" violb GM_CONTRABASS "bass viola da gamba" viold GM_VIOLA "viola d'amore" violn GM_VIOLIN "violin" violp GM_VIOLIN "piccolo violin" viols GM_VIOLIN "treble viola da gamba" violt GM_CELLO "tenor viola da gamba" vox GM_CHOIR_AAHS "generic voice" xylo GM_XYLOPHONE "xylophone" zithr GM_CLAVI "zither" zurna GM_ACOUSTIC_GUITAR_NYLON "zurna" *- *- *- =========================================================================== // Description: Defines names for instruments as arranged in General MIDI. #define GM_PIANO(X) (0+(X)) #define GM_ACOUSTIC_GRAND_PIANO (0) #define GM_BRIGHT_ACOUSTIC_PIANO (1) #define GM_ELECTRIC_GRAND_PIANO (1) #define GM_HONKYTONK_PIANO (2) #define GM_HONKY_TONK_PIANO (3) #define GM_ELECTRIC_PIANO_1 (4) #define GM_ELECTRIC_PIANO_2 (5) #define GM_HARPSICHORD (6) #define GM_CLAVI (7) #define GM_CHROMATIC(X) (8+(X)) #define GM_CELESTA (8) #define GM_GLOCKENSPIEL (9) #define GM_MUSIC_BOX (10) #define GM_VIBRAPHONE (11) #define GM_MARIMBA (12) #define GM_XYLOPHONE (13) #define GM_TUBULAR_BELLS (14) #define GM_DULCIMER (15) #define GM_ORGAN(X) (16+(X)) #define GM_DRAWBAR_ORGAN (16) #define GM_PERCUSSIVE_ORGAN (17) #define GM_ROCK_ORGAN (18) #define GM_CHURCH_ORGAN (19) #define GM_REED_ORGAN (20) #define GM_ACCORDION (21) #define GM_HARMONICA (22) #define GM_TANGO_ACCORDION (23) #define GM_GUITAR(X) (24+(X)) #define GM_ACOUSTIC_GUITAR_NYLON (24) #define GM_ACOUSTIC_GUITAR_STEEL (25) #define GM_ELECTRIC_GUITAR_JAZZ (26) #define GM_ELECTRIC_GUITAR_CLEAN (27) #define GM_ELECTRIC_GUITAR_MUTED (28) #define GM_OVERDRIVEN_GUITAR (29) #define GM_DISTORTION_GUITAR (30) #define GM_GUITAR_HARMONICS (31) #define GM_BASS(X) (32+(X)) #define GM_ACOUSTIC_BASS (32) #define GM_ELECTRIC_BASS_FINGER (33) #define GM_ELECTRIC_BASS_PICK (34) #define GM_FRETLESS_BASS (35) #define GM_SLAP_BASS_1 (36) #define GM_SLAP_BASS_2 (37) #define GM_SYNTH_BASS_1 (38) #define GM_SYNTH_BASS_2 (39) #define GM_STRINGS(X) (40+(X)) #define GM_VIOLIN (40) #define GM_VIOLA (41) #define GM_CELLO (42) #define GM_CONTRABASS (43) #define GM_TREMOLO_STRINGS (44) #define GM_PIZZACATO_STRINGS (45) #define GM_ORCHESTRAL_HARP (46) #define GM_TIMPANI (47) #define GM_ENSEMBLE(X) (48+(X)) #define GM_STRING_ENSEMBLE_1 (48) #define GM_STRING_ENSEMBLE_2 (49) #define GM_SYNTHSTRINGS_1 (50) #define GM_SYNTHSTRINGS_2 (51) #define GM_CHOIR_AAHS (52) #define GM_VOICE_OOHS (53) #define GM_SYNTH_VOICE (54) #define GM_ORCHESTRA_HIT (55) #define GM_BRASS(X) (56+(X)) #define GM_TRUMPET (56) #define GM_TROMBONE (57) #define GM_TUBA (58) #define GM_MUTED_TRUMPED (59) #define GM_FRENCH_HORN (60) #define GM_BRASS_SECTION (61) #define GM_SYNTHBRASS_1 (62) #define GM_SYNTHBRASS_2 (63) #define GM_REED(X) (64+(X)) #define GM_SOPRANO_SAX (64) #define GM_ALTO_SAX (65) #define GM_TENOR_SAX (66) #define GM_BARITONE_SAX (67) #define GM_OBOE (68) #define GM_ENGLISH_HORN (69) #define GM_BASSOON (70) #define GM_CLARINET (71) #define GM_PIPE(X) (72+(X)) #define GM_PICCOLO (72) #define GM_FLUTE (73) #define GM_RECORDER (74) #define GM_PAN_FLUTE (75) #define GM_BLOWN_BOTTLE (76) #define GM_SHAKUHACHI (77) #define GM_WHISTLE (78) #define GM_OCARINA (79) #define GM_LEAD(X) (80+(X)) #define GM_LEAD_SQUARE (80) #define GM_LEAD_SAWTOOTH (81) #define GM_LEAD_CALLIOPE (82) #define GM_LEAD_CHIFF (83) #define GM_LEAD_CHARANG (84) #define GM_LEAD_VOICE (85) #define GM_LEAD_FIFTHS (86) #define GM_LEAD_BASS (87) #define GM_PAD(X) (88+(X)) #define GM_PAD_NEW_AGE (88) #define GM_PAD_WARM (89) #define GM_PAD_POLYSYNTH (90) #define GM_PAD_CHOIR (91) #define GM_PAD_BOWED (92) #define GM_PAD_METALLIC (93) #define GM_PAD_HALO (94) #define GM_PAD_SWEEP (95) #define GM_FX(X) (96+(X)) #define GM_FX_TRAIN (96) #define GM_FX_SOUNDTRACK (97) #define GM_FX_CRYSTAL (98) #define GM_FX_ATMOSPHERE (99) #define GM_FX_BRIGHTNESS (100) #define GM_FX_GOBLINS (101) #define GM_FX_ECHOES (102) #define GM_FX_SCI_FI (103) #define GM_ETHNIC(X) (104+(X)) #define GM_SITAR (104) #define GM_BANJO (105) #define GM_SHAMISEN (106) #define GM_KOTO (107) #define GM_KALIMBA (108) #define GM_BAGPIPE (109) #define GM_FIDDLE (110) #define GM_SHANAI (111) #define GM_PERCUSSION(X) (112+(X)) #define GM_TINKLE_BELL (112) #define GM_AGOGO (113) #define GM_STEEL_DRUMS (114) #define GM_WOODBLOCKS (115) #define GM_TAIKO_DRUM (116) #define GM_MELODIC_DRUM (117) #define GM_SYNTH_DRUM (118) #define GM_REVERSE_CYMBAL (119) #define GM_SOUNDEFFECT(X) (120+(X)) #define GM_GUITAR_FRET_NOISE (120) #define GM_BREATH_NOISE (121) #define GM_SEASHORE (122) #define GM_BIRD_TWEET (123) #define GM_TELEPHONE_RING (124) #define GM_HELICOPTER (125) #define GM_APPLAUSE (126) #define GM_GUNSHOT (127) ==========================================================================