TiMidity++ Windows 汉化修改版

近期上手老软件 TiMidity++,发现其在中文系统环境下使用有诸多不便,故在 Agent 的帮助下稍作修改,分享出来请各位过目。

网盘链接:

提供两种编码的版本:

GitHub:https://github.com/JiayuYangX/timidity

以下内容与仓库自述文档相同。


本仓库为 TiMidity++ 的 Windows 构建版,提供中文界面及全部文档汉化,并修复使用中的一些问题。

基本使用

在软件根目录创建 timidity.cfg 配置文件,用 soundfont 指定音色文件(支持 GUS Patch、SoundFont 2 和独立 PCM 采样),用 opt 设置启动参数。配置文件具体参考 timidity.cfg.5.html,命令行参数参考 timidity.1.html(汉化版本位于 man/zh 目录)。启动软件时会创建其他 .ini 配置文件。

本次构建提供命令行、播放器 GUI、合成器 GUI、合成器服务四种使用方法(驱动形式不适配现代系统,未参与构建)。

类型 二进制文件 特点 基础用法
命令行(CLI) timidity.exe 命令行程序,无图形界面;基础功能最全面 -i--interface 参数指定控制台界面
-O--output-mode 参数指定输出方式
播放器 GUI timw32g.exe 有图形界面;支持 Tracer、WRD、DOC 等功能
合成器 GUI twsyng.exe 托盘程序,有图形界面;支持设置输入端口 托盘右键设置选择输入端口,点击“合成器开始”
合成器服务 twsynsrv.exe 用于注册/卸载合成器服务,无图形界面 终端 twsynsrv /INSTALL 安装服务,启动服务后主动监听
twsynsrv /UNINSTALL 卸载服务

修改内容

汉化

  • 提供汉化界面支持
  • 汉化所有内置文档

修复叠音

  • 修正叠音条件,现在所有情况都允许叠音

输出方式

  • 添加 PortAudio WASAPI 输出方式
  • 为 PortAudio ASIO 添加简单的选项面板
  • 添加 MP3 LAME 输出方式并提供选项面板

编码

  • 修改界面部分源码编码为 GBK,解决中文系统环境下日文字符乱码问题
  • 替换 CP936 不支持的字符和未预装的日文字体
  • 修改默认设置,现在默认使用中文界面,编码设置为 nocnv
  • 修复 DOC、WRD 中仅日文环境下正常显示的问题

WRD 显示

  • 修复 MAG 文件的 r4g4b4 颜色编码被错误解析为 g4r4b4 的问题
  • 修复 WRD 命令未完整匹配字符串导致误识别的问题
  • 补全 @GCIRCLE() 命令(绘制圆)的未完成代码
  • 修复暂停时 WRD 画面提前的问题
  • WRD 窗口适应标题栏和边框大小,确保显示区域为 640×400
  • 修改默认设置,WRD 窗口默认开始绘制,打开文件时允许后台绘制

构建启用

界面

  • timw32g.exe Windows GUI 界面
  • twsyng.exe Windows 合成器 GUI 界面
  • timidity.exe 命令行界面
    • dumb 界面(默认) -id
    • ncurses 界面 -in
    • vt100 界面 -iT
    • Windows 合成器界面 -iW

音频输出

  • w32 (Windows MMS)(默认)
  • PortAudio MME / DirectSound / ASIO / + WASAPI (新增)
  • Vorbis OGG
  • FLAC
  • MP3 GOGO

    注:Gogo-No-Coda(午後のこ~だ),日本人写的 LAME 分支,是当时最快的 MP3 编码器;现早已停止维护

  • + MP3 LAME (新增)
2 Likes

非常厉害,不过由于我电脑启用了UTF-8编码,因此遇到了部分界面乱码的问题。
而且这软件还是32位的。
另外希望这个软件能加入MIDI输入的支持。

1 Like

我目前以winehq环境运行tmidi+,只是不论如何控制台都返回

 Con:Unable to open audio port "direct sound".

我在想本机驱动设置的音频输出也并非direct sound,
后面尝试更换了其他音频端口,不过依旧返回的是无法打开direct sound (ASLS和Pulse audio驱动注册项的问题就先排除了)

不太清楚这是该tmidi对hq兼容的bug,还是什么其他的问题。

不过最后控制台还返回了些信息(自行查看吧,后面不讲了):

warn:音频缓冲区设置`过小`

Direct sound:Success (????)
err:Unable to open "Direct sound" port.

上面还原了当时大概的情况,很不理解,都显示成功了。后面突然就给出来个无法加载。(何意味)


不清楚,它说的缓冲区过小具体指的是哪种数字
(但我认为小缓冲只是放的时候会卡爆,不应该连播放直接给拒绝了)

1 Like

感谢反馈,已做出改进:

  1. 现已提供 UTF-8 编码的版本
  2. 感觉升到 64 位并没太大必要性,而且无法兼容 gogo.dll;32 位足矣
  3. 构建新增 twsyng.exetwsynsrv.exe 两个程序,支持 MIDI 端口输入
1 Like

音频缓冲区过小那个警告我也会弹,好像不影响使用,无伤大雅。
无法打开 DirectSound 端口这个问题在我自己的 Windows 上不会出现。按理来说未打开的输出设备不应该有错报啊……我也不清楚具体原因。重新启动软件,先切换输出方式再开文件试试?
本人对 Linux 实在不太了解,主要以适配 Windows 原生环境为主,这点上我也帮不上太多忙。或许你可以自己调试一下试试?

2 Likes