Configurable Speaker Port
Speakers with a port require specific dimensions for optimal sound. This OpenSCAD design allows you to change the size and print off the precise size you need. If you use wood-fill PLA, you can sand and stain it like other wood parts.
The default settings are for a set of Fostex FE103En enclosures, similar to the ones here:
http://diyaudioprojects.com/Speakers/Fostex-FE103En-Bass-Reflex-Speakers/
The external part of the port is built layer-by-layer (with the layer height set in decorative_layer_height), which makes the compile take a long, long time. If you wish to change the shape of the external portion, you can play with the formula indiameter_for_layer(). This is passed the current layer height and returns the diameter for it. You can use a graphing calculator to play with the formula; the port will take on the shape of the graph.
Printing Notes
Infill isn't important--10% will be fine.
You probably want to print it with support, with the internal cylinder side down.