口琴被称为“口袋里的钢琴”,便于携带,具有独特的音色。
我在机缘巧合之下喜欢上了吹口琴,并发现了je口琴吧。
je口琴吧的成员主要是二次元口琴音乐的爱好者,大家普遍使用半音阶口琴。
一只十二孔半音阶口琴具有三组的八度和完全的半音。
用一只口琴就能演奏绝大部分的动漫歌曲。
我目前所用的就是一把16孔的半音阶口琴——SCX64。
有的小伙伴会把自己喜欢的谱子扒下来,上传到贴吧。
但是由于贴吧的机制,并不适合谱子的保存和搜索。
要想从大量水贴中找到自己想要谱子真可谓是难上加难。
在一次偶然的机会,我读了一篇利用github的issue来储存技术博客的文章。
其作者详细阐述了这么做的优点。
如:能够在线编辑和预览、支持粘贴屏幕截图和拖拽添加图片、带有搜索和排序功能、可通过 Label 来对进行分类。
我当时就激动的叫了出来!
天啊!
这些功能简直就像是为曲库量身打造的!
issue有自己的Label系统,能够对谱曲按照首字母等标签进行分类,方便查找曲库建立之初,我进行了不少探索。
自己用markdown写了一套谱子上传模板。
然后自己一个人开始搬运je吧一些比较有名的谱楼和自由神社的谱子。
为了推广我的曲库,我用vue框架做了两个网站,一个是pc端的,一个是自适应的。
我还制作了详细的谱子上传教程发到je吧。
这样,我的曲库终于有了第一批用户,同时也是第一批谱子上传者。
在后来一段时间里,随着谱子数量的增多,一些问题逐渐暴露出来,经过大家的讨论,曲库2.0版本应运而生。
在2.0版本中,我们对曲库定位为一个单纯的数据库,去除了谱子模板中仅仅为了美观加入的徽章代码。
同时,我们对曲库进行了去标签化。
不再使用github issue的label标签功能对谱子进行分类。
在1.0版本中,我们将同一个作品的谱子放在一个issue里面,随着谱子数量的增加,用户找谱子的体验严重下降。
为此我们在2.0中将每个谱子作为一个单独的issue进行存放,不再强迫用作品将其分类。
同时,我们我还成立了核心开发组,着手移动端和网站新版本的开发。
1月份,我们顺利开发了哔谱哔谱网站以及安卓客户端。
网站新功能中的谱册功能也是对之前曲库2.0中去标签化的一种延续。
我们把将谱子分类的权利交给用户,让用户能够创建一些独一无二的谱册。
就有点类似于网易云音乐的歌单。
个性化,定制化。
这也是我们开发谱册功能的初衷。
关于哔谱哔谱的技术栈,我们选择的是JavaScript语言的vue框架,后端选择的是go语言的gin框架,数据库mysql,服务器选的是阿里云。
目前前端主流的框架有,Facebook的react.js,国人尤雨奚开发的vue.js,还有Google维护的angular.js。
之所以选择vue,是因为vue是一款很轻量的渐进式框架,有着详细中文文档和社区。
为什么选择go语言作为后端而不是Java或者node.js呢?当然不是因为今年是狗年。
主要是因为核心开发组中后端的成员公司新业务开始使用go,而这个语言确实好,它对于高并发具有先天的优势,同时自带垃圾回收机制,能够快速编译。
因为我们这个项目是一个开源的项目,大家都是基于兴趣来进行网站开发,我们暂时无法给予大家经济上的回报,所以我们只能说在项目中多多使用一些比较新的东西,鼓励大家学习一些新的语言,给大家一些锻炼和实践的机会。
上图中这些一个个小的知识点,像跨域,nginx配置,数据库和接口设计,移动端的开发也都是我们在网站开发过程中实际遇到的问题,不过都通过查阅相关资料或者和开发组的各位相互请教最终顺利解决。
特别是第三方登录的实现让我对前后端分离后相互之间的配合有了更加深刻的理解。
截至今年3月份,曲库现有谱子数量已经达到了490个,相比于最初的39首有了巨大的进步。
同时越来越多的搬运工加入了我们,截至到目前为止,除了我以外,还有10名曲库的元老级贡献者持续为曲库义务上传谱子。
同时,我每个月我们都会收集大家对我们曲库的建议以及奇思妙想,并且通过讨论决定是否添加或修改相应的功能。
另外,观实科技目前以股份的形式投入经费用来维持网站服务器的正常运行。
这其实也是我第一次在Github上自己负责一个开源项目。
让我感受最深的就是开源贡献者之间不一样的合作。
为什么说是不一样的团队合作呢?因为首先我们是一个开源项目,是非盈利的。
大家都是处于对口琴的热爱才参与到这个项目当中来。
项目成员的背景多元,所以思路和点子也很多元。
其中有初中生,大学生,也有华为,新浪等各个公司的员工。
大家平时都有自己的事要做,不可能在这个项目上花太多时间。
所以我就要负责协调,还有进度管理(催进度)。
鲁迅说,不对。
。
。
古人说:凡事预则立,不预则废。
我发现真的就是这样。
所以必须要定一个网站施工计划表,这样才能相对有效提高网站开发的进度。
同时这个项目也让我有机会接触网站开发的全过程,让我知道了前端和后端之间是如何配合来实现一些业务的,充分满足了我的好奇心。
因为本科毕设做过一个基于融合特征的行人再识别问题,其中用到了几个公共行人数据集。
于是我就想,能否将我们曲库也作为某个机器学习的数据集呢?目前贴吧的小伙伴们主要都是靠自己的耳朵或者用一些辅助软件将音频转换成频谱来进行扒谱,这样需要花费不少精力。
我们是否能够研究出一款输入为音频文件,输出为谱子的机器学习算法呢?我阅读了几篇国外关于乐谱识别的论文,其中有一篇就是将音频文件进行Constant Q transform常数Q转换。
从而将音乐中的音符检测转换为图像识别问题,然后通过cnn网络训练样本。
但是识别率不太理想,相关研究还有很大空白。
常数Q转换(ConstantQtransform)与短时傅立叶转换一样为重要时频分析工具,这个转换产生的频谱最大的特色是在频率轴为对数标度而不是线性标度,且窗口长度会随着频率而改变。
由于它与音阶频率具有相同的指数分布规律,因此在音乐信号的音调检测中有着独特的优势。
但是目前CQT存在的一些问题:无非常有效的CQT快速算法,如果借助fft来进行计算则会丧失一部分cqt变换独有的性质。
值得一提的是,je吧常用的数字谱并没有标出节奏(这造成了一定的不便,但也造就了这样的简谱非常便于搬运和转调的优势)相比于五线谱和简谱,数字谱数据更容易处理。
所以我觉得对于乐谱识别的研究来说,数字谱可能会是一个很好的切入点。
通过和平安科技深度学习组的专家交流,目前直接提取准确的数字谱还有难度。
但是他提供了另一种思路,可以先研究一种能够提取一段音乐中的主旋律的算法,这样就算再用耳朵扒谱也容易得多。
同时,这个算法也可以作为乐谱识别算法中的音频预处理,提高准确率。
因为研究生阶段也会从事图像检测和大数据方向相关研究,所以我觉得或许可以将以后的职业和兴趣结合一下。
于是,我提出了一个大胆的,以曲库为核心的哔谱哔谱小生态。
一来,希望能够充分发挥曲库的价值,看能否为机器学习领域的发展做一些贡献。
二来,看看自己有没有能力在乐谱识别的研究方面有所突破。
我们也和许多人气UP主达成合作,为哔谱哔谱引入了许多优秀的口琴相关内容。
当然这个生态圈,目前还只是不成熟的设想。
希望能通过大家后续的共同完善与修改,把最好的口琴曲谱库送给最好的你们!
其实写之前纠结了一下到底在什么平台上写这篇文章比较合适?知乎?掘金?还是简书?所以趁机打一波广告:不管你是口琴、二次元音乐的爱好者,还是对前后端或ML感兴趣的程序猿,亦或是对我们很感兴趣,我们JE曲谱库核心组这个大家庭都欢迎您的加入!
群内技术交流氛围良好,希望大家多多参与讨论。
在把哔谱哔谱做好的同时,也希望群里的每个人都能有所收获!
- 夏天的风 姑娘 老男孩 理想三旬 月半小夜曲 生日快乐 其实 那些年 光阴的故事 少年 后来遇见他 那女孩对我说 世界这么大还是遇见你 火红的萨日朗 想见你想见你想见你 冬眠 关键词 芒种 往后余生 关山酒 年轮说 小镇姑娘 烟雨行舟 记念 你笑起来真好看 来自天堂的魔鬼 学猫叫 你的酒馆对我打了烊 不仅仅是喜欢 浪人琵琶 卡路里 带你去旅行 红昭愿 纸短情长 最美的期待 体面 小跳蛙 悬溺 侧脸 山楂树之恋 我的名字 失眠飞行 有可能的夜晚 追光者 请先说你好 流浪 东西 星球坠落 我的将军啊 烟火里的尘埃 答案 心如止水 我们不一样 嘴巴嘟嘟 晴天 成都 告白气球 南山南 女儿情 天空之城
报歉!评论已关闭。