smfsh

1 smfsh 1.3

smfsh

SMF shell

    			smfsh
    			-V
    			file

## OPTIONS

-V

- Print libsmf version and exit.

`file`

- Load the file.

## DESCRIPTION

`smfsh`, an "SMF shell", is an interactive, command-driven frontend to libsmf, useful for modifying MIDI files by hand. It started its life as a debugging aid for libsmf.

There are four groups of commands: SMF level, track level, event level, and others.

## SMF LEVEL COMMANDS

SMF level commands display or change properties of smf (i.e. the MIDI file) as a whole.

save `file`

- Save a file. If the `file` name is not given, the last file name is used.

  Note that this will not ask for confirmation.

load `file`

- Load a file. If the `file` name is not given, the last file name is used.

  Instead of using "load", you can pass the file name on the command line.

ppqn `new-ppqn`

- Show (if used without parameter) or change PPQN (Pulses Per Quarter Note, aka Division).

format `new-format`

- Show (if used without parameter) or change format.

tempo

- Show tempo map. Tempo map is computed automatically from the SMF contents - to modify a tempo, just add a Tempo Change event using "add" command.

length

- Show total length of the song. Just like the tempo map, file length is computed from the SMF contents.

## TRACK LEVEL COMMANDS

Track level commands display or change properties of tracks. SMF may contain one or more tracks.

tracks

- Show the list of tracks in the SMF.

track `track-number`

- Show details of a track (if called without parameter), or select track with a given number - for example in order to display ("events") the events it contains.

trackadd

- Create new track.

trackrm `track-number`

- Remove the track. If the track number is not given, this will remove the track currently selected.

## EVENT LEVEL COMMANDS

Event level commands display or change properties of events. Events are grouped into tracks. Track may contain any number of events, including zero.

events

- Show the list of events in the current track.

event `event-number`

- Show information about a current event (if used without parameter) or select the event.

add `time-in-seconds` `midi-message-as-hex`

- Add new event to the currently selected track.

rm `event-number`

- Remove the event. If the event number is not given, this will remove the event currently selected.

## OTHER COMMANDS

There are three commands in the "other" category - "help", "version", and "exit". Their meaning should be self expanatory.