{ "info": { "author": "Egor Dmitriev", "author_email": "egordmitriev@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Multimedia :: Sound/Audio :: Analysis" ], "description": "# LibTempo\nC++ / Python library for signal processing and tempo information extraction.\n\n## CLI\n**MP3, FLAC and WAV audio formats are supported.**\n### [Downloads](https://github.com/EgorDm/libtempo/releases)\n### Examples\n* [Megadeth - Five Magics](https://github.com/EgorDm/libtempo/raw/master/docs/assets/magics.png)\n* [Led Zeppelin - Stairway To Heaven](https://github.com/EgorDm/libtempo/raw/master/docs/assets/stairway.png)\n* [DragonForce - Valley of the Damned](https://github.com/EgorDm/libtempo/raw/master/docs/assets/valley_of.png)\n\n### Usage\n```bash\nlibtempo [audio] {OPTIONS}\n```\n```\n OPTIONS:\n\n -h, --help Display the help menu\n Basic\n -t[preferred_bpm],\n --preferred_bpm=[preferred_bpm] (Default: 130) BPM around which the\n real bpm will be chosen.\n --bpm_rounding_precision=[bpm_rounding_precision]\n (Default: 0.500000) Precision of the\n BPM before correction..\n -s[smooth_length],\n --smooth_length=[smooth_length] (Default: 20.000000) Length in seconds\n over which the tempogram will be\n stabilized to extract a steady tempo.\n -l[min_section_length],\n --min_section_length=[min_section_length]\n (Default: 10.000000) Minimum length\n for a tempo section in seconds.\n --max_section_length=[max_section_length]\n (Default: 40.000000) Maximum section\n length in seconds after which section\n is split in half.\n Advanced\n --bpm_window=[bpm_window] BPM range which to check for tempo\n peaks.\n -m[tempo_multiples...],\n --tempo_multiples=[tempo_multiples...]\n Tempo multiples to consider when\n searching for correct offset\n --ref_tempo=[ref_tempo] (Default: 60) Reference tempo defining\n the partition of BPM into tempo\n octaves for calculating cyclic\n tempogram.\n --tempo_window=[tempo_window] (Default: 8) Analysis window length in\n seconds for calculating tempogram.\n --octave_divider=[octave_divider] (Default: 120) Number of tempo classes\n used for representing a tempo octave.\n This parameter controls the\n dimensionality of cyclic tempogram.\n --triplet_weight=[triplet_weight] (Default: 3.000000) Weight of the\n triplet intensity which will be adeed\n to its base intensity.\n --bpm_doubt_window=[bpm_doubt_window]\n (Default: 2.000000) Window around\n candidate bpm which to search for a\n more fine and correct bpm.\n --bpm_doubt_step=[bpm_doubt_step] (Default: 0.100000) Steps which to\n take inside the doubt window to fine\n tune the bpm.\n --click_track_subdivision=[click_track_subdivision]\n (Default: 8) Click subdivision for the\n click track.\n Output Flags\n -c[generate_click_track],\n --generate_click_track=[generate_click_track]\n (Default: 1) Wether or not a click\n track should be generated\n -o, --osu Wether or not to generate tempo data\n in osu format.\n --viz Saves a html file with useful graphs.\n -d, --dump Dump generated tempograms and novelty\n curves into a file.\n audio Audio file to extract tempo of.\n \"--\" can be used to terminate flag options and force all following\n arguments to be treated as positional options\n```\n\n## Library\n### [Building](https://github.com/EgorDm/libtempo/wiki/Building)\n### [Documentation](https://github.com/EgorDm/libtempo/wiki/Documentation)\n\n## Flaws / TODO's\n* BPM calculated is the percieved bpm. There is also real bpm which may be twice as high. (I would love to hear any suggestions how this could be helped)\n* Pars where bpm is constantly changed are rounded away when making secions.\n* Sometimes offset might be shifted by a 1/4th or 1/8th note.\n\n## References\n* [Tempogram & novelty curve calculation](http://resources.mpi-inf.mpg.de/MIR/tempogramtoolbox/) [[1]](https://ieeexplore.ieee.org/document/5654580/) [[2]](http://resources.mpi-inf.mpg.de/MIR/tempogramtoolbox/2010_GroscheMuellerKurth_TempogramCyclic_ICASSP.pdf) [[3]](http://resources.mpi-inf.mpg.de/MIR/tempogramtoolbox/2009_GroscheMueller_PredominantLocalPeriodicy_WASPAA.pdf)\n* [Modified signal resampling code](https://github.com/terrygta/SignalResampler)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/EgorDm/libtempo", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "libtempo-py", "package_url": "https://pypi.org/project/libtempo-py/", "platform": "", "project_url": "https://pypi.org/project/libtempo-py/", "project_urls": { "Homepage": "https://github.com/EgorDm/libtempo" }, "release_url": "https://pypi.org/project/libtempo-py/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "C++ / Python library with signal processing and tempo estimation utilities.", "version": "1.0.0" }, "last_serial": 4366063, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "d9d2b84a02ad086488027672240d9c34", "sha256": "2588bda40813caf24fb82d153f6b0bb269ca137fd3b75257c5d20f8a5ae6919e" }, "downloads": -1, "filename": "libtempo_py-1.0.0-cp36-cp36m-win_amd64.whl", "has_sig": false, "md5_digest": "d9d2b84a02ad086488027672240d9c34", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 213944, "upload_time": "2018-10-11T22:02:35", "url": "https://files.pythonhosted.org/packages/56/e4/afb535043aaeae6d42812cc93d1fc82ab2c4f996cfab7a2c373959078ebb/libtempo_py-1.0.0-cp36-cp36m-win_amd64.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d9d2b84a02ad086488027672240d9c34", "sha256": "2588bda40813caf24fb82d153f6b0bb269ca137fd3b75257c5d20f8a5ae6919e" }, "downloads": -1, "filename": "libtempo_py-1.0.0-cp36-cp36m-win_amd64.whl", "has_sig": false, "md5_digest": "d9d2b84a02ad086488027672240d9c34", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 213944, "upload_time": "2018-10-11T22:02:35", "url": "https://files.pythonhosted.org/packages/56/e4/afb535043aaeae6d42812cc93d1fc82ab2c4f996cfab7a2c373959078ebb/libtempo_py-1.0.0-cp36-cp36m-win_amd64.whl" } ] }