You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动批量转换MIDI到MP3并调整各通道音量?

实现多通道音量自定义的MIDI转MP3自动化方案

1. 用Timidity++实现单通道音量调整

Timidity++支持通过通道增益参数或自定义配置文件单独调整每个MIDI通道的音量,你之前未成功是因为没用到正确的参数逻辑。

方法1:命令行直接指定通道增益

先通过timidity -i input.mid查看你的MIDI文件对应通道号(MIDI通道从0开始计数),假设低音、次中音、中音、高音对应通道0、1、2、3,要生成指定音量组合的文件,直接用如下命令:

# 示例:b=+0、t=-12dB、a=-12dB、s=-12dB
timidity input.mid -c "gain 0 0; gain 1 -12; gain 2 -12; gain 3 -12" -Ow -o output_b0_t-12_a-12_s-12.wav

参数说明:

  • gain [通道号] [dB值]:dB值正负均可,+为提升音量,-为降低
  • -Ow:输出WAV格式(Timidity直接转MP3依赖lame,先转WAV更稳定)
  • -o:指定输出文件路径

方法2:配置文件批量管理音量方案

如果有大量音量组合,写配置文件更高效。创建vol_profiles.cfg,每个段落对应一种方案:

; 方案1:全通道0dB
[all_0]
gain 0 0
gain 1 0
gain 2 0
gain 3 0

; 方案2:低音保留,其他降12dB
[b_only]
gain 0 0
gain 1 -12
gain 2 -12
gain 3 -12

; 方案3:次中音保留,其他降12dB
[t_only]
gain 0 -12
gain 1 0
gain 2 -12
gain 3 -12

调用时指定配置文件和方案:

timidity input.mid -c vol_profiles.cfg --profile b_only -Ow -o output_b_only.wav

2. WAV转MP3

用lame工具(需提前安装)完成格式转换,命令如下:

lame -V2 output_b_only.wav output_b_only.mp3

-V2为中等音质,平衡文件大小与音质需求,可自行调整(V0为最高音质,V9为最小文件)。

3. 自动化批量生成所有方案

写脚本自动遍历所有音量组合,一键生成所有MP3文件。

Linux/macOS 脚本(batch_convert.sh)

#!/bin/bash
MIDI_FILE="input.mid"

# 定义所有音量组合:格式为 "方案名 通道0增益 通道1增益 通道2增益 通道3增益"
VOL_PROFILES=(
    "all_0 0 0 0 0"
    "b0_t-12_a-12_s-12 0 -12 -12 -12"
    "b-12_t0_a-12_s-12 -12 0 -12 -12"
    # 可继续添加更多组合
)

for profile in "${VOL_PROFILES[@]}"; do
    read NAME GAIN0 GAIN1 GAIN2 GAIN3 <<< "$profile"
    # 生成WAV
    timidity "$MIDI_FILE" -c "gain 0 $GAIN0; gain 1 $GAIN1; gain 2 $GAIN2; gain 3 $GAIN3" -Ow -o "temp_$NAME.wav"
    # 转MP3
    lame -V2 "temp_$NAME.wav" "output_$NAME.mp3"
    # 删除临时WAV
    rm "temp_$NAME.wav"
done

添加执行权限后运行:chmod +x batch_convert.sh && ./batch_convert.sh

Windows 批处理脚本(batch_convert.bat)

@echo off
set MIDI_FILE=input.mid

:: 定义音量组合,用分号分隔
set "VOL_PROFILES=all_0 0 0 0 0;b0_t-12_a-12_s-12 0 -12 -12 -12;b-12_t0_a-12_s-12 -12 0 -12 -12"

for %%p in (%VOL_PROFILES%) do (
    for /f "tokens=1-5 delims= " %%a in ("%%p") do (
        timidity "%MIDI_FILE%" -c "gain 0 %%b; gain 1 %%c; gain 2 %%d; gain 3 %%e" -Ow -o "temp_%%a.wav"
        lame -V2 "temp_%%a.wav" "output_%%a.mp3"
        del "temp_%%a.wav"
    )
)

直接双击运行批处理文件即可。

注意事项

  • 先确认通道对应关系:用timidity -i input.mid查看MIDI文件的通道乐器信息,确保通道号与低音/次中音等对应正确。
  • 安装依赖:提前安装timidity++和lame,Linux用包管理器(如apt install timidity lame),macOS用Homebrew(brew install timidity lame),Windows可下载绿色版。

内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:40:01