Skip to main content

键盘弹钢琴,keyboard to play piano

Project description

kmusicz

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

键盘按键弹钢琴的小程序
(
注:
    另外写了个kmusicz_res库,里面包含了sf2格式音频文件和windows下的64位的fluidsynth库,下载后不用再自己下载音频文件和在windows装fluidsynth,kmusicz_res本质上是引用的本项目的代码
    安装:
        pip install kmusicz_res
        安装kmusicz_res会自动安装本项目以及本项目依赖的python库
    运行:
        python -m kmusicz_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 kmusicz
    安装本库的时候自动安装,其中linux下的pyaudio可能会报错,需要先手动安装portaudio

程序运行:
    python -m kmusicz.run 参数
    参数如下:
        [-s/--sfile=]sf2文件
        [-f/--fp=]额外配置文件(没啥用)
        [-t/--default=]主要配置文件(默认预制的play.js)
        [-l/--libpath=]windows下fluidsynth库的bin的路径
        [-h/--help]
    例:
        python -m kmusicz.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

kmusicz-0.1.6.tar.gz (7.3 kB view details)

Uploaded Source

File details

Details for the file kmusicz-0.1.6.tar.gz.

File metadata

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

File hashes

Hashes for kmusicz-0.1.6.tar.gz
Algorithm Hash digest
SHA256 56f8826ee69ea3dfd03d5bcd90b8f9f32306776c3e5ab7507e69a19091bdd1e9
MD5 a9eb37b8e6dcd2e00771c1a8b8e68715
BLAKE2b-256 edd90ba3acb30c0d5b91784e8f6f4e1770849ac825485f1a00fd2230bb678da3

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