于潮汐之下
  • |
  • EN
  • 时间线
  • 搜索
  • 分类

做了一个开源本地音频采样管理器

2026年1月10日 - LMA 0.0.3 更新 这次的更新杂谈我拜托Gemini写了,给我代笔,我不写了。未来我再加点开发杂谈吧。我累了,最近事情太多。啊…真是,从Python换到别的语言还是得适应。要是还是有朋友装不上dmg,那我真得跟苹果掰扯一下了。现在的dmg经过了Apple的公证,系统应该只是会提示你这东西是网上下的,不会再拦你了。我拿我的信誉担保软件的安全,希望这次Gatekeeper能放过我。 然后,我只是换了架构,但另外两个文件midi_parser.py和sample_parser.py我没改,这是我的核心搜索逻辑,但他它们还是有点bug。我在搜B的时候他会把别的调的降调也给拉进搜索,这估计是当时我疏忽了,但我只能先拿这个B这个字符去代替那个降号,不然我怕没办法显示。先凑合用吧,未来我会想办法本地内置一个新符号然后把一串不可能被搞错的字符给map过去,让显示和搜索都变正常点吧。但这个我现在不搞了。 其它的未来再说。好累。 开发杂谈正文 by Gemini [2026年1月更新] 架构重构、交保护费与 Git 惊魂 距离上次写下开发杂谈已经过去了一段时间。这段时间里,LMA 经历了一次几乎是“推倒重来”级别的底层重构。虽然表面上看着还是那个熟悉的黑色窗口,但“引擎盖”底下的东西,已经完全换了一套。 告别 JSON,拥抱 SQLite 在早期的版本里,为了图省事,我用 JSON 文件来存储索引数据。对于几百个采样来说,这没问题。但当我的采样库膨胀到几万个文件时,JSON 的读写速度简直让人绝望,每次启动和搜索都能感觉到明显的卡顿。 于是,在这次 v0.0.3 更新中,我做了一个违背“偷懒祖训”的决定:全线切换到 SQLite。 现在的 LMA 不再是一个简单的文本阅读器,而是内置了一个微型关系数据库。配合上 PyQt6 的多线程(QThread)扫描,现在的体验是:几万个文件的索引瞬间入库,搜索响应是毫秒级的,而且在扫描文件的同时,界面再也不会假死卡住。这才是现代软件该有的样子。 同时,顺手把 PyQt5 升级到了 PyQt6,并且移除了 PyGame 依赖,改用 PyQt 原生的 QtMultimedia 调用系统音频引擎。这意味着软件体积更小,兼容性更好,再也不用担心 PyGame 在某些系统上发神经了。 我终于向苹果交了“保护费” 还记得我在上一篇杂谈里吐槽 MacOS 的 Gatekeeper 吗?那个“文件已损坏,请移至垃圾桶”的提示,简直是独立开发者的噩梦。 为了解决这个问题,也为了让大家安装时不再需要去终端里敲 xattr -cr,我最终还是妥协了——我加入了 Apple Developer Program。 是的,我交了那 99 美元的“保护费”。现在的 LMA v0.0.3 拥有了正经的 Developer ID 签名。打包流程也从简单的 zip 变成了正规的 DMG 封装。现在,你可以像安装任何正版软件一样,把 LMA 优雅地拖进 Applications 文件夹,Gatekeeper 再也不会把你拒之门外。虽然钱包痛了一下,但这顺滑的安装体验,值了。

2025年10月21日
#软件开发 #Python
© 2026 Alexxon · kircerta@gmail.com