用Python弹奏周董的《菊花台》是什么效果
本文转自:Python的爬虫与数据分析之路
最近看到朋友圈有人在手机app上弹《菊花台》,简直太好听了。于是乎我也开始蠢蠢欲动,迅速下载app,对着谱子弹了起来。
等等,我怎么感觉我的手速跟不上我的脑子,好怕邻居说我扰民啊
算了,我还是放弃吧,毕竟我没有这个艺术细胞。突然我灵机一动,咱也是算玩Keyboard(打字的键盘和乐器的琴键都是同一个单词)的,不行就用python来操作吧!
刚开始我想的很简单,只需要下载个弹琴软件(我用的FreePiano),然后用python操控键盘就OK了,但是马上就被打脸了,因为python的pyautogui、pynput等操控键盘鼠标的库根本无法弹出来声音,需要用python操控驱动级键盘才有用!这可难倒老夫了……
我开始疯狂搜索,终于找到了解决办法,可以先下载1个虚拟键盘,然后用python来操控虚拟键盘,那么这个问题就迎刃而解了。
我找了个叫做DD虚拟键盘的软件,这是一款开源的虚拟键盘,可以通过程序来操控,软件压缩包可以在官方qq群里可以下载,内含python、Java、c等多种示例程序。
打开压缩包,有以下文件
记住压缩包存在的位置,后续有用。
下面开始介绍如何用python操控DD虚拟键盘:
1. 调用dll文件
#改成你自己的路径dddd_dll = windll.LoadLibrary('DD94396官方公版\DD94687.64.dll')
源代码括号内只有‘DD64.dll’,刚开始运行老是出错,自己折腾了一番发现是路径不对。这里也可以用绝对路径。
2. 操控键盘
虚拟键盘的虚拟码对应关系为
按键函数为:
DD_key(参数1,参数2)
其中,参数1为DD键码,参数2中1表示按下,2表示放开
例子:模拟TAB按键,只需连写
DD_key(15, 1)DD_key(15, 2)
如果需要模拟特殊符号或者大写字母按键,只需先按住shift,再按相应按键,例如模拟按@键的代码为:
dd_dll.DD_key(500, 1)dd_dll.DD_key(201, 1)dd_dll.DD_key(201, 2)dd_dll.DD_key(500, 2)
其中500是shift键的模拟码,201是数字2的模拟码
3. 准备《菊花台》键盘谱子
在网上找了一个谱子,它长这样:
这是个简化版的,主要由字母和空格组成,现在要做的就是在按键和按键、按键和空格控制好时间间隔,这样才能才能让弹奏出来的音乐更好听,下面是根据我自己的爱好设置的时间间隔:
lists = list(lists)for i in lists: if i == '\n': time.sleep(0.5) elif i == ' ': time.sleep(0.5) else: single(i) # 按键 time.sleep(0.5)
4. 效果展示
拍子有点不准,主要是因为我五音不全,把握不住节奏,请大家莫怪
感兴趣的话你可以在此基础上做进一步调整。
文中使用的代码、曲谱、软件已打包上传,扫码回复:弹钢琴 即可获得。
用Python弹奏周董的《菊花台》是什么效果相关推荐
- 520到了! 我用Python拜托周董为我和女友送上祝福!
大家好,我是菜鸟哥!这是我第482篇原创! 今天是5月20号,520意为"我爱你"的谐音,5月20日也被认为是网络情人节.在这一天,情侣们都要为彼此送上礼物,来度过美好的一天.作为 ...
- python获取按键状态_谁在用 python 弹奏一曲菊花台
转自:Crossin的编程教室 想必各位在家已经闲得快发疯了吧,鄙人现在的状态如下: 但是我不想这么萎靡下去,我想做点高雅的事情,看到朋友圈有人在手机app上弹<菊花台>,简直太好听了.于 ...
- DL之RNN:人工智能为你写周董歌词——基于TF利用RNN算法实现【机器为你作词】、训练测试过程全记录
DL之RNN:人工智能为你写周董歌词--基于TF利用RNN算法实现~机器为你作词~.训练&测试过程全记录 目录 输出结果 模型监控 训练.测试过程全记录 训练的数据集 输出结果 1.test0 ...
- 周董下次发新歌,可以请 AI 来作词吗?
By 超神经 场景描述:周董终于发了新歌,立刻在各个平台刷屏.这首新歌<说好不哭>,上线两小时,销售额就破了两千万.方文山回归.阿信助唱等因素都让这首歌火爆的一塌糊涂.方文山的作词水平一般 ...
- 二十万评论告诉你,周董的『说好不哭』有多火
2019 年 9 月 10 日,周杰伦在 Instagram 上传九宫格照片宣布新歌歌名为<说好不哭>,并且表示新歌公开时间为 9 月 16 日 23:00.他还配文「16 号晚上 11 ...
- 周董新歌搞崩QQ,透过20W评论,看看歌迷在说啥
9 月 16 日晚间,周董在朋友圈发布了最新单曲<说好不哭> 发布后,真的让一波人哭了 一群想抢鲜听的小伙伴直接泪奔 因为 QQ 音乐直接被搞崩了 没想到干翻 QQ 音乐的不是网易云音乐 ...
- Python基于周立功盒子的二次开发的封装和调用
Python基于周立功盒子的二次开发的封装和调用 一.介绍 前面我们介绍如何拿到官网给的例程并使用起来,但在使用的过程中,我们发现官网给的例子非常的冗长,可读性不好,于是我进行分解和封装,使得 ...
- 菊花台-中国朝代歌[摘]
为什么80%的码农都做不了架构师?>>> 菊花台--历史书 (模仿周杰伦<菊花台>) 你的课堂,历史中流淌:夏商的事悠悠,开来继往. 周朝太长,一分成了双:春秋在竹 ...
- python第二周day3
python第二周day3(9.24) 1.day7字典作业更改版 # 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名.年龄.成绩(单科).电话.性别(男.女.不明) ) stude ...
- python第二周day2
python第二周day2(9.23) 1.day6列表作业更改版 import random # 随机操作 # random.randint(0, 100) # **1.创建一个列表,列表中有10个 ...
最新文章
- 基于easyui开发Web版Activiti流程定制器详解(四)——页面结构(下)
- 28-Interview-面试
- Java之关于面向对象
- css响应式网格布局生成器_如何使用网格布局模块使用纯CSS创建响应表
- ffmpeg图片缩放
- linux做 tar,linux的tar命令
- 贺州计算机学院,贺州学院
- git revert 回滚代码至上一版本
- 数据加密以及国密基础知识
- 微信小程序豆瓣电影实例源码下载
- java foxpro,在Visual FoxPro中更新顶部
- android 活动生命,Android 活动生命周期
- 【Web前端】HTML与HTML5 知识点梳理总结(自用笔记版)
- 【知识图谱】Neo4j Cypher查询语言详解
- 360 android系统 流量,警惕天价流量费 360手机卫士Android版增流量监控
- 【Java面试】Linux
- Neural Ordinary Differential Equations(NIPS2018)
- 各种常用计算机视觉库 2
- Gos ——BIOS与继承者MBR
- spring赌上未来的一击:WebFlux性能实测
热门文章
- 苹果怎么分享无线密码_无线路由器密码怎么破解 无线路由器密码破解方法【介绍】...
- php 递归函数返回数组,php递归函数 PHP中Array相关函数简介
- opengl 4.5离线文档下载
- 杀软EAV/ESS不用“用户名密码”就能更新的方法【各版、6.0.308依然可用】
- jQuery lightbox插件(相册全屏效果)
- vijos 1602
- Android 电子市场
- linux动态鼠标光标,自定义鼠标光标---Linux Mint 18.2 Sonya系统
- java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(五):Action和APM计算
- mysql的inndob引擎崩溃