Skip to content

Releases: BUGJI/beat_data_generator

v0.3.7 交互快捷键与无障碍优化

Choose a tag to compare

@github-actions github-actions released this 04 Oct 15:02

交互与界面

  • 时间线滚动条:修复横向滚动条被底部状态栏遮挡、竖向滑块滚动到底部时溢出轨道的问题;点击滚动条轨道空白可直接跳转,拖动滑块时保持抓取点不跳变
  • 音频分析面板可拖动:标题栏可拖动并记住位置(会话内),窗口缩放时自动收回可视区域
  • 文件菜单在无最近工程时显示「暂无最近工程」占位,不再留白
  • 侧栏「新建轨道」菜单改为按内容自适应高度(此前固定 260px,选项少时留大片空白)

快捷键

  • 新增:Ctrl+0 适配视图、Ctrl+= / Ctrl++ 放大、Ctrl+- 缩小
  • 新增:, / Alt+← 与 . / Alt+→ 选中并跳到上一个 / 下一个标记;M 在播放头处放置标记
  • 设置 → 快捷键面板同步以上条目,重做项补充 Ctrl+Shift+Z

无障碍

  • 时间线编辑器可聚焦(tabindex + role="application" + 可访问名),新增隐藏的 aria-live 区域朗读当前选中的标记 / BPM 点与时间;画布标记为装饰性

性能

  • 悬停命中的标记检索由逐点线性扫描改为按拍位二分定位

界面统一

  • 便签、属性卡、插件窗口、分析面板的关闭 / 锁定 / 拖拽手柄图标统一为 lucide 图标(移除 emoji 与字符图标,跨系统渲染一致)

内部

  • 移除 SideBar 中未使用的 renameBusy 死代码,清理仓库根目录残留的设备名文件

  • 安装包:Beat-Data-Generator-0.3.7-setup.exe

v0.3.6 修复静默校验期间切换工程的误报

Choose a tag to compare

@github-actions github-actions released this 03 Oct 00:00

修复

  • 修复在打开工程的静默音频 MD5 校验期间切换 / 新建工程后,校验完成时把上一个工程的音频 MD5 与新工程的记录比较、误报「音频与工程记录的 MD5 不一致」的问题:音频加载引入世代号,切换工程即作废进行中的加载,过期的解码 / 校验结果不再写入当前工程
  • 打开工程在读取音频、分析、收尾各阶段都会检测工程是否已被切换,避免旧工程状态覆盖新工程
  • 便签编辑提示改用图标:此前编辑角标是 CSS content: "dbl-click:edit" 硬编码的英文提示,现改为 lucide 铅笔图标(.note-edit-hint),未锁定的便签悬停时在正文右下角显示,锁定便签不显示

文档

  • 补充 docs/plugin-system.md 中循环组 setMarkerLoop 的说明:间隔 / 个数 / exclude / 上限 / 退化行为

  • 安装包:Beat-Data-Generator-0.3.6-setup.exe

v0.3.5 韩语界面与 Linux 打包

Choose a tag to compare

@github-actions github-actions released this 30 Sep 22:23

国际化

  • 新增韩语界面:完整的 i18n/ko.ts 词条表(约 570 条),欢迎窗口与主进程原生对话框同步支持韩语
  • 语言检测与设置新增 ko:系统语言为韩语时自动切换,设置 → 常规 → 语言下拉新增「한국어」并可持久化;修复语言 setter 将非英文值误存为中文的问题
  • 新增韩语 README(README_KO.md),中英文 README 的语言切换与国际化说明同步更新
  • i18n 测试扩展为 zh / en / ko 三向 key 对齐校验

Linux 打包与发布

  • 新增 Linux 打包目标(AppImage + deb)与 dist:linux 脚本;deb 补全维护者信息与 desktopName,修正窗口与 .desktop 关联
  • 自动更新在 Linux 上仅 AppImage 启用自更新,deb / rpm 返回「不支持」
  • 新增 release.yml:打 tag 触发多平台打包发布,dev 分支仅做打包演练
  • 三语 README 补充 Linux 打包与发布说明

内部

  • .gitignore 忽略 Windows 保留设备名 nul

  • 安装包:Beat-Data-Generator-0.3.5-setup.exe

v0.3.4 · 结构收敛、IPC 类型化与交互优化

Choose a tag to compare

@BUGJI BUGJI released this 30 Sep 20:01

0.3.4 · 结构收敛、IPC 类型化与交互优化

内部结构(无界面行为变化)

  • 统一导入别名:@shared / @renderer 已配置但此前闲置,现将跨模块的深层相对路径((../)+shared/... 及 renderer 内 3 层以上导入)统一改用别名
  • 新增 shared/ipc.ts 的 IPC 常量表,作为 preload 与主进程共同的唯一通道来源;新增主进程 handle() 注册器,把每个 handler 的通道名与入参 / 返回值绑定到 IpcApi,通道或签名不一致会直接编译报错
  • 抽取共享路径工具 shared/path.ts(normalizeSlashes / dirName / baseName / isAbsolutePath / joinPath / relativeToDir),替换 renderer 与主进程中 5 处重复实现
  • 主题色解析抽出 hexToRgb 复用;新增通用 UiIconButton,ProjectBar 快捷按钮改用该组件 + lucide 图标,移除约 130 行内联 SVG 与重复样式
  • 新增退出前未保存守卫所用的 IPC 通道(app:set-dirty / app:confirm-quit / app:quit-request),并纳入通道表回归测试

交互与界面

  • 时间轴悬停光标反馈:空白区 / 标记 / BPM 点显示可放置或可拖拽形态,拖动、滚动、框选、快速画笔分别显示对应光标
  • 数值输入框支持 ↑/↓ 步进(步进前先提交半输入的值)
  • 轨道重命名按 Esc 取消修改(此前只能回车 / 失焦提交)
  • Esc 逐层关闭:先关音频分析面板,再关属性卡
  • 快捷键可发现性:文件 / 编辑菜单显示 Ctrl+S / Z / Y / X / C / V,撤销 / 重做在无可操作时置灰
  • 窄窗口自适应:窗口变窄时依次隐藏缩放 / 采样率 / 网格等次要读数,收紧项目栏与底部走带栏布局,窄窗下隐藏「音量」文字
  • 提高次要文字与禁用态在暗色主题下的对比度
  • 无障碍:音高跟随开关、速度输入、音量滑杆补充可访问名;播放 / 停止 / 回到起点补充 aria-label;数字微调按钮移出 Tab 与读屏序列
  • 工具提示去掉每个实例重复的 Provider,减少组件开销

性能

  • 标记绘制按可见拍位区间二分裁剪,屏幕外标记不再逐帧参与遍历

修复

  • 插件 callMain:修正 invokePlugin 参数被多包一层数组的问题,插件主进程处理器现在收到正确展开的参数
  • 修复 BPM 密度条颜色不生效:Canvas 不支持以 CSS 变量作为填充色,改用调色板常量着色
  • 修复首屏空白工程与打开工程(音频 MD5 静默校验)时误显示「未保存」:系统生成的默认轨道不再标记为已修改;加载工程自带音频不再计入用户编辑(此前整个静默校验与分析期间都会显示未保存)
  • 新增退出未保存守卫:关闭窗口时若工程有未保存修改,弹出「保存并退出 / 放弃并退出 / 取消」,经正常保存流程写盘后再退出(此前仅询问是否退出,新建工程未选择保存路径时可能丢失修改)
  • 界面细节:首屏 CSS 变量与主题定义对齐,消除启动瞬间的文字色跳变;修复自定义滚动条被标准 scrollbar-color 覆盖而不生效;移除 Element Plus 残留样式;设置弹窗关闭按钮统一改用图标
  • 样式系统:新增等宽字体、控件尺寸、派生圆角与禁用态透明度 token,统一主编辑器与设置面板的字体 / 尺寸 / 圆角 / 置灰表现;输入框恢复文本可选中;时间线状态栏吸附提示纳入 i18n;轨道行高亮、设置搜索结果闪烁与面板过渡遵循系统「减少动态效果」
  • 样式系统(续):字号抽为 --bdg-fs-* 命名 token,替换 100 余处重复的 calc(Npx * var(--bdg-font-scale));层叠顺序集中为 --bdg-z-*;插件菜单状态与轨道便签改用 lucide 图标,移除字符占位与内联 SVG

测试

  • 新增 path / ipc(通道表回归)/ limits / text 单测,并补充 theme 颜色工具用例
  • 新增工程打开回归测试:默认轨道不标脏、打开工程匹配 / 不匹配 / 无音频均保持干净、用户加载音频仍标脏

安装包:Beat-Data-Generator-0.3.4-setup.exe

English summary

  • Chore: ignore the Windows reserved device name nul.
  • Fix: the unsaved indicator no longer shows on a blank first screen or while opening a project during the silent audio MD5 check. The synthetic default track is not counted as an edit, and loading a project's own audio is not marked dirty (previously the whole silent check + analysis appeared as unsaved).
  • Internal: unified @shared / @renderer import aliases; added a typed IPC channel table with a main-process handle() registrar bound to IpcApi; extracted shared path helpers; added a reusable UiIconButton; added the quit-guard IPC channels.
  • UI: timeline hover cursors, arrow-key stepping in number inputs, layered Esc closing, shortcut discoverability, narrow-window adaptation, better dim/disabled contrast, and accessibility labels for icon-only controls.
  • Perf: culled off-screen markers when drawing the beat grid; removed per-instance tooltip providers.
  • Also included: the unsaved-changes quit guard, theme/style token system, and additional unit tests.

v0.3.3 · 结构优化与国际化

Choose a tag to compare

@BUGJI BUGJI released this 29 Sep 15:48

0.3.3 · 结构优化与国际化

国际化

  • 语言的唯一数据源改为响应式的 i18n locale:切换语言后,插件菜单、插件名等派生文案即时刷新(修复此前不刷新的问题)
  • 语言偏好持久化为设置项 locale(auto 跟随系统 / zh / en);主进程原生对话框、退出确认与更新通知都跟随所选语言
  • 欢迎窗口完成本地化,并改用轻量的 locale 助手,不再打包 vue-i18n
  • 自动节拍轨道名、便签默认文本等硬编码文案纳入词条表

性能与内部重构

  • 撤销 / 重做快照改为存 JSON 文本:捕获与「无操作」检测各只序列化一次,并按总字节数限制历史体积,大工程不再固定囤 100 份完整文档
  • 时间线的 tempo map、按轨道分组的标记索引、内容长度从模块级缓存改为 Pinia getter,缓存随 store 实例生命周期释放
  • 拆分超大文件(无界面行为变化):主进程入口 index.ts 1081 → 54 行;插件市场 822 行拆为 registry / inventory / installer;工程 store 924 行按 store / queries / tracks / markers / notes / bpm / timeAlign 拆分
  • 设置迁移逻辑集中到 shared/settings.ts,消除主进程与渲染进程的重复

修复

  • 主进程原生对话框统一优先绑定主窗口,窗口不存在时安全返回,不再因 win()! 在窗口关闭期间收到 IPC 而抛错

安装包:Beat-Data-Generator-0.3.3-setup.exe

English summary

  • i18n: a single reactive locale source (switching language now refreshes plugin menus/names); the preference is persisted as the locale setting (auto/zh/en) and applied to native dialogs, the quit prompt and the update notification; the welcome window is localized and no longer bundles vue-i18n.
  • Refactor: split oversized files — main entry 1081 → 54 lines, marketplace 822 lines into registry/inventory/installer, project store 924 lines by domain; settings migration consolidated into shared/settings.ts.
  • Perf: undo/redo snapshots stored as JSON text and size-bounded; timeline-derived data moved to Pinia getters.
  • Fix: main-process dialogs prefer the main window and return safely when none exists (no more win()! crash).

v0.3.2 · 稳定性与无障碍

Choose a tag to compare

@BUGJI BUGJI released this 29 Sep 06:26

稳定性与无障碍版本:修复撤销栈与保存竞态,补齐设置弹窗与控件的无障碍语义,并把 SettingsModal / Timeline 拆分为独立模块与子组件;同时优化音频加载校验,打开工程更快、更安静。

撤销 / 工程读写

  • 撤销快照补上「BPM 锁定」状态,锁定 / 解锁现在能正确撤销与重做
  • 删除被锁定轨道、粘贴全部冲突等空操作不再留下「幽灵」撤销项;重命名 / 换色 / 锁定 / 隐藏同值、拖动到原拍位也不再记录
  • 保存改为先序列化再写盘,写盘期间的新编辑不再被误判为「已保存」
  • 打开工程时等待音频分析完成且不自动改写 BPM / 打点,避免污染撤销栈并误标为已修改
  • 音频分析加入请求序号:旧音频的慢结果不会覆盖新音频;分析线程报错会失败挂起的请求并重建,不再永久等待
  • 非自由输入下禁止在拍位 0 创建 / 拖动 BPM 点(此前存盘后会静默丢失)

音频加载与校验

  • 打开工程时在同一次文件读取里顺带计算音频 MD5,去掉第二次整文件读取与一次 IPC 往返,大文件打开更快
  • 打开工程不再弹出「✔ 工程名」顶部提示;音频 MD5 一致时完全静默,仅不一致时由侧栏横幅提示重新链接
  • 手动选择 / 重新链接音频时静默采用新文件与记录的 MD5,不弹出冲突提示

设置与无障碍

  • 设置弹窗补齐对话框语义(role="dialog" / aria-modal)、打开聚焦、关闭归位、Tab 焦点陷阱与 Esc 关闭
  • 设置弹窗打开时挂起全局快捷键;纯图标按钮补充 aria-label,开关补充 aria-pressed;Toast 增加实时区域
  • 修复分析面板「点击外部关闭」因 pointer-events:none 永不触发的问题,改为 Esc 关闭;补齐英文界面缺失文案

内部重构(无界面行为变化)

  • SettingsModal.vue 4011 → 843 行;Timeline.vue 2617 → 726 行,抽出渲染 / 几何 / 画布生命周期与子组件
  • 测试文件 8 → 11、用例 69 → 84

English summary

Stability and accessibility release. Fixes undo-stack and save race conditions, adds proper dialog/focus/ARIA semantics across the settings modal and controls, and splits the two largest components (SettingsModal, Timeline) into focused modules with unit tests. Audio loading is also faster and quieter: the MD5 is computed during the same file read (no second full read), opening a project no longer shows a toast, and a matching hash stays completely silent while only a real mismatch surfaces a relink banner.

v0.3.1 · 设置体验

Choose a tag to compare

@BUGJI BUGJI released this 28 Sep 17:11

0.3.1 · 设置体验

对新手更友好的设置界面:

  • 新增「简化模式」,默认开启,隐藏进阶选项与「高级」分类;可在 设置 → 常规 关闭,或点击导航底部「显示全部设置」
  • 搜索增强:支持口语化同义词(如“音量”“加速”“颜色”),结果中显示设置描述片段并高亮命中关键词
  • 分类图标改用语义化图标;「记住窗口大小」「启动检测更新」从「高级」移到「常规」
  • 精简「自动隐藏网格线」「时间拉伸引擎」等说明文案
  • 无障碍:为搜索框、清除 / 展开 / 关闭等纯图标按钮补充 aria-label

外观与主题

  • 主题 → 预设改为真实界面缩略图卡片,附明暗徽章与选中标记;切换主题时全局平滑过渡
  • 新增「快速选择强调色」色板,强调色独立于预设,切换明暗主题时保持不变
  • 主题 → 自定义改为分组卡片(色带 + 「恢复本组」),并新增右侧实时预览面板
  • 原「显示 → 外观」并入 主题 → 外观:界面缩放(75%–150%)、字号缩放(85%–150%)、模糊强度、界面圆角、阴影强度
  • 界面缩放走原生页面缩放,时间线与所有面板整体生效;字号缩放仅调整文字大小,不改动布局
  • 新增「背景图片」:可选本地图片作为应用背景,支持铺满 / 完整显示 / 平铺、背景模糊(0–40px)与主题色变暗(0–100%),设置页内附当前图片预览
  • 新增「面板不透明度」(默认 90%):面板半透明以透出背景图,可自行调低获得更明显的通透效果

启动与新建工程

  • 新增「启动时打开欢迎窗口」设置(设置 → 常规,默认开启),可关闭启动时弹出的独立欢迎窗口
  • 统一新建工程流程:文件菜单与欢迎窗口的「新建工程」都会先选择保存位置,再立即写盘并记入最近工程;取消则保持当前工程不变

设置性能与稳定性

  • 拖动「界面缩放 / 字号 / 模糊强度 / 圆角 / 阴影」等滑杆时不再逐帧重算全部设置,改为停止后统一校验并持久化,交互更顺滑
  • 修复:拖动「界面缩放」滑杆时页面缩放会带动设置面板一同缩放,导致滑杆数值乱跳;现改为仅在拖动结束后应用缩放
  • 设置改动在退出前会立即落盘,避免在防抖窗口内关闭应用导致最后一次改动丢失
  • 启动时不再重复写出 settings.json,仅在配置迁移或首次生成时写盘
  • 修复:每次设置写入都会触发一次后台「检查更新」网络请求,现仅在开启该选项时检查
  • 修复:清空自定义应用名后回退到内置默认名;主题自定义仅保留合法颜色值,避免配置中堆积无效项

设置分类与插件市场

  • 信息架构:颜色与缩放 / 圆角 / 模糊等外观项统一到「主题」分类,减少在「显示」「主题」之间来回切换

  • 导航顺序调整:「插件」前移到「快捷键」之前;简化模式不再隐藏整个「网络」分类,仅隐藏进阶的「代理来源」,保留便于配置市场加速的 GitHub 加速项

  • 插件市场分类按固定品类顺序(导出 / 导入 / 联动 / 界面 / 工具 / 分析)展示,并显示各品类数量;未知品类自动美化展示

  • 注册表 categories 归一化(转小写、去空格、去重),避免重复芯片与英文 slug 泄漏;分类在刷新后失效时筛选自动重置,无匹配结果时给出空态提示

  • docs/plugin-system.md 补充市场品类约定与新增品类的维护方式

  • 安装包:Beat-Data-Generator-0.3.1-setup.exe

v0.3.0 插件市场

Choose a tag to compare

@BUGJI BUGJI released this 27 Sep 07:54

插件市场

  • 设置 → 插件 新增「插件市场」:浏览、搜索、分类筛选,一键安装 / 更新 / 卸载官方插件
  • 索引来自 beat-data-generator/registry;安装前强制校验 SHA-256,解压时拦截路径穿越与超大文件
  • 安装前显示信任提示;卸载仅作用于市场安装(带回执)的插件,不影响手动 / 开发插件
  • 「已安装」页新增「从 ZIP 安装」,可离线安装本地插件包
  • 索引本地缓存,可选有效期(1 天 / 3 天 / 1 周 / 1 个月);手动「刷新市场」始终重新拉取,网络失败回退到缓存

网络

  • 新增「网络」设置:代理来源可选 系统代理 / 环境变量(HTTP_PROXY、HTTPS_PROXY、ALL_PROXY)/ 不使用
  • GitHub 加速:预设 gh-proxy 镜像(edgeone / hk / gh-proxy / dpik)+ 自定义,支持一键测试延迟
  • 修复设置面板下拉框白底白字、看不清的问题(改为主题化控件)

内部

  • 新增插件索引仓库与组织级插件发布工作流(reusable workflow)
  • 依赖新增 fflate(纯 Node 解压)

安装包:Beat-Data-Generator-0.3.0-setup.exe

v0.2.15

Choose a tag to compare

@BUGJI BUGJI released this 26 Sep 10:41

变更

  • 修复:插件类型轨道的属性卡里,数字 / 文本字段在点击卡片外时未提交,导致更改不记录、不保存(现在关闭卡片前会先提交聚焦的输入)
  • 修复:复制踩点未复制插件属性值(attrs),粘贴后变为默认值
  • 内部:updateMarkerAttrs 改为 Pinia action,撤销 / 操作记录与其它编辑保持一致

安装

下载 Beat-Data-Generator-0.2.15-setup.exe 运行安装。


English

Bug-fix patch: plugin-typed track attribute fields (number/text) now commit before the property card closes instead of being silently dropped; copying markers keeps their plugin attrs instead of resetting to defaults. Installer: Beat-Data-Generator-0.2.15-setup.exe.

v0.2.14 公测版

Choose a tag to compare

@BUGJI BUGJI released this 21 Sep 10:08

很荣幸进入公测了,虽然什么都没做

变更

  • docs: 更新 README 头部与截图位置
  • 修复了已知BUG

安装

下载 Beat-Data-Generator-0.2.14-setup.exe 运行安装。


English

First public beta release. Docs: README header and screenshot placement refreshed, known bugs fixed. Installer: Beat-Data-Generator-0.2.14-setup.exe.