This works:
mma -f /dev/null - <test.mma
And, actually, I think it's a bug. Try changing the following:
1. main.py, line 125:
######################################
# Create the output filename
if not MMA.debug.noOutput:
MMA.paths.createOutfileName(".mid")
2. options.py, line 265:
# if a single '-' is left on the cmd line user want stdin. We set the
# the input filename to numeric 1 which can't be entered.
if gbl.infile == '-':
gbl.infile = 1
if not gbl.outfile and not(MMA.debug.noOutput):
error("Input from STDIN specified. Use -f to set an output filename.")
Did a quick test here and it seems to work. Honestly, I've never had a need for stdin or for no output
Just read and create things