Skip to content

TEST - #1

Merged
Erythrocyte3803 merged 25 commits into
masterfrom
release/2.0.0
Aug 17, 2026
Merged

Erythrocyte3803 merged 25 commits into
masterfrom
release/2.0.0

Conversation

@Erythrocyte3803

Copy link
Copy Markdown
Member

No description provided.

This reverts commit 9191d51.
- 扩展系统:启停/路由独立成 ExtensionRouting.json、format 设置、能力摘要
- 自动保存 sidecar(AutoSaveStore)、G2P 开关、固定笔刷、触控板横滑等
- 冲突解决:设置注册表/文件/编辑器按键块 4 处;保留铅笔工具、多 LLM 提供者、
  会话控制、钢琴键标签、舒适范围等 AIH 独有功能
- 引入 jianpu-ascii-font 子模块(SIL OFL),JianpuASCII.ttf 以 Link 方式内嵌
  进 TuneLab 程序集(avares://TuneLab/Assets/Font#Jianpu Ascii)
- 简谱标签改为按字体 ASCII 连字写法渲染:数字 1-7 为音符,' 高八度点在上、
  , 低八度点在下,# 升号,由 HarfBuzz liga 连字合成规范简谱字形
- ±2 八度外退回原手动画点逻辑;PitchName 样式不受影响
- 新增 JianpuLabelFontSize:小键 14 / 常规黑键(≈28px) 17 / 白键(≈48px) 21,
  远大于原 KeyLabelFontSize(9-11)——字体的八度点只有 5% em,小字号下几乎看不见
- 新增 CanDrawJianpuLabel 门槛(行高≈1.5em + 八度点占位),空间不足时退回
  手动画点路径,避免字形溢出小键
宿主侧根级工程 TuneLab.Bridge/ + 插件侧 Bridge_VST3/(JUCE v9,产物 Bridge_VST3.vst3)+ 共享协议头 Bridge/protocol/TLBridgeProtocol.h(真源)。

* 协议:控制块 5360B,握手/心跳/宿主版本/采样率同步;布局一致性测试与 C 头对拍
* 宿主侧:BridgeClient/BridgePanel(Editor 菜单 Bridge → Bridge Panel...),仅 Windows
* 插件侧:JUCE CMake juce_add_plugin,多可选输出总线,只发 VST3
* 工程接线:sln + InternalsVisibleTo + ProjectReference + Bridge 测试;.gitignore 加 build/ 与 THIRD_PARTY/(本地符号链接依赖,不入库)
* 计划书 VST-Bridge-计划书.md 记录全案
* 新增共享换算类 PianoKeyLabel(PianoRoll/):把 PianoRollItem 的音高换算(PitchNameLabel/TryGetNumberedPitchLabelParts/NumberedAsciiText/JianpuTypeface)抽出,钢琴键与音符标签共用,保证两处口径一致
* PianoScrollView.DrawNotePitchLabel:音符前端(左端)下方半透明白底片显示当前音高——CDEFGAB(C4)或简谱(Jianpu 字体 1'/1,,,超 ±2 八度退回 1 (C4));字号随键高缩放,键高过小跳过;单独一趟画在音符之上
* 订阅 PianoKeyLabelStyle/NumberedPianoKeyTonic → 重绘(切模式/主音即时生效)
* 修复:切换 Provider(Gemini/DeepSeek…)时直接把 Endpoint + 接口地址重置为该供应商默认(OnSettingsModified 订阅 mSettings.Modified,mLastRenderedProviderId 防递归,mSuppressDirty 期间不联动)
* 移除顶部冗余的「模型提供方 OpenAI Compatible」引擎选择下拉:仅一个内建引擎 openai-compatible,无选择意义;删 mProviderController/mProviderData/mEngineOptions/EngineKey/BuildProviderConfig/OnEngineSelectionChanged 链路,引擎固定为 mEngineType
* RestoreSettingsSnapshot 同步联动基准,避免还原后误覆盖用户自定义接口地址
M1 音频链路:
* 插件 processBlock 从共享环拉音频填输出总线,写 DAW 播放位置;宿主 BridgeRenderer
  后台线程按读位+lead 渲染轨道进环(RenderTrack→MixBridgeData→AudioGraph.AddData)
* 桥接态采样率协商(ApplySampleRate→Dispatcher.UIThread.Post),BridgeMode 下跳过
  SDL 重开/预览重建,避免渲染线程触发 UI/合成死锁
* 修复:getBusCount(true)→false(无输入总线恒 0 导致输出恒静音)、环回绕旧数据
  (dawPos<validStart 重置写位重铺)、播放不全(DAW 停止时整环回填 [dawPos,writePos)
  不推进写位,合成就绪自动补上开头)

M2 传输同步(DAW 为 master):
* 插件上报 play/loop、曲速、拍号、PPQ;BridgeTransport.Apply 翻译成
  SetTransportPlaying/Seek/Tempo 回调(一律 Post UI 线程)
* 时基覆盖:TempoManager.SetTimebaseOverride 恒定曲速换算,断开还原;停止时不报
  曲速(tempo=0)保留上次有效值避免回落工程表+反复重合成
* 时间轴 tempo 行显示 DAW 曲速(ITempoManager.TimebaseOverrideBpm 进 UI),调 DAW
  BPM 同步显示
* 进程残留:ShutdownMode.OnMainWindowClose,关主窗口即退出+停渲染器

测试:BridgeRingBuffer/BridgeTransport/BridgeProtocolLayout/BridgeClientHandshake
+ TempoConvertTests 时基覆盖,261 全绿
@Erythrocyte3803
Erythrocyte3803 merged commit e672b5d into master Aug 17, 2026
0 of 3 checks passed
@Erythrocyte3803
Erythrocyte3803 deleted the release/2.0.0 branch August 30, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant