# CommandVC - MOS Command Volume Controller

本ソフトは Windows 10 以降で音量調節を行うものです。
コマンドラインから実行する事で、音量調節ができます。
バッチファイルからの利用等にどうぞ。

ver.4.5.0 から、コンソールアプリになりました。


# 使用法

コマンドプロンプトやバッチファイル等からコマンドラインオプションを付きで実行してください。

オプション「-i」をつけて起動した場合、タブ切替型ダイアログが表示されます。  
各タブで以下の情報が確認できます。

  - ミキサ情報 : ミキサ情報が表示されます。

  - デバイスマップ : ミキサデバイスの接続マップが表示されます。（作者用のデバッグ情報です）

  - ヘルプ : 簡易ヘルプが表示されます。

# コマンドライン書式

    mcvc [$"????"] [ [d?] [b???] [r"????"]
        [m|w|s|c|a|l|#??=][[+|-]vol][+|-|~] ]...


  - $"????" : ミキサ指定 [省略時=既定のミキサ]
    
    通常指定する必要はありません。
    ミキサ（サウンドカード）が複数存在する場合、指定します。
    ミキサ名はダブルクオーテーション(")で括ってください。

    ミキサ名は『ミキサ情報』で確認できます。
    ミキサ名は前方一致で判定しているので、PC内でミキサが特定できるところまで、名前を入力すればＯＫです。

  - d? : 入出力ID指定 (0-9) [省略時=0] (※廃止)

    通常指定する必要はありません。
    入出力IDは『ミキサ情報』の "Destination" の[ ]内に表示されている値です。


  - b??? : 左右バランス設定(-100 - 100[%])  
    ※チャンネル数が２チャンネルのコントロールでのみ有効

    この設定以降の音量変更時に左右の音量バランスが調整される。
    値が大きいほど右側に（マイナスだと左側に）強くなる。

    ※このオプションが省略されている場合、直前の状態に関わらずセンターに調整されます。

  - m : マスタ音量指定


  - w|s|c|a|l : 制御コントロール指定（※廃止）
    * w : Wave
    * s : シンセサイザ(MIDI)
    * c : CD
    * a : AUX
    * l : ライン入力

    制御対象コントロールのタイプを指定します。

  - #??= : 制御コントロール指定（ID指定）

    制御対象のコントロールIDを指定します。
    コントロールIDは『ミキサ情報表示』の "Controls" の[ ]内に表示されている値です。

  - [[+|-]vol] : ボリューム指定(vol:0-100[%])

    制御コントロール指定に続けて指定します。
    +,- を数値の前に付けると、現在の音量からの変分になります。

  - [+|-|!] : ミュート制御

    制御コントロール指定／ボリューム指定に続けて指定します。
    +,-,! で、ミュートOFF,ON,トグル 設定になります。
    トグルにすると現在のミュート状態を反転します。


## 情報表示オプション

    mcvc [オプション]

  - -h : ヘルプ表示
  - -d : デバイス情報表示
  - -m : デバイスマップ表示
  - -v : バージョン表示
  - -i : ダイアログを表示


# コマンドライン例

上の説明ではよくわからないかもしれないので例を示します。

  - 例１

        mcvc.exe m50+

        ミキサ      音量50%     ミュートOFF


  - 例２

        mcvc.exe $"USB Audio" #3=75-

        対象ミキサ "USB Audio"
        ID=3 のコントロール
        音量75% ミュートON


  - 例３

        mcvc.exe p10 #1=70

        ID=1 のコントロール 音量70% 右に 10% 強い


  - 例４（ver.3.1 追加書式）

        mcvc.exe m+10!

        ミキサ  音量10% Up    ミュートトグル


# 注意事項

  - b オプションについて
    b オプションはチャンネル数が２チャンネルのコントロールでのみ適用され、b オプションを省略した場合、および ２チャンネル以上のコントロールは、すべてのチャンネルの音量が均一になります。

  - マスタ音量は１チャンネルのデバイスとして見えます。マスタ音量は変更しても各チャンネルのバランスは維持されます。

  -  ミュート不可のコントロールに対してのミュート指定は無視されます。


# サポート・免責・再配布について

本ソフトウェアの使用によって生じた損害等については、作者は何ら保証する義務を負わないこととさせて頂きます。  
再配布に関しては、アーカイブに変更を加えない限り作者に連絡の必要ありません。（配布により金銭的利益を得る場合を除く）

最新情報、およびサポートは、下記にて行っています。

  - [Note]( https://note.com/mos9620 ) 
  - [GitHub]( https://github.com/mos9620/master-vc/releases )


# 改版履歴

  * 4.5.0 - 2026/08/16
    - コンソールアプリに変更しました。

  * 4.2.0 - 2025/02/10
    - 高DPI時にダイアログのサイズが大きく表示されてしまっていたのを修正

  * 4.1.0 - 2019/04/21
    - USBオーディオ等でマスタ音量やマイク音量が操作できない不具合を修正
    - 64bit版を同梱
    - 高DPI対応
    - その他不具合修正
    - コンパイル環境を Microsoft Visual C++ 2019 に変更

  * 4.0.0 - 2012/02/15
    - コンパイル環境を Microsoft Visual C++ 2010 Express Edition に変更
    - バイナリの文字コードを Unicode 形式に変更
    - アイコンイメージを更新

  * 3.7.0 - 2010/06/30
    - コンパイル環境を Microsoft Visual C++ .NET 2002 に戻した
    - Windows Vista/7 で、余計なミキサを表示しないようにした。
    - ミキサ制御ライブラリを色々修正

  * 3.6.7 - 2009/09/19
    - Windows Vista でマスタ音量以外の左右バランス調整が出来るようにしました。
    - Windows Vista でマスタ音量以外の音量設定値が、Windowsから設定した値と近くなるように補正しました。（Windowsがやってるデシベル→線形変換の式がわからんので、多少ズレます）

  * 3.6.6 - 2009/07/25
    - Windows Vista で、一部のコントロールが表示されないのを修正

  * 3.6.5 - 2009/05/30
    - ダイアログボックスフォントにWindowsのメッセージボックスフォントを利用するように修正。
    - ソースコードを大幅リフレッシュ
    - Windows7(RC版)で異常終了する不具合を修正

  * 3.6.0 - 2007/12/21
    - Windows Vista 対応
    - ダイアログデザインを変更
    - コンパイル環境を Microsoft Visual C++ 2008 Express Edition に変更

  * 3.1.1 - 2005/11/07
    - 音量を省略した場合のミュート指定が効かなくなっていたのを修正。
    - ヘルプ表示を直し忘れていたのを修正

  * 3.1.0 - 2005/11/05
    - ミュートのトグル、音量の相対指定機能を追加。
    - ミキサ情報表示機能を追加

  * 3.0.0 - 2005/02/11
    - mmvc.exe で使っている共通部に対応するため。
        機能的には変更なし。

  * 2.1.1 - 2004/01/04
    - 音量指定を省略した場合に、音量が０％に設定されるバグを修正。

  * 2.1.0 - 2003/10/16
    - ミキサ指定がID指定から名称指定に変更になりました。
    - 左右バランス指定 オプションが p→b に変更になりました。
    - 録音コントロールの選択が可能になりました。
    - 諸般の都合によりコントロール情報表示機能が無くなりました。
    - 全ソースコードをリフレッシュ

  * 2.0.0 - 2003/03/05
    - 開発環境を VC.NET にしました。

  * 1.7.0 - 2002/01/24
    - ヘルプ表示の誤植修正。

  * 1.6.0 - 2001/09/29
    - MasterVCの修正に伴い、修正……というか、変化なし。

  * 1.5.0 - 2001/06/28
    - #??= オプションのコントロール ID の指定値が変わりました。
    - d オプション追加
    - マニュアル上、各制御対象を『デバイス』と表記してあったのを『コントロール』に変更

  * 1.4.1 - 2001/05/27
    - とりあえず、mmvc.exe といっしょにコンパイルされちゃうので……

  * 1.4.0 - 2001/05/16
    - MasterVCの修正に伴い、修正。
    - 簡易ヘルプ表示追加

  * 1.3.0 - 2000/06/30
    - ソースをリフレッシュしたました。機能は変わってませんが実行サイズが若干小さくなった。

  * 1.2.0 - 2000/04/10
    - 左右バランスの調整機能を追加（"p"オプション）
    - ボリューム増減の際の計算方法を変更。増減時の計算ズレが発生しなくなるハズ……（計算式まちがってなければ）
    - コンパイラを Builder3 → Builder5 に。

  * 1.1.2 - 1999/10/01
    - パラメータ解析ルーチンを修正(ちょっとおかしな動作をしていたので)
    - デバッグ用に内部的修正をちょこちょこと……

  * 1.1.1 - 1999/08/30
    - ミュート不可のデバイスを扱えなかったバグを修正。

  * 1.1.0 - 1999/07/22
    - ミキサ ID 選択機能を追加。
    - 対応外のデバイスも ID 指定で制御できるようにした。
    - MasterVC 1.1.0 以降で使うデバイス ID の調査プログラムとして使えるよう情報表示機能を追加
    - 音量制御部を MasterVC にも流用できるよう修正――ほぼ作り直し(泣)

  * 1.0.1 - 1999/05/21
    - Mixer 以外の音源ボリュームを制御したくなり、
    - MasteVC のコア部を改造してコンソール版を造る、一応動いた。
    - いちいち出てくる DOS 窓が邪魔なので、コンソールアプリではなく、ウィンドウのでないウインドウズアプリにした。これに伴い名称を "ConsoleVC" → "CommandVC"に変更。

