{ "info": { "author": "Bohumir Zamecnik", "author_email": "bohumir.zamecnik@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Topic :: Multimedia :: Sound/Audio :: Analysis" ], "description": "midi2audio\n==========\n\n|PyPI version| |Supported Python versions| |License|\n\nEasily synthesize MIDI to audio or just play it.\n\nIt provides a Python and command-line interface to the\n`FluidSynth `__ synthesizer to make it easy\nto use and suitable for scripting and batch processing. In contrast,\nmost MIDI processing software is GUI-based.\n\nWhy?\n----\n\nFirst, FluidSynth has a CLI which is not so straightforward to use. The\ngoal was to make it easy to use as possible by making some parameters\nimplicit.\n\n::\n\n fluidsynth -ni sound_font.sf2 input.mid -F output.wav -r 44100\n\nvs.\n\n::\n\n midiplay input.mid\n midi2audio input.mid output.wav\n\nSecond, we can have as easy interface scriptable in Python.\n\n::\n\n FluidSynth().midi_to_audio('input.mid', 'output.wav')\n\nWhat it is not?\n---------------\n\nNote that is it not a Python binding to all the FluidSynth commands. If\nneeded check out these packages instead:\n\n- `fluidsynth `__\n- `pyFluidSynth `__\n\nRequirements\n------------\n\n- Python 3\n- FluidSynth\n- some `sound\n font(s) `__\n\nYou need at least one sound font. Normally you'd install them manually\nor via a package manager. ``midi2audio`` looks for its default sound\nfont in ``~/.fluidsynth/default_sound_font.sf2``. It can be a symlink or\nan actual file.\n\nInstallation\n------------\n\npip\n~~~\n\nYou can install this package via pip.\n\n::\n\n pip install midi2audio\n\nOr for development (changes in code take effect without reinstalling):\n\n::\n\n git clone https://github.com/bzamecnik/midi2audio\n pip install -e midi2audio\n\nOS X\n~~~~\n\nI'd recommend adding the non-default libsndfile which supports output to\nFLAC and wide variety of audio formats. Otherwise only WAV, raw and a\nfew other will be supported.\n\nFor Mac OS X we provide a script\n`install\\_fluidsynth\\_with\\_soundfonts\\_osx.sh `__\nto automatically install FluidSynth with libsndfile and a basic sound\nfont (`Fluid R3\nGM `__) and\nsymlink it so that it's recognized as a default sound font for this\nmodule. Note it it install installed via pip as another entry point.\n\n::\n\n install_fluidsynth_with_soundfonts_osx.sh\n\nOr install it manually:\n\n::\n\n brew install fluidsynth --with-libsndfile\n mkdir -p ~/.fluidsynth\n ln -s /path/to/my/sound_font.sf2 ~/.fluidsynth/default_sound_font.sf2\n\nCheck the script how to install a few additional (nice but bigger) sound\nfonts which are not installed by default.\n\nOther OSs\n---------\n\nCheck you package manager and link your default sound font as descibed\nabove.\n\nUsage\n-----\n\nBasically you can either play a MIDI file or synthesize it to audio.\nFluidSynth allows non-realtime synthesis which is faster than the\nplayback.\n\nNote that the audio format is determined from the audio file extension.\nThe `libsoundfile `__ supports a\nlot of formats.\n\nPython\n~~~~~~\n\n::\n\n from midi2audio import FluidSynth\n\nPlay MIDI:\n\n::\n\n FluidSynth().play_midi('input.mid')\n\nSynthesize MIDI to audio:\n\n::\n\n # using the default sound font in 44100 Hz sample rate\n fs = FluidSynth()\n fs.midi_to_audio('input.mid', 'output.wav')\n\n # FLAC, a lossless codec, is supported as well (and recommended to be used)\n fs.midi_to_audio('input.mid', 'output.flac')\n\nChange the defaults:\n\n::\n\n # use a custom sound font\n FluidSynth('sound_font.sf2')\n\n # use a custom sample rate\n FluidSynth(sample_rate=22050)\n\nCommand line interface\n~~~~~~~~~~~~~~~~~~~~~~\n\nA shell sugars ``midi2audio`` and ``midiplay`` are provided instead of\nmore verbose ``python -m midi2audio``.\n\n::\n\n # play MIDI\n $ midiplay input.mid\n\n # synthesize MIDI to audio\n $ midi2audio input.mid output.wav\n\n # also to FLAC\n $ midi2audio input.mid output.flac\n\n # custom sound font\n $ midi2audio -s sound_font.sf2 input.mid output.flac\n\n # custom sample rate\n $ midi2audio -r 22050 input.mid output.flac\n\nAbout\n-----\n\n- Author: Bohum\u00edr Z\u00e1me\u010dn\u00edk ([@bzamecnik](http://twitter.com/bzamecnik))\n- License: MIT, see the `LICENSE `__ file\n\nShoulders of giants\n~~~~~~~~~~~~~~~~~~~\n\nThanks to the authors of FluidSynth for a nice command-line MIDI\nsynthesizer!\n\nSupport the project\n~~~~~~~~~~~~~~~~~~~\n\nNeed some consulting or coding work regarding audio processing, machine\nlearning or big data? Drop me a message via\n`email `__\nor `LinkedIn `__. Or just\nsay hello :).\n\n.. |PyPI version| image:: https://img.shields.io/pypi/v/midi2audio.svg\n :target: https://pypi.python.org/pypi/midi2audio\n.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/midi2audio.svg\n.. |License| image:: https://img.shields.io/pypi/l/midi2audio.svg", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bzamecnik/midi2audio", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "midi2audio", "package_url": "https://pypi.org/project/midi2audio/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/midi2audio/", "project_urls": { "Homepage": "https://github.com/bzamecnik/midi2audio" }, "release_url": "https://pypi.org/project/midi2audio/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "Easy to use MIDI to audio or playback via FluidSynth", "version": "0.1.1" }, "last_serial": 2472089, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "02aefc04f3c33a7dd0e0590e24755c69", "sha256": "dff5e678665ba698b2a268a34aff3bbfb4205fb5bdfa539f46e1e170f3384ea3" }, "downloads": -1, "filename": "midi2audio-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02aefc04f3c33a7dd0e0590e24755c69", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7660, "upload_time": "2016-11-20T19:39:50", "url": "https://files.pythonhosted.org/packages/ad/27/a194009b75d4dbb9c9fb0b27f87f6fbf02d90bc445165a24a2ccceecd42b/midi2audio-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1c76aec5ea87287a1eb2442ac1a5f90", "sha256": "8bab0b0c7e1e3f3277a7e6ec24dc700b95646d7a5f31590cfcb1f1790c85aa30" }, "downloads": -1, "filename": "midi2audio-0.1.tar.gz", "has_sig": false, "md5_digest": "a1c76aec5ea87287a1eb2442ac1a5f90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4185, "upload_time": "2016-11-20T19:39:53", "url": "https://files.pythonhosted.org/packages/d5/ef/90234bcdda8e937383af1a80252d39eb2d358feb7441b5cc6afd381d0901/midi2audio-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "506ba71f2bdaaa354652a926f58f0bf1", "sha256": "762a2df3806d373f7f89962f22ecc6d3cb49f82ae4212fab560a479cbb6c9c08" }, "downloads": -1, "filename": "midi2audio-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "506ba71f2bdaaa354652a926f58f0bf1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8742, "upload_time": "2016-11-20T19:48:31", "url": "https://files.pythonhosted.org/packages/55/75/23618a687fc2391192c9d9ec8906a198a3f318f146388d3b96f779826d43/midi2audio-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "768debe14d4726955243361f1ef6fcef", "sha256": "b26590388e1f62753096b075b877e2529ff62faad00c07811ac8111a73e4a78a" }, "downloads": -1, "filename": "midi2audio-0.1.1.tar.gz", "has_sig": false, "md5_digest": "768debe14d4726955243361f1ef6fcef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4978, "upload_time": "2016-11-20T19:48:34", "url": "https://files.pythonhosted.org/packages/a8/1c/b96b5d797cb622753fef9dd5ac2116ee9f3585727d60212f892fb4bd175e/midi2audio-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "506ba71f2bdaaa354652a926f58f0bf1", "sha256": "762a2df3806d373f7f89962f22ecc6d3cb49f82ae4212fab560a479cbb6c9c08" }, "downloads": -1, "filename": "midi2audio-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "506ba71f2bdaaa354652a926f58f0bf1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8742, "upload_time": "2016-11-20T19:48:31", "url": "https://files.pythonhosted.org/packages/55/75/23618a687fc2391192c9d9ec8906a198a3f318f146388d3b96f779826d43/midi2audio-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "768debe14d4726955243361f1ef6fcef", "sha256": "b26590388e1f62753096b075b877e2529ff62faad00c07811ac8111a73e4a78a" }, "downloads": -1, "filename": "midi2audio-0.1.1.tar.gz", "has_sig": false, "md5_digest": "768debe14d4726955243361f1ef6fcef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4978, "upload_time": "2016-11-20T19:48:34", "url": "https://files.pythonhosted.org/packages/a8/1c/b96b5d797cb622753fef9dd5ac2116ee9f3585727d60212f892fb4bd175e/midi2audio-0.1.1.tar.gz" } ] }