在线钢琴应用AutoPiano

什么是 AutoPiano ?

自由钢琴(AutoPiano)是利用 HTML5 技术开发的在线钢琴应用,致力于为钢琴爱好者、音乐爱好者以及其他所有的创造者提供一个优雅、简洁的平台,在学习工作之余可以享受钢琴、音乐的美好。AutoPiano 还有教学的功能,一种方式是快速入门,通过简易的谱子按键进行演奏,另一种是演奏示例,通过钢琴曲的自动播放来达到演示的目的。

什么是 MusicXML ?

MusicXML(英语:Music Extensible Markup Language,音乐扩展标记语言)是一个开放的基于 XML 的记录西式乐谱的文件格式。该格式是完全自由、开放记录的,并依据 W3C 社区的许可协议自由使用。

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

老苏开始是基于源代码构建的 Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FROM node:lts-alpine as build-base
LABEL maintainer=laosu<wbsu2003@gmail.com>

WORKDIR /app
COPY ./package.json ./
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
COPY . .
RUN cnpm install
RUN cnpm run build

FROM nginx:1.12-alpine
COPY --from=build-base /app/dist /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

运行时发现右上角会显示 请勿基于原版代码构建网站,以免影响原网站SEO,除非大量修改源代码。感谢配合开源工作。

所以只能用 autopiano_build_demo 目录重新构建,这个就简单多了

1
2
3
4
5
6
7
8
FROM nginx:1.12-alpine
LABEL maintainer=laosu<wbsu2003@gmail.com>

COPY ./autopiano_build_demo/. /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

构建镜像和容器运行的基本命令如下👇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 下载源代码
git clone https://github.com/AutoPiano/AutoPiano.git

# 如果 github 慢或者访问不了
git clone https://hub.fastgit.org/AutoPiano/AutoPiano.git

# 进入目录
cd AutoPiano

# 构建镜像
docker build -t wbsu2003/autopiano:v1 .

# 生成容器
docker run -d \
--name=autopiano \
-p 3380:80 \
wbsu2003/autopiano:v1

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 autopiano ,选择第三个 wbsu2003/autopiano,版本选择 latest

端口

本地端口不冲突就行

本地端口 容器端口
3380 80

运行

在浏览器中输入 http://群晖IP:3380 就能看到主界面

练习

选择左侧的 快速入门

开始选首难度一星的

照着字母在键盘上输入就可以了,多练习几次就 OK

点播

选择右侧的 演奏示例

随便选一首播放,播放的曲子后面有暂停按钮

🎹曲子是不错,就是少了点

参考文档

AutoPiano/AutoPiano: 自由钢琴 🎹 AutoPiano ( https://www.autopiano.cn ) Simple & Elegant Piano Online
地址:https://github.com/AutoPiano/AutoPiano

自由钢琴 - AutoPiano | 在线弹钢琴,听钢琴曲,超好听,超好玩 - Play Piano Online
地址:https://www.autopiano.cn/