【体感音乐游戏】沪港黑客马拉松全场大奖小组
本帖最后由 homeway 于 2015-3-31 16:12 编辑http://xiaocao.u.qiniudn.com/blog/logo-raspberry-pi.jpg
0x01.关于
这是2015沪港黑客马拉松的作品,获得了全场大奖,并获得香港参赛机会。
关于源码,已经上传到github上了。https://github.com/2015-hackathon/hackatho
作品通过超声波传感器检测距离,类似特雷门琴,通过距离变化弹奏音符,以此来弹奏游戏中的音符。
下面是关于作品几张图片:
http://homeway.me/image/2015-03-30-hackathon-1.jpg
http://homeway.me/image/2015-03-30-hackathon-2.jpg
http://homeway.me/image/2015-03-30-hackathon-3.jpg
作品演示视频:
http://xiaocao.u.qiniudn.com/blog/play-music-through-senses-2.pm4.mp4
比赛路演:
http://xiaocao.u.qiniudn.com/blog/play-music-through-senses-1.pm4.mp4
0x02.作品原理
原理如下:
超声波测距获取超声波与手之间的距离(不同距离即模拟钢琴的不同按键),
通过socket发送给socket服务端sever,服务端转发数据给web客户端client,
web端client用当前符与超声波发送距离比对,检测是否正确,正确即加分。
另外,显示的超级玛丽视频是用于界面效果,与游戏无关。
基本Socket流程图如下:
http://homeway.me/image/2015-03-30-hackathon-4.png
服务器端socket使用php,树莓派端socket使用python,这里用到了一个pyhon的socket转websocket模块,模块在github上搜得到,https://github.com/GulDmitry/php-websocket-server
关于前端音符编码
发音模块使用的是underscorejs的库: http://underscorejs.org/
该库需要将音符转码,把音符声调、音长、音高低转成电子码,由于没有音乐知识,这部分浪费了队友3d很多时间。
1、do、re、mi、fa、so、la、xi、du,编码换算表如下:
[*]var NOTE_MAP_REVERSE = {//换算公式
[*] 1: 'C',
[*] 2: 'D',
[*] 3: 'E',
[*] 4: 'F',
[*] 5: 'G',
[*] 6: 'A',
[*] 7: 'B'
[*]};
复制代码
2、关于还有音高和音低,3、4、4等代表升调。
3、另外关于音长与音短,0.25、0.5代表半拍、一拍音长。
换算结果类似如下,一串数组:
[*][["E4", 0.5], ["E4", 0.5], ["E4", 0.5], ["C4", 0.25], ["E5", 0.25], ["G4", 0.5]]
复制代码
0x03.关于本次hackathon
这是我第五次参加hackathon了吧,每一次都能遇到很多很有能力的队友,在很短的时间内做了很多平时很长时间内做不完的事情。
还是本着那个最初的想法,只做好玩的东西,只做有创意的东西。
下面是团队照片:
http://homeway.me/image/2015-03-30-hackathon-6.jpg
http://homeway.me/image/2015-03-30-hackathon-5.jpg
http://homeway.me/image/2015-03-30-hackathon-7.jpg
感谢每个队友,感谢团队。
本文出自 [夏日小草](http:/homeway.me),转载请注明出处: http://homeway.me/2015/03/30/play-music-through-senses/
by 小草
2015-03-30 17:19:20
这个好棒啊,还能演奏别的歌么 :lol 期待ing
欢迎黑客马拉松的作品在DF创客社区分享。
很有趣的项目,非常高兴能获得大奖。 Ash 发表于 2015-3-31 16:12
这个好棒啊,还能演奏别的歌么
目前还不可以,因为音符是根据游戏画面调节的,并且音符长度要对应上游戏长度,所以,要同时把音符和画面处理。 想知道苦海那天展示的那个有实物不 What a great idea!
页:
[1]