从源码构建 Edisyn:Makefile 编译与 jar 打包完整教程
【免费下载链接】edisynSynthesizer Patch Editor项目地址: https://gitcode.com/gh_mirrors/ed/edisyn
Edisyn 是一款功能强大的合成器音色编辑器(Synthesizer Patch Editor),由乔治梅森大学的 Sean Luke 用纯 Java 编写,支持 Yamaha DX7、Korg Wavestation、Waldorf Blofeld 等上百款经典合成器。对于想从源码构建 Edisyn、体验完整编译流程的开发者来说,本项目自带一个简洁的 Makefile,只需几条命令就能完成Makefile 编译与jar 打包。本教程将带你一步步完成整个构建过程,并附上常见问题与运行方法。
Edisyn 源码构建需要准备什么
在开始Edisyn 源码编译之前,请先确认你的环境满足以下条件:
- JDK 20 或更高版本(至少需要 Java 11,旧版本存在严重 Bug)。可通过
java -version检查 - Make 工具(Linux / macOS 自带,Windows 可安装 GnuWin32 或 WSL)
- Git,用于克隆源码仓库
克隆仓库命令:
git clone https://gitcode.com/gh_mirrors/ed/edisyn cd edisyn项目根目录下的Makefile是整个编译与打包流程的核心,它定义了all、run、jar、install、clean五个主要目标。
一键编译:make all 做了什么
在项目根目录直接执行:
make all这条命令会调用javac编译edisyn目录下所有.java源文件,并通过-cp参数引入 MIDI 底层库libraries/coremidi4j-1.6.jar(该库用于修复 macOS 上 SysEx 传输的关键 Bug):
javac -cp libraries/coremidi4j-1.6.jar:edisyn $(find edisyn -name '*.java')编译成功后,源码目录中会生成对应的.class字节码文件,此时你就完成了从源码构建的第一步。如果你只想快速体验,可以直接用make run以解释方式运行。
最快启动方法:make run 直接运行
如果你不想打包,只想快速看到Edisyn 编辑器界面,执行:
make run该命令等同于:
java -cp libraries/coremidi4j-1.6.jar:. edisyn.Edisyn主程序入口是 edisyn/Edisyn.java,版本号定义在Edisyn.VERSION = 37。启动后会弹出选择合成器型号的对话框,如下图:
选好型号并连接 MIDI 设备后,就能看到完整的音色编辑面板了,例如 Yamaha DX7 的 Morph 音色融合界面:
jar 打包完整步骤:make jar
当你需要分发或在其他机器上双击运行 Edisyn 时,就需要jar 打包。执行:
make jar这条命令背后依次完成了以下工作:
- 清理旧产物:删除旧的
install/edisyn.jar及临时解压目录 - 重新编译:
javac edisyn/*.java edisyn/*/*.java edisyn/*/*/*.java,覆盖三层包结构 - 生成清单文件:写入
Main-Class: edisyn.Edisyn,指定 jar 的启动类 - 解压依赖库:从
libraries/coremidi4j-1.6.jar解出uk/与META-INF/目录,随包一起分发 - 打包资源:将所有
.class、.init、.html、.png、.jpg等资源文件装入install/edisyn.jar
打包完成后,产物位于install/edisyn.jar。整个流程的核心命令如下:
jar -cvfm install/edisyn.jar /tmp/manifest.add edisyn/synth/synths.txt \ edisyn/gui/wordlist.txt edisyn/Manufacturers.txt \ $(find edisyn -name "*.class") $(find edisyn -name "*.init") \ $(find edisyn -name "*.png") $(find edisyn -name "*.jpg") \ $(find edisyn/synth -name "*.txt.gz") uk/ META-INF/其中 edisyn/synth/synths.txt 记录了 Edisyn 支持的全部音色编辑器清单,是运行时的关键索引文件。
运行打包后的 jar 文件
jar 打包完成后,在任何平台(Windows / Linux / macOS)上都可以这样运行:
java -jar install/edisyn.jar在 macOS 上,如果看到关于java.lang.System::load的原生库警告,说明 Java 正在提示 JNI 调用,可以加上参数消除提示:
java --enable-native-access=ALL-UNNAMED -jar install/edisyn.jar此外,Linux 用户若遇到高分屏字体过小的问题,可以这样启动:
export GDK_SCALE=2 java -jar edisyn.jar进阶:make install 生成 Mac 应用
如果你在 macOS 上想生成双击即用的.app/.dmg应用,可以执行:
make install它会先执行clean jar,再利用 JDK 自带的jpackage工具将 jar 封装为原生应用:
jpackage --type dmg --input install/jar --dest app --name Edisyn \ --main-jar edisyn.jar --main-class edisyn.Edisyn打包好的应用输出到app/Edisyn.app。由于.dmg体积较大(包含完整 Java 运行时,约 70MB),日常调试使用make jar就足够了。
清理构建产物:make clean
编译后源码目录会残留大量.class文件,想要恢复干净的源码树,执行:
make clean它会递归删除所有.class文件、.DS_Store以及编辑器备份文件,让项目回到初始状态,方便重新构建或提交代码。
常见问题与解决技巧
- javac 找不到库:请确认
libraries/coremidi4j-1.6.jar存在,且命令在项目根目录执行 - Java 版本过低:README 明确要求至少 Java 11,推荐 Java 20,否则可能遇到 MIDI 或高分屏问题
- jar 双击无法启动(Windows):检查 jar 文件是否关联到了正确的 Java 实例,可用 JarFix 修复
- 连接合成器失败:避免使用廉价 CH345 芯片的 MIDI-USB 线,推荐 Roland UM-ONE 等正规接口
总结:三条命令完成 Edisyn 构建
回顾整个Edisyn 从源码构建流程,核心只有三步:
| 命令 | 作用 |
|---|---|
make all | 编译全部 Java 源码 |
make jar | 打包生成install/edisyn.jar |
java -jar install/edisyn.jar | 运行编译产物 |
项目还提供了丰富的文档资源:完整使用手册见 docs/manual/Edisyn.tex,音色库管理界面截图 docs/manual/Librarian.png 可帮助你提前了解界面功能。掌握这套Makefile 编译与 jar 打包流程后,你不仅可以随时构建最新版 Edisyn,还能为后续二次开发、新增合成器编辑器打下坚实基础。
【免费下载链接】edisynSynthesizer Patch Editor项目地址: https://gitcode.com/gh_mirrors/ed/edisyn
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考