跳到正文
我的开源小站

Band Room

活跃 技术栈:AlphaTab · JavaScript · Node.js · WebSocket

下载 版本 1.0.4

一个局域网内的乐队排练辅助工具。主机电脑运行 Band Room 并独占播放控制,乐手用手机或平板浏览器扫码进入同一房间,各自查看自己的轨道谱面,跟着同一个播放位置同步走。

排练全程不依赖公网,乐手端不需要安装任何 App。

它解决什么问题

排练时每个人的谱不一样:吉他手看吉他轨、贝斯手看贝斯轨。但谱面没法跟着同一个人走——主机按下播放,其他人还得自己在手机上找位置。

Band Room 让主机独占播放、暂停、跳转,所有乐手设备的谱面游标与自动滚动都跟着服务端推送的位置走,并且每台设备只显示自己那一轨。

主要特性

  • 局域网房间:主机生成 7 位数字房间号,乐手扫码或打开加入链接,最多 32 台设备
  • 服务端唯一时钟:服务端生成展开后的播放时间线与速度图,广播绝对 tick、BPM、小节与拍点;客户端只渲染服务端位置、不自行计时,因此多设备不会各自漂移
  • 曲谱支持:.gp、.gp3、.gp4、.gp5、.gpx,上限 20 MB,由 AlphaTab 在本机渲染
  • 每人独立选轨:乐手自选显示哪条轨道,只影响自己那台设备
  • 同步游标:乐手端基于展开时间线建立拍点表,用独立游标叠加到谱面并自动横向滚动
  • 主机伴奏:只有主机端真实发声,乐手端刻意不加载播放器,因此不会请求音频权限也不会出声
  • 权限边界:创建房间时只有主机浏览器拿到令牌,上传与播放控制都随 WebSocket 消息校验;加入链接和二维码不含令牌,可以放心投屏
  • 断线恢复:WebSocket 按 0.5/1/2/4/5 秒退避重连,页面从后台返回时立即检查连接;房间空置后保留 60 秒,可自动回到原房间
  • 全屏看谱:支持浏览器原生全屏,不支持的移动浏览器自动降级为沉浸式布局
  • 离线可用:脚本、字体和音色全部由主机本地提供,不依赖 CDN

怎么使用

普通用户不需要安装 Node.js,直接下载对应平台的安装包即可。

  1. 在主机电脑上打开 Band Room,它会自动启动局域网服务器并显示主机控制台
  2. 乐手用手机或平板扫描控制台上的二维码进入同一房间
  3. 各自选择自己要看的轨道,跟着主机的播放位置走

首次打开会被系统拦截:安装包没有代码签名与公证,macOS 会提示「来源不明」、Windows 会提示 SmartScreen。需要手动放行一次——这是正常的,不是文件损坏。