Skip to main content

键盘弹钢琴,keyboard to play piano

Project description

key_musicz

声明: 禁止将本项目代码用于ai训练 declaration: Codes of this project are not allowed to be used for AI training or any other form of machine learning processes.

键盘按键弹钢琴的小程序
(
注:
    另外写了个key_musicz_res库,里面包含了sf2格式音频文件和windows下的64位的fluidsynth库,下载后不用再自己下载音频文件和在windows装fluidsynth,key_musicz_res本质上是引用的本项目的代码
    安装:
        pip install key_musicz_res
        安装key_musicz_res会自动安装本项目以及本项目依赖的python库
    运行:
        python -m key_musicz_res [可选参数]
    可选参数和本项目一样,不过加了默认值,可以不用写
)
需要以下C库或资源文件:
    fluidsynth: 读sf2音频文件(里面是各种乐器的按键音),根据指定按键生成音频数据
    FluidR3_GM.sf2: 免费的sf2音频文件,当然你也可以用其他的
    portaudio: windows下会随着pyaudio自动安装,linux需要自己安装
需要以下python库(会自动安装):
    pyfluidsynth: 在python里调用fluidsynth库的封装代码
    pyaudio: 音频数据传入声卡发音,实际调用的portaudio库
    pynput: 监听键盘按键按下和放开
    buildz: 配置文件读取

安装方式:
fluidsynth:
    ubuntu:
        apt install fluidsynth
    windows:
        https://github.com/FluidSynth/fluidsynth/releases
        windows下是压缩包,解压后要把解压路径/bin加到PATH中,注意github时不时会连不上,可以试试镜像加速之类的

FluidR3_GM.sf2音频文件下载:
    有个国内地址,是csdn的gitcode.com里的,要登录但不收费:
        https://gitcode.com/open-source-toolkit/1d145/?utm_source=tools_gitcode&index=top&type=card&
    文件大小一百多MB

pyfluidsynth:
pyaudio:
pynput:
buildz:
    pip install key_musicz
    安装本库的时候自动安装,其中linux下的pyaudio可能会报错,需要先手动安装portaudio

程序运行:
    python -m key_musicz.run 参数
    参数如下:
        [-s/--sfile=]sf2文件
        [-f/--fp=]额外配置文件(没啥用)
        [-t/--default=]主要配置文件(默认预制的play.js)
        [-l/--libpath=]windows下fluidsynth库的bin的路径
        [-h/--help]
    例:
        python -m key_musicz.run -s./FluidR3Mono_GM.sf2 -l./lib -tplayrb.js
    默认配置文件(key_music/conf目录下):
        通用配置:
            按住shift+主键盘的数字键盘调整基调,~退出,空格切音
        play.js:
            从左到右从下到上音调依次升高
            音调从低到高顺序: 
                    zxcvbnm,./`alt_l``alt_r` (该组受基调影响:shift+1,3,5,7,9)
                    asdfghjkl;'`enter` (该组受基调影响:shift+1,3,5,7,9)
                    qwertyuiop[] (该组受基调影响:shift+2,4,6,8,0)
                    1234567890-= (该组受基调影响:shift+2,4,6,8,0)
        playblk.js:
            主要2*6作为一组,组内大体从左到右,上到下升高音调
            音调从低到高顺序: 
                12345qwert6y (该组受基调影响:shift+1,3,5,7,9)
                asdfgzxcvb`alt_l`h (该组受基调影响:shift+1,3,5,7,9)
                jkl;'nm,./`alt_r``enter` (该组受基调影响:shift+2,4,6,8,0)
                7890-uiop[=] (该组受基调影响:shift+2,4,6,8,0)
        playrb.js
            主要2*6作为一组,组内大体从左到右,下到上升高音调
            音调从低到高顺序: : 
                qwert12345y6 (该组受基调影响:shift+1,3,5,7,9)
                zxcvbasdfg`alt_l`h (该组受基调影响:shift+1,3,5,7,9)
                nm,./jkl;'`alt_r``enter` (该组受基调影响:shift+2,4,6,8,0)
                uiop[7890-]= (该组受基调影响:shift+2,4,6,8,0)
        playbb.js
            主要2*6作为一组,组内大体从左到右升高音调,左边从上到下升高,右边从下到上升高
            音调从低到高顺序: : 
                12345qwert6y (该组受基调影响:shift+1,3,5,7,9)
                asdfgzxcvb`alt_l`h (该组受基调影响:shift+1,3,5,7,9)
                nm,./jkl;'`alt_r``enter` (该组受基调影响:shift+2,4,6,8,0)
                uiop[7890-]= (该组受基调影响:shift+2,4,6,8,0)

        

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

key_musicz-0.3.4.tar.gz (44.3 kB view details)

Uploaded Source

File details

Details for the file key_musicz-0.3.4.tar.gz.

File metadata

  • Download URL: key_musicz-0.3.4.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for key_musicz-0.3.4.tar.gz
Algorithm Hash digest
SHA256 2ed4694cfb6b9934d0988145492069e0089ab3e68a1b9ec947efcbd4523a9858
MD5 c28c0afadcf175779bc4527eedfdc735
BLAKE2b-256 661e356d6effce3752ad8bb1609be710d838216bdc4fc4348074214b39acfa03

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page