LOGO

BeepMusic

V 2.1.2.0 终端版本(其实只有终端版,嘻嘻)


C++
platform
license commit
stars GitHub all releases

跳转到开发者帮助

功能介绍

一款可以将简谱转换为频率和时长的软件,转换结果可供Beep函数使用,使蜂鸣器实现奏乐效果

自行编译方式

  • 法一:运行根目录下的build.bat文件,该文件会在release目录下生成两个可执行文件,分别是64位和32位,前者需要安装有g++,后者需要安装有i686-w64-mingw32-g++,如果没有前者,编译不进行,没有后者,则只编译64位版本
  • 法二:运行MakeExe.bat,生成调试版
  • 法三:使用编辑器打开build.bat,把不想要的位数版本删掉(在文档下方,已用注释分割出)

简谱表示规则

基本音符:1(do), 2(re), 3(mi), 4(fa), 5(sol), 6(la), 7(si), 0(休止符)

前缀:调整音高,+升高八度,-降低八度(可叠加,如++5

后缀

用于调整单个音的时值

  • _:减时线(每增加一个,时值减半)

  • -:增时线(每增加一个,时值加倍)

  • .:附点(时值增加50%,最多两个)

  • ~:延音线(连接相同音高的连续音符使之合并)

速度设置t=x;(x拍/分钟,默认60),此值为BPM值,简谱一般会提供,不提供的也有参考信息进行查询,一些专业软件也提供检测功能

示例

《call of silence》

参考Call of Silence简谱,基本遵循原谱内容,在后半部分和前面的细节部分做了一定的调整

下面是标准的速度版本:

t=72; -6_ 3_ 3. 3_ -7. -6__ 1-. -6_ 3_ 3. 3_ 7. +1__ 3-. 6_ +3_ +3. +3_ 7. +1__ 5-. 5_ 3__ 5-. +2_ +1__ +2.. +1__. 6-. 0--- 3_ 2_ 2_ 1_ 1_ 5_ 1 -7_ 1-. 3_ 2_ 2_ 1_ 1_ 3_ 2 3_ 1-. 3_ 2_ 2_ 1_ 1_ 5_ 5_ 5_ -7_ 1-. -6_ 1_ 2 2_ 1_ 2_ 3_ 2_ 2 1. 0 0_ +1_ 7_ 3__ 6. 0_ +1_. 7_ 3__ 1. 0_ +1_ 7_ 3__ 6 6__  7 +2__ +1. 0_ +1_ 7 3__ 6_. 0_ +1_ 7_ 3__ 1_- 0_ +1_ 7_ +1__ +2 +3_ +3_. +1_ 7-

对于外放,蜂鸣器可能会吞掉一些声音,t=45;可能更合适

软件操作

初始输出如下:

===============================================
        C++ 简谱转Beep播放器 (增强版)
===============================================

 当前曲谱: t=120; 1 2 3 4 5 6 7 #1 +1

 音符解析结果:
 =============================================
  记谱    频率(Hz)   时长(ms)   类型
  ------------------------------------------
  1         261       500       音符
  2         293       500       音符
  3         329       500       音符
  4         349       500       音符
  5         392       500       音符
  6         440       500       音符
  7         493       500       音符
  #1        277       500       音符 (升半音)
  +1        523       500       音符
 =============================================

 控制选项:
  [P] 播放音乐        [H] 帮助文本
  [I] 自定义曲谱      [Q] 退出程序
 请选择:

其中

  • 按下P,播放当前乐谱
  • 按下H,可查看帮助文本
  • 按下I,可输入自定义曲谱
  • 按下Q,退出软件

按下I后,如果是误触,可以输入return(大小写不敏感)来退出录入状态,原本的曲谱可以保留

软件初次启动时会注册Ctrl+Alt+Shift+S的热键,乐曲播放时可使用此热键停止

默认设置下,按下P会看到这样的输出:

 请选择:
  播放中... (按任意键停止)
  Play: 1        => Freq: 261   Hz, Duration: 500ms
  Play: 2        => Freq: 293   Hz, Duration: 500ms
  Play: 3        => Freq: 329   Hz, Duration: 500ms
  Play: 4        => Freq: 349   Hz, Duration: 500ms
  Play: 5        => Freq: 392   Hz, Duration: 500ms
  Play: 6        => Freq: 440   Hz, Duration: 500ms
  Play: 7        => Freq: 493   Hz, Duration: 500ms
  Play: #1       => Freq: 277   Hz, Duration: 500ms
  Play: +1       => Freq: 523   Hz, Duration: 500ms
按任意键以继续...

play表示发出声响的音符,后面跟着音符的原文是便于查找,Freq标记声音频率,Duration标记持续时间

特殊的,如下

0
Rest: 0 => Duration: 1000ms

对于休止符,输出RestFreq参数会被省略


播放帮助

对于连续播放短声音困难的硬件,建议使用耳机将蜂鸣器转为电脑内音,经过测试,通常的设备在播放「千本桜」(t=180)时,即使使用耳机,仍然会有声音是无法放出的,因此可以采用t=45;参数播放,录制结果后对结果加速4.2倍左右

开发者帮助

HELPS文件夹下是项目帮助,有些教程文档(我怕我自己忘了怎么写了放进去的),其中Introduce.md会介绍项目的整体结构、各个文件的功能

Last updated on