
Demakein
======== 

Paul Harrison - pfh@logarithmic.net


Demakein is a set of Python tools for designing and making woodwind 
instruments.

This generally consists of two stages:

- The "design" stage is a numerical optimization that chooses the bore 
  shape and the finger hole placement, size, and depth necessary for
  the instrument to produce the correct notes for a given set of
  fingerings.

- The "make" stage takes a design and turns it into a 3D object, then 
  then cuts the object into pieces that can be CNC-milled or 3D-printed.

Demakein can either be used via the command "demakein" or as a
library in Python. Demakein has been designed to be extensible,
and I hope you will find it relatively easy to write code to
create your own novel instruments. You can either create subclasses
of existing classes in order to tweak a few parameters, or create 
wholly new classes using existing examples as a template.


Requirements:
=============

- nesoni

  pip install nesoni

- cffi

  pip install cffi

- numpy

  pip install numpy, or apt-get install python-numpy

- g++
- CGAL
- cmake

  apt-get install g++ libcgal-dev cmake

Demakein has been tested under Linux. Other operating systems
may require some alterations to make the C++ compilation system
work.


Installation
============

Easy way

  pip install demakein

From source, download and untar tarball then

  python setup.py install

You can then run program by typing

  demakein

or

  python -m demakein


Example
=======

Create a small flute:

  demakein design-straight-folk-flute: myflute --transpose 12
  demakein make-flute: myflute

Files are created in a directory called myflute.

We've just made STL files for 3D printing. How about if we want 
to CNC-mill the flute?

  demakein make-flute: myflute --mill yes --open yes --prefix milling


