Windows Media Player can wreck havoc on volume settings, so I thought a User Tool might fix things.
Copy the code and save it in your Scripts folder as: MidiVol.vbs
'Set MIDI Volume, Ver 1.01, Rick G.
For Each e In WScript.Arguments
If IsNumeric(e) Then SetMidi e: WScript.Quit
Next
WScript.Echo "Argument: 0 - 100 required."
Sub SetMidi(volume)
Set o = CreateObject("WMPlayer.OCX")
o.settings.volume = volume
o.settings.balance = 0
With CreateObject("Scripting.FileSystemObject")
f = .BuildPath(.GetSpecialFolder(2), "MidiVol.mid")
.CreateTextFile(f, 1).Write _
"MThd" & String(3, 0) & Chr(6) & String(5, 0) & "0"
o.URL = f ' open, wait while Transitioning
Do: WScript.Sleep 100: Loop While o.playState = 9
o.close: .DeleteFile f ' settings now pertain to MIDI
End With
End Sub '<eof>
Copy this and add it to: nwc2UserTools.ini
Set Midi Volume='wscript scripts\midivol.vbs <PROMPT:(0 - 100) =#[0,100]>'
NWC's prompt mechanism makes a perfect front end, remembering the settings that WMP ignores.
Windows Media Player 7+ is required. It will harmlessly err if not present.
Tested on Win98SE and WinXP(Home Edition).
After some argument checking, the program opens WMP, writes a tiny MIDI file to %TEMP%, which is loaded into WMP, then deleted. This is needed to tell WMP to change the MIDI settings. Loading a wav file here will change the Wave settings. Balance is set to mid-range since I can't imagine why it should be anything else for NoteWorthy.
You can also create a ShortCut to this and hard code a volume setting into the Target: field.
If opinions are favorable, I could move this to the Tips area.
Edited on: 2007-02-14
Ver 1.1: - Shortened arg check. Replaced MsgBox with Echo so that program can be used in a console window.
- Moved settings to top of function. WMP stores them until media is loaded.
- Shortened dummy MIDI file. WMP just needs the header. MIDI events are not needed.
Moved original version to: here