想必各位在家已经闲得快发疯了吧,鄙人现在的状态如下:

但是我不想这么萎靡下去,我想做点高雅的事情,看到朋友圈有人在手机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 弹奏一曲《菊花台》https://www.zhihu.com/video/1213105190532308992

拍子有点不准,主要是因为我五音不全,把握不住节奏,请大家莫怪

感兴趣的话你可以在此基础上做进一步调整。

文中使用的代码、曲谱、软件已打包上传:

------

作者:锅g头

欢迎搜索并关注:Crossin的编程教室

这里还有更多精彩。一起学,走得远!

用python做曲_谁在用 python 弹奏一曲《菊花台》相关推荐

  1. python 做网页_听过最近Python过气了?

    Python过气了? 怎么可能?! 会Python的人,工作都不会太差.作为职场"新晋网红",Python在各行各业中扮演着越来越重要的角色. 曾经Excel在金融.数据岗位&qu ...

  2. python做外贸_跟着销售学python(3)---开发微信公平台(1)

    跟着销售学python(3)--- 开发微信公共平台(1) 首先交代一下, 目前我的学习背景啊: 我自己是一个创业的外贸服务公司, 自己主要做销售,学python主要目的是为了工作上的帮助吧. 自己的 ...

  3. 用python做头像_教你用python下载和拼接微信好友头像图片

    相信微信大家是用得再多也不过了.那么,对于python+微信,又能玩出什么新的花样呢?下面就给大家带来一个好玩的东西.用python下载所有的微信好友的头像,然后拼接成一张大图.这样,大家就可以转载到 ...

  4. python获取按键状态_谁在用 python 弹奏一曲菊花台

    转自:Crossin的编程教室 想必各位在家已经闲得快发疯了吧,鄙人现在的状态如下: 但是我不想这么萎靡下去,我想做点高雅的事情,看到朋友圈有人在手机app上弹<菊花台>,简直太好听了.于 ...

  5. python做兼职_“隐形贫困者”自学Python做副业,教你如何月入10000+

    现在的年轻人总是觉得攒不下钱,虽然表面风光,每天出入高级CBD,可是几乎每个人都是月光族,这一类人被定义为"隐形贫困者",原因是什么呢?根据小编的分析,现在人们对生活质量要求普遍提 ...

  6. python做单元测试_如何使用python做单元测试?

    很多编程小白不太理解单元测试,为什么要进行单元测试呢?很简单,主要是提高代码的正确,同时确保重构不出错.接下来我们一起学习怎么用python做单元测试吧. python内置了一个unittest,但是 ...

  7. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  8. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

  9. python 做网页_女生30岁以前,怎么早做打算

    庆哥 爱美水瓶座玩转广式煲汤养生干货总结癖有位网友说,她人生焦虑值达到巅峰是29岁那一年.即将步入30岁大军,已婚未育,工作7年,工资和入职时差不了多少,想跳槽又尴尬.在职场里,30岁,是不是女人的大 ...

  10. python怎么做项目_听说你没有python项目可做,我教你个方法

    原标题:听说你没有python项目可做,我教你个方法 学习了一段时间的Python,最近出现了"饥荒",感觉需要多看些代码,多学习学习别人做些什么,但却不知道做点什么来进行练习. ...

最新文章

  1. 3月编程语言排行已出!Java第二,那霸主是谁?
  2. Docker安装Hadoop
  3. (chap8 确认访问用户身份的认证) SSL客户端认证
  4. 央行降准,房价可能又要骚动了!
  5. Stacktraces告诉了事实。 但事实并非如此。
  6. KEIL, MDK 关于C99结构体变量初始化
  7. docker gpu 创建 训练环境_巧用 Docker 快速部署 GPU 环境
  8. 强化学习研究什么?用白话讲就是……
  9. 设计模式之GOF23观察者模式
  10. java jsp交友系统_Jsp+Servlet+Javabean网络交友程序设计+源代码
  11. HFSS阵列天线设计与仿真2
  12. 实现华为多屏协同--非华为电脑下载12.0.1.20华为电脑管家
  13. 惯性导航算法(二)-欧拉角法(下)+方向余弦矩阵(上)
  14. mall-accounts.json ES测试数据
  15. 1017 怪盗基德的滑翔翼(最长上升子序列扩展)
  16. Java实现八皇后问题
  17. idea使用帮助文档1
  18. A granted authority textual representation is required
  19. Kubernetes存储Longhorn
  20. 私域运营第五讲:实体餐饮店如何通过搭建私域流量实现营收增长

热门文章

  1. 批量word删除页眉页脚——VBS脚本,在office宏中运行即可
  2. Java位运算符:Java移位运算符、复合位赋值运算符及位逻辑运算符
  3. 让“王码五笔输入法”成为你的专用输入法!
  4. 提高计算机访问硬盘的速度慢,嫌电脑速度不够快?教你5招提升硬盘性能!
  5. 回到顶部的几种实现方法
  6. 开源的魔兽世界参考架构——mangos--网络游戏引擎BigWorld 服务器介绍
  7. 建议阅读的投资经典55本
  8. 最新阿尼亚二次元动漫鼠标指针安装教程+素材打包
  9. 小米max刷鸿蒙,小米Max刷recovery教程 小米Max第三方recovery下载
  10. 计算机网络课设中:cisco关于nat的静态配置