{ "info": { "author": "Vipul Sharma", "author_email": "vipul.sharma20@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Tayuya\n\nA tool to generate guitar tabs from MIDI files\n\nLive demo: [midi.vipul.xyz](http://midi.vipul.xyz)\n\n# Installation\n\n`pip install tayuya`\n\n# Usage\n\n```python\nIn [1]: from tayuya import MIDIParser\n\nIn [2]: mid = MIDIParser('sample.mid', track=0)\n\nIn [3]: mid.render_tabs()\nOut[3]:\n```\n```\nE-------------14--------------------------16--14----------14--------------\nA-------------------------------------------------17--17------16--17--16--\nD-16------16------16--16--16--16------16----------------------------------\nG-----18--------------------------18--------------------------------------\nB-------------------------------------------------------------------------\nE-------------------------------------------------------------------------\n```\n\n***Don't forget to set the `track` argument with the appropriate track number desired.***\n\n### Get track numbers of all the tracks in the MIDI file\n\n```python\n\nIn [1]: from tayuya import MIDIParser\n\nIn [2]: mid = MIDIParser('sample.mid', track=0)\n\nIn [3]: mid.get_tracks()\nOut[3]:\n{0: 'Lead Guitar',\n 1: 'Rhthym Guitar Dist',\n 2: 'Acoustic Guitar',\n 3: 'Rhthym Guitar Clean & Dist',\n 4: 'Lead Guitar Fill',\n 5: 'Guitar Harmonics',\n```\n\n# Advanced\n\n## MIDI\n\n### Get all notes played in the MIDI track\n\n```python\nIn [1]: mid = MIDIParser('sample.mid', track=0)\n\nIn [2]: mid.notes_played()\nOut[2]:\n[{'note': 'C#5', 'time': 18},\n {'note': 'C#5', 'time': 30},\n {'note': 'B4', 'time': 26},\n {'note': 'C5', 'time': 0},\n {'note': 'C5', 'time': 28},\n {'note': 'C#5', 'time': 28},\n {'note': 'C#5', 'time': 30}]\n```\n\n### Get key of the track\n\n```python\nIn [1]: mid = MIDIParser('sample.mid', track=0)\n\nIn [2]: mid.get_key()\n```\n\n## Tabs\n\n### Get all notes to play\n\nYou can use this example to generate all the notes to play with their string\nand fret positions.\n\n```python\nIn [1]: mid = MIDIParser('sample.mid', track=0)\n\nIn [2]: tabs = Tabs(notes=mid.notes_played(), key=mid.get_key())\n\nIn [3]: tabs.generate_notes(tabs.find_start())\nOut[3]:\n[('C#3', 5, 4),\n ('G#3', 4, 6),\n ('C#4', 3, 6),\n ('F4', 2, 6),\n ('B2', 6, 7),\n ('D#3', 5, 6),\n ('F#3', 4, 4),\n ('B3', 3, 4),\n ('D#4', 3, 8),\n ('F#2', 6, 2)]\n```\n\nEach tuple here is `(note, string, fret)`\n\n# How it works?\n\nHere's a brief of how it works:\n\n* Fetch a track from the MIDI file\n* Find all the notes played and convert from MIDI code values to music notes\n* Find a scale for the set of notes extracted\n* Find the best position to play the extracted notes using the scale detected\n\n# Limitations\n\n* Works only for guitar solos. Implementation for determination and rendering of\n chords is not done yet.\n* Works only for standard tuning (E A D G B E)\n\n# TODO\n\n- [ ] Render tabs using Lilypond or some GUI alternative\n- [ ] Implement logic to determine and render chords\n- [ ] Better the scale detection implementation\n- [ ] Transposing\n- [ ] Add way to handle non standard tuning\n- [ ] More stringed instruments\n\n# LICENSE\n\n[MIT](https://github.com/vipul-sharma20/tayuya/blob/master/)\n\n# Credits\n\nTayuya is made possible by following open source softwares:\n\n* [Mido](https://github.com/mido/mido)\n* [Music21](https://github.com/cuthbertLab/music21)\n\n# The name\n\n[Tayuya](https://naruto.fandom.com/wiki/Tayuya) (\u305f\u3086\u3084)\n\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/vipul-sharma20/tayuya", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "tayuya", "package_url": "https://pypi.org/project/tayuya/", "platform": "", "project_url": "https://pypi.org/project/tayuya/", "project_urls": { "Homepage": "https://github.com/vipul-sharma20/tayuya" }, "release_url": "https://pypi.org/project/tayuya/0.0.4/", "requires_dist": [ "mido", "music21" ], "requires_python": ">=3.6", "summary": "MIDI to guitar tabs generator", "version": "0.0.4" }, "last_serial": 5829117, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8f96d7cf2290fe043957582e424807d7", "sha256": "c2f117c0f46bc1448a50dc4066ef7ed016bfed0a072bd4c7f755fc29bdbab4da" }, "downloads": -1, "filename": "tayuya-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8f96d7cf2290fe043957582e424807d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7956, "upload_time": "2019-09-07T16:46:58", "url": "https://files.pythonhosted.org/packages/c2/16/db726d673716bd1b7aa0e460e9ad01e0c850ee85e6b79a3af80f8b12d1cd/tayuya-0.0.1-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "2be60aab76582838278c0a478518a6d6", "sha256": "e25d98a97586b29404f286838756bd3b74d0ed709b2987619fc4692e19ef0f73" }, "downloads": -1, "filename": "tayuya-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2be60aab76582838278c0a478518a6d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7648, "upload_time": "2019-09-08T07:37:15", "url": "https://files.pythonhosted.org/packages/7c/90/0c604353b85f699b4deef508e13d93af7b340e5f8e0cfd37f95d4d8b2446/tayuya-0.0.2-py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "547ed1b70995d327023948ee54b5ab07", "sha256": "e66bcddf1e28596b57f5e9d495e640ad35802a98df75d730deb29e462ff34009" }, "downloads": -1, "filename": "tayuya-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "547ed1b70995d327023948ee54b5ab07", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9981, "upload_time": "2019-09-08T22:26:11", "url": "https://files.pythonhosted.org/packages/05/bf/057e45b15ebde1b9ddd869e844542facbd09b472b129233d2f7e0f3ac97d/tayuya-0.0.3-py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "4df109cf49cd8a04f763c6a10a6f99ad", "sha256": "60b1c51287a4b28a3eaa99fe628ed2c037db43432a3de72ff5b107c666b9f80f" }, "downloads": -1, "filename": "tayuya-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4df109cf49cd8a04f763c6a10a6f99ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 10003, "upload_time": "2019-09-14T11:50:18", "url": "https://files.pythonhosted.org/packages/f6/4d/eb5ca3df6eacb023025e9bc739f9e2a44beebb4289cd2b1eff3d98894e50/tayuya-0.0.4-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4df109cf49cd8a04f763c6a10a6f99ad", "sha256": "60b1c51287a4b28a3eaa99fe628ed2c037db43432a3de72ff5b107c666b9f80f" }, "downloads": -1, "filename": "tayuya-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4df109cf49cd8a04f763c6a10a6f99ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 10003, "upload_time": "2019-09-14T11:50:18", "url": "https://files.pythonhosted.org/packages/f6/4d/eb5ca3df6eacb023025e9bc739f9e2a44beebb4289cd2b1eff3d98894e50/tayuya-0.0.4-py3-none-any.whl" } ] }