Playing around with nwctxt, I produced this:
!NoteWorthyComposer(2.0)
|StaffProperties|Volume:-1|StereoPan:-1
|PerformanceStyle|Style:Tenuto|Pos:14
|Instrument|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:10
|Instrument|Trans:0|DynVel:0,30,45,60,75,92,108,127|Pos:6
|Dynamic|Style:ppp|Pos:-7
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=-1|Pos:-11
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=0|Pos:-7
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=-128|Pos:-11
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=0|Pos:-7
|Note|Dur:4th|Pos:-2
!NoteWorthyComposer-End
And was somewhat surprised to get this output from Mf2T:
What MF2T calls "vol", NWC2 calls "Velocity". Playing this on my AWE32 synth produced no problems. It sounds as though it translates vol=255 into vol=127 and vol=128 into vol=0. YMMV
NWC2's action seems to be to accept any numeric input and kill all but the lowest 8 bits. If this results in zero, it is ignored and the current running velocity is used instead.
It seems to me that when dealing with 7bit data, zero should mean zero. -1 should mean: "keep the running status". This is how Volume and StereoPan work in StaffProperties.
8bit data should not be output where 7bit data is expected.
IMO, Volume, StereoPan, DynVel and Velocity should all work the same. The User Interface spinbox should range from -1 to 127. Any numeric input should be accepted from a Clip or nwctxt. If the input evaluates to True (i.e., -1), the running status should be used. Otherwise, the lowest 7 bits should be used.
This would simplify the program, the documentation, User Tools and Nwctxt Converters. The checkboxes could be eliminated (they are not exported anyway).