{ "info": { "author": "Paul Harrison", "author_email": "pfh@logarithmic.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)" ], "description": "\nDemakein\n======== \n\nhttp://www.logarithmic.net/pfh/design\n\nPaul Harrison - pfh@logarithmic.net\n\n\nDemakein is a set of Python tools for designing and making woodwind \ninstruments.\n\nThis generally consists of two stages:\n\n- The \"design\" stage is a numerical optimization that chooses the bore \n shape and the finger hole placement, size, and depth necessary for\n the instrument to produce the correct notes for a given set of\n fingerings.\n\n- The \"make\" stage takes a design and turns it into a 3D object, then \n then cuts the object into pieces that can be CNC-milled or 3D-printed.\n\nDemakein can either be used via the command \"demakein\" or as a\nlibrary in Python. Demakein has been designed to be extensible,\nand I hope you will find it relatively easy to write code to\ncreate your own novel instruments. You can either create subclasses\nof existing classes in order to tweak a few parameters, or create \nwholly new classes using existing examples as a template.\n\n\nRequirements\n============\n\nPython 2\n\n- Linux:\n Use your package manager to install Python 2 and pip.\n\n- OS X\n Reported to be possible, however I can't give exact instructions.\n\n- Windows:\n Run Linux in a virtual machine such as VirtualBox.\n (confirmed to work)\n \nThe \"design\" tools require nesoni. They should work on all platforms that\nPython runs on.\n\n- nesoni\n\n sudo pip install --upgrade nesoni\n\nThe \"make\" tools additionally require CGAL and associated paraphenalia.\nI have only tested this on Linux, but I'm told it's possible on OS X as well.\n\n- g++\n- cmake\n- libcffi\n- CGAL\n\n sudo apt-get install g++ cmake libffi-dev libcgal-dev\n\n- cffi\n\n sudo pip install --upgrade cffi\n\n\nInstallation, easiest method\n============================\n\nOn a Debian or Ubuntu Linux system:\n\n sudo apt-get install g++ cmake libffi-dev libcgal-dev python-pip geeqie\n\n sudo pip install --upgrade demakein\n\n(\"--upgrade\" ensures the latest version is installed)\n\nYou can then run program by typing:\n\n demakein\nor:\n python -m demakein\n\n\n\nPyPy installation\n=================\n\nUsing PyPy will let Demakein run considerably faster.\n\nThe easiest way to do this presently is to create a\n\"virtualenv\".\n\n sudo apt-get install g++ cmake libffi-dev libcgal-dev python-pip geeqie\n sudo apt-get install pypy python-virtualenv\n\n virtualenv -p pypy myenv\n\n myenv/bin/pip install --upgrade demakein\n\nYou can then run demakein with:\n\n myenv/bin/demakein\nor:\n myenv/bin/python -m demakein\n \n\nInstallation from source\n========================\n\nIf using the \"make\" part of Demakein, you will need to install:\n\n- g++\n- cmake\n- CGAL\n- libffi\n\nand from the Python Package Index, install:\n\n- nesoni\n- cffi\n\nDownload and untar tarball and in the untarred directory:\n\n sudo python setup.py install\n\n\nExamples\n========\n\nCreate a small flute:\n\n demakein design-folk-flute: myflute --transpose 12\n \n demakein make-flute: myflute\n\nFiles are created in a directory called myflute.\n\nWe've just made STL files for 3D printing. How about if we want \nto CNC-mill the flute?\n\n demakein make-flute: myflute --mill yes --open yes --prefix milling\n\n\nIf you want to create your own custom instruments, you can create\nsubclasses of the instruments provided. Some examples of how to do\nthis can be found in the \"examples\" directory. You can use these\nas a starting point.\n\n\nInstrument design tools are subclasses of demakein.design.Instrument_designer.\nThese tools define a set of class attributes that constrain the instrument design.\n\nclosed_top \n- bool\n Is the top of the instrument closed? \n Reeds and brass-style mouthpieces are effectively closed.\n A ney has an open end.\n A flute might be approximated as an open end, or the embouchure\n hole treated as a hole and the end set to closed.\n See examples/simple_reedpipe.py for an example with closed_top=True.\n See examples/simple_flute.py for an example with closed_top=False.\n\ninital_length\n- float\n Length of the instrument at the start of the optimization.\n Automatically adjusted based on --transpose parameter.\n Just provide a roughly reasonable value, \n eg using demakein.design.wavelength function\n\nn_holes\n- int\n Number of finger holes.\n \nfingerings\n- list of tuples (note, [ 0/1,... ])\n Desired fingering patterns to produce each desired note.\n is automatically adjusted by --transpose parameter.\n The list starts from the bottom of the instrument.\n Not all fingering schemes are physically possible,\n this may require some experimentation.\n\nmax_hole_diameters\n- list of n_holes floats\n Maximum allowed finger hole diameters.\n\nmin_hole_diameters\n- list of n_holes floats\n Minimum allowed finger hole diameters.\n\nmin_hole_spacing\n- list of n_holes-1 floats\n Minimum space between finger holes in mm.\n\ntop_clearance_fraction\nbottom_clearance_fraction\n- Minimum distance of top/bottom hole from top/bottom of instrument,\n as a fraction of the instrument length.\n\nbalance\n- list of n_holes-2 floats or Nones\n Values should be in the range zero to one.\n Smaller values force the spacing between successive holes to be more similar.\n\nhole_angles\n- list of n_holes floats\n Vertical angle of each hole.\n Angled holes may allow more comfortable hole spacing.\n\ninner_diameters\n- list of floats [advanced: or tuples (low,high)]\n The first element is the bore diameter at the base of the instrument.\n The last element is the bore diameter at the top of the instrument.\n The bore is piecewise linear,\n intervening elements are bore diameters boundaries between pieces (kinks).\n Exact placement is subject to numerical optimization.\n \n Advanced: \n Instead of a single diameter, you can give a tuple (low,high)\n to create a step in the diameter of the bore.\n See the examples/stepped_shawm.py for an example of this.\n \ninitial_inner_fractions\n- list of len(inner_diameters)-2 floats\n Initial positions of kinks in the bore.\n\nmin_inner_fraction_sep\n- list of len(inner_diameters)-1 floats\n Minimum size of each linear segment of the bore,\n as a fraction of the overall length.\n\nouter_diameters\ninitial_outer_fractions\nmin_outer_fraction_sep\n- As for inner_diameters, \n but defining the shape of the outside of the instrument\n (hence the depth of each finger hole).\n\nouter_add\n- bool, default False\n Optionally the outside diameters of the instrument can be defined\n as being in addition to the bore diameters rather than\n independent of them.\n See examples/simple_shawm.py for an example of this.\n\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.logarithmic.net/pfh/design", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "demakein", "package_url": "https://pypi.org/project/demakein/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/demakein/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.logarithmic.net/pfh/design" }, "release_url": "https://pypi.org/project/demakein/0.16/", "requires_dist": null, "requires_python": null, "summary": "Design woodwind instruments and make them with a 3D printer or CNC mill.", "version": "0.16" }, "last_serial": 1015537, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d3edcc45aafbf7bba8ed8755f0637f82", "sha256": "f1674504e0865c6affe23f7dabf185281a185f50e31989d0064f2bbfa2803638" }, "downloads": -1, "filename": "demakein-0.1.tar.gz", "has_sig": false, "md5_digest": "d3edcc45aafbf7bba8ed8755f0637f82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65070, "upload_time": "2012-09-28T05:17:39", "url": "https://files.pythonhosted.org/packages/e9/7d/85c15b007416b07f88c84a53fa88f6a78566ea2ddf71618f0e366cb9116b/demakein-0.1.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "09d14b4b4cdaf4bd1ac62666c46493de", "sha256": "9d800904b2bb699bebf8f3ba3354b2e04bda6e9727531174b021bdd165d4ba10" }, "downloads": -1, "filename": "demakein-0.10.tar.gz", "has_sig": false, "md5_digest": "09d14b4b4cdaf4bd1ac62666c46493de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 230750, "upload_time": "2013-05-26T05:56:43", "url": "https://files.pythonhosted.org/packages/3c/21/3454030f249b1ada20da43d5021607a9e1e83216d4f9f650ab6cb9a071e4/demakein-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "4b04ccb0c140c3eed810bc1c99349ead", "sha256": "b9c770bd65b6b94b0734a410baf33b7f31adb9897036f2f2b532404b18905b6c" }, "downloads": -1, "filename": "demakein-0.11.tar.gz", "has_sig": false, "md5_digest": "4b04ccb0c140c3eed810bc1c99349ead", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 269231, "upload_time": "2013-10-08T10:05:03", "url": "https://files.pythonhosted.org/packages/ed/31/981661049e30ec650ab727c23cc410f50a3d5eacce096675e4145aed44ef/demakein-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "6b168819c57e42ed9d937e5cc9c46753", "sha256": "2afb8cc7300fef663f5550cad67caf539b2357bb56ffb8a4facf39d3bcf28430" }, "downloads": -1, "filename": "demakein-0.12.tar.gz", "has_sig": false, "md5_digest": "6b168819c57e42ed9d937e5cc9c46753", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 271269, "upload_time": "2013-11-09T01:36:12", "url": "https://files.pythonhosted.org/packages/c3/e5/722d29b11eb8958a3b6e7f8de85d656486eec59e6d7aa2f508c66b76e547/demakein-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "4221b086c58b52608c8e7f6ab8280139", "sha256": "a8648f99ab1131a9d71b7066e20573e6fdf188b23a59580e56397c2e63e791ca" }, "downloads": -1, "filename": "demakein-0.13.tar.gz", "has_sig": false, "md5_digest": "4221b086c58b52608c8e7f6ab8280139", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 271546, "upload_time": "2013-12-05T02:08:14", "url": "https://files.pythonhosted.org/packages/98/c0/926646fb2b42a86dc0895639722190d1b53453b730d13ca7b005d247e12b/demakein-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "9daf22ffedae083a8a42a156e4680efa", "sha256": "c45619bf8336c610b76cf5829147b31cf8a424393a81ecfe6959c296c84c3bd3" }, "downloads": -1, "filename": "demakein-0.14.tar.gz", "has_sig": false, "md5_digest": "9daf22ffedae083a8a42a156e4680efa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 274386, "upload_time": "2013-12-31T06:36:10", "url": "https://files.pythonhosted.org/packages/20/9d/52f4bee9ff2add74dd62f1d56b9c21acf5d7de4fa303ee8cf334b6193dfc/demakein-0.14.tar.gz" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "99d01d5e3a94d12718dfa96e09dea009", "sha256": "cfdcc0f0e28902d7db5baf771f9bb2ec9299dace8b64e1cddecb81d812fdfae8" }, "downloads": -1, "filename": "demakein-0.15.tar.gz", "has_sig": false, "md5_digest": "99d01d5e3a94d12718dfa96e09dea009", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297173, "upload_time": "2014-02-13T01:53:45", "url": "https://files.pythonhosted.org/packages/3f/2c/82c81e04c249c70815183e30dabaa57d90c08b77f69eefe5abef2dc50596/demakein-0.15.tar.gz" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "6b71aa366396cfe7e4e6e41b98e6a42e", "sha256": "eab0e886f17498214937394e3ad032984a81a800c49a503bcc8e7a9263f552dd" }, "downloads": -1, "filename": "demakein-0.16.tar.gz", "has_sig": false, "md5_digest": "6b71aa366396cfe7e4e6e41b98e6a42e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 298336, "upload_time": "2014-03-01T05:04:23", "url": "https://files.pythonhosted.org/packages/c5/aa/36b711d4b41995780e7b2c35fd76d74234a8518cb44835c9127b1168f636/demakein-0.16.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "e0cbef0e1d7e9bc08b0eac0420d18424", "sha256": "e19814b0bc32a7d6a7aaacdb89ed7eb591a14e7efd6b3d3ab9d134f1d3198ce0" }, "downloads": -1, "filename": "demakein-0.2.tar.gz", "has_sig": false, "md5_digest": "e0cbef0e1d7e9bc08b0eac0420d18424", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 267254, "upload_time": "2012-10-28T20:27:18", "url": "https://files.pythonhosted.org/packages/b7/9b/5a2f087613668fd3fc4cc935ec576943a7db9c252a5bd9838391bcab7df3/demakein-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "e6939464dcd4ed53b7f943b95b86a475", "sha256": "9176658c26a2376ab54b4f70c4913fe4a6615294cd4d0ca041430d60a9091f0c" }, "downloads": -1, "filename": "demakein-0.3.tar.gz", "has_sig": false, "md5_digest": "e6939464dcd4ed53b7f943b95b86a475", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 277684, "upload_time": "2012-12-22T21:51:15", "url": "https://files.pythonhosted.org/packages/29/4c/0d66c06d0b1a36186395a2fe930e8ed8d64a1f97fcd670252f317473c1c5/demakein-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "67854c1b416e2449ff69a3c9666001b5", "sha256": "470bd6ac657910bdf6c56be25fd83192b9aa9717ecb5781df298e349c2aa5688" }, "downloads": -1, "filename": "demakein-0.4.tar.gz", "has_sig": false, "md5_digest": "67854c1b416e2449ff69a3c9666001b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 275722, "upload_time": "2012-12-26T01:32:26", "url": "https://files.pythonhosted.org/packages/c2/99/f4bf3daa7e16e6f0c9324ce699dd911b5a7ffd48748563c68cd7c857f5ac/demakein-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "d704a5c7c6d810a0540e995d017f4b21", "sha256": "fa1fe307dd3278e201758834269563cc8fee82cb67756b540079e0fb36ee98c3" }, "downloads": -1, "filename": "demakein-0.5.tar.gz", "has_sig": false, "md5_digest": "d704a5c7c6d810a0540e995d017f4b21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 293003, "upload_time": "2013-01-29T11:14:16", "url": "https://files.pythonhosted.org/packages/20/4d/8e93c7757cd003ff9acef05addc3c2edc1c9bd48baebd70d65f2e8399811/demakein-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "56fd8ac0e0e5428128fd1e0efb577dae", "sha256": "8f2b755ecafd77f75001f33df502d7368914c5ca724ddabd7bb6793de7747fa2" }, "downloads": -1, "filename": "demakein-0.6.tar.gz", "has_sig": false, "md5_digest": "56fd8ac0e0e5428128fd1e0efb577dae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 294334, "upload_time": "2013-03-14T00:03:27", "url": "https://files.pythonhosted.org/packages/89/d0/1a2599b21259482781ca0755c9f08decf75d8bbe7bae37859b9371103079/demakein-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "d61d1678f1f0c0355387fac721798999", "sha256": "41ce14af8cfba4d937d4a6c65910106b833df94af5b30f732b2f22d0f8f168cf" }, "downloads": -1, "filename": "demakein-0.7.tar.gz", "has_sig": false, "md5_digest": "d61d1678f1f0c0355387fac721798999", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 227495, "upload_time": "2013-04-23T08:59:59", "url": "https://files.pythonhosted.org/packages/29/05/fcc1acb81b37caf000a7c99bb5ed0c0b1e44993326a60bc67afb709bd90a/demakein-0.7.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "8712c3d02a6148866fe038a97374bdde", "sha256": "420016f1bf1b503dbfdf33126451cf0d59eadbc5cbe03919447f1eb977d5c69a" }, "downloads": -1, "filename": "demakein-0.9.tar.gz", "has_sig": false, "md5_digest": "8712c3d02a6148866fe038a97374bdde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 230398, "upload_time": "2013-05-18T06:40:13", "url": "https://files.pythonhosted.org/packages/2b/82/73855f15aa978efb5ce9fc1fefb813529f3c1139aa89553ceed6acab8523/demakein-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b71aa366396cfe7e4e6e41b98e6a42e", "sha256": "eab0e886f17498214937394e3ad032984a81a800c49a503bcc8e7a9263f552dd" }, "downloads": -1, "filename": "demakein-0.16.tar.gz", "has_sig": false, "md5_digest": "6b71aa366396cfe7e4e6e41b98e6a42e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 298336, "upload_time": "2014-03-01T05:04:23", "url": "https://files.pythonhosted.org/packages/c5/aa/36b711d4b41995780e7b2c35fd76d74234a8518cb44835c9127b1168f636/demakein-0.16.tar.gz" } ] }