We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
项目地址:http://wscats.gitee.io/piano/build/ 或 https://github.com/Wscats/piano
体验地址:https://wscats.github.io/piano/build
类别:其他 - 音乐
项目描述:
用键盘8个键演奏一首蒲公英的约定送给996的自己或者一首月亮代表我的心给七夕的她,非常简单~ 这个项目仅仅用了几个简单的前端技术实现,献给每一位挚爱音乐的代码家🎹
不需要懂乐理知识,仅用键盘即可弹奏简单而熟悉的音乐,也借此项目感谢音乐和编程的陪伴!也致敬各位奋斗于996的代码家和打工人,欢迎分享,音乐不曾辜负任何人,正如 Leehom Wang 歌曲中唱到:
如果世界太危险,只有音乐最安全,带着我进梦里面,让歌词都实现! —— 《我们的歌》
项目中没有使用市面主流的框架(React,Vue 和 Angular )和热门的技术,而用的是腾讯 Omi 框架(JSX+WebComponents),还有 Omil 的单文件组件 SFCs 加载器,组件通讯基于Proxy特性,并结合了 VScode 的插件 Omi-Snippets基于 AST 和正则实时编译 .eno 或 .omi 后缀组件减轻部分的 Webpack 的局部编译压力,后续会完善 Omi 的解析器,和增加示例音乐,并升级音乐的引擎。
playSong(song) { this.setSong([...song]) let offset = 0 let time = 0 let playSong = async () => { // 右边是从外部来中断递归 if (offset < song.length && this.store.data.song.length > 0) { switch (typeof song[offset]) { // 简谱2演奏方法 根据 ++12345--6. 简单旋律情况 case 'string': let letters = song[offset].match(/[0-9]/g) switch (letters.length) { case 1: time = this.handleString(song, offset) break default: time = this.handleStrings(song, offset) break } break // 简谱1演奏方法 根据 CDEFGAB,复杂旋律情况,比如有和弦 case 'object': console.log(song[offset]['note']) time = song[offset]['time']; this.playNote(song[offset]['note']) break; case 'number': // 休止符 switch (song[offset]) { case 0: time = 1000 break } break } await new Promise((resolve) => { let timer = setTimeout(() => { clearInterval(timer) resolve() }, time) }) offset++ // 自定义事件,跟下面底部的音符自动跳动结合 this.add() playSong() } else { // 暂停播放 clearTimeout(this.timer) this.store.data.song = [] this.store.data.count = 0 return } } playSong() }
The text was updated successfully, but these errors were encountered:
您推荐的项目,已成功发布在 HelloGitHub 第 56 期,并把您添加到了贡献者列表中。
欢迎继续推荐如此优秀的项目、告诉其他小伙伴加入到 HelloGitHub 项目中,没有 star 本项目的请 star 一下。谢谢 🙏
HG 发起了《讲解开源项目》系列,欢迎项目作者参与(全平台免费单推您的项目)。有兴趣可以加我微信:xueweihan(备注您发起的项目名称)
Sorry, something went wrong.
No branches or pull requests
项目推荐
项目地址:http://wscats.gitee.io/piano/build/ 或 https://github.com/Wscats/piano
体验地址:https://wscats.github.io/piano/build
类别:其他 - 音乐
项目描述:
用键盘8个键演奏一首蒲公英的约定送给996的自己或者一首月亮代表我的心给七夕的她,非常简单~ 这个项目仅仅用了几个简单的前端技术实现,献给每一位挚爱音乐的代码家🎹
不需要懂乐理知识,仅用键盘即可弹奏简单而熟悉的音乐,也借此项目感谢音乐和编程的陪伴!也致敬各位奋斗于996的代码家和打工人,欢迎分享,音乐不曾辜负任何人,正如 Leehom Wang 歌曲中唱到:
项目中没有使用市面主流的框架(React,Vue 和 Angular )和热门的技术,而用的是腾讯 Omi 框架(JSX+WebComponents),还有 Omil 的单文件组件 SFCs 加载器,组件通讯基于Proxy特性,并结合了 VScode 的插件 Omi-Snippets基于 AST 和正则实时编译 .eno 或 .omi 后缀组件减轻部分的 Webpack 的局部编译压力,后续会完善 Omi 的解析器,和增加示例音乐,并升级音乐的引擎。
The text was updated successfully, but these errors were encountered: