概述
2021SC@SDUSC
目录
- 一、前言
- 1.说明
- 2.梗概
- 二、界面以及音乐效果
- 三、实现
- 1.画面实现
- 2.钢琴声音生成**
- 3.game
- 4.出声逻辑
- 5.main
一、前言
1.说明
audio 说明文档地址
audio package - github.com/hajimehoshi/ebiten/v2/audio - pkg.go.dev
本文中所有截图和代码均来自说明文档或 ebiten 源文件
笔者负责 audio 音频相关的代码分析
2.梗概
解析 examples 包下的 piano 中的例子。
手动生成钢琴音色。
二、界面以及音乐效果
界面包含A - L 9个白键,音调递增,还有7个黑键。
右上角是帧数。
按压键盘对应按键,会有钢琴声音播放。
三、实现
1.画面实现
一个 main 方法前可以有多个 init 初始化方法,这个初始化方法是用来限制文字大小和格式。
这里规定了窗口大小、采样频率、基频。
这里创建一张和窗口大小相当的图片,然后构造这个静态图片。
展示。
2.钢琴声音生成**
钢琴的声音是手动模拟生成的。
首先是三个变量,分别是钢琴按键与音频流对应关系、状态码、通讯队列。
然后键盘值。
和上面 pianoNoteSamples 一一对应。
pianoAt 生成给定频率的第 i 个钢琴音频样本。
用多个正弦波模拟钢琴的波。
toBytes 返回具有给定左/右序列的 2ch 小端16位字节序列。
初始化钢琴数据。
通过上述几个方法,填充 pianoNoteSamples。
3.game
4.出声逻辑
首先初始化数据,然后循环检测按键,在 pianoNoteSamples 中索引对应音频。
然后根据字节流创建播放器播放。
playNote 以给定的频率播放钢琴声音。
5.main
没有变化。
最后
以上就是懵懂心锁为你收集整理的ebiten 学习(13)-piano, 9白键7黑键一、前言二、界面以及音乐效果三、实现的全部内容,希望文章能够帮你解决ebiten 学习(13)-piano, 9白键7黑键一、前言二、界面以及音乐效果三、实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复