11.07.2014 Views

Flute acoustics: measurement, modelling and design - School of ...

Flute acoustics: measurement, modelling and design - School of ...

Flute acoustics: measurement, modelling and design - School of ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CHAPTER 8. SOFTWARE IMPLEMENTATION 115<br />

Table 8.1: C library files for the woodwind model. C program files (.h <strong>and</strong> .c) for each filename<br />

are provided in Appendix B.<br />

Filename<br />

Acoustics<br />

Analysis<br />

Complex<br />

Map<br />

Minima<br />

Note<br />

ParseImpedance<br />

ParseXML<br />

Point<br />

TransferMatrix<br />

Vector<br />

Woodwind<br />

Description<br />

Calculates acoustical constants, transfer matrices etc.<br />

Contains methods used by AnalyseNotes.<br />

Complex arithmetic library.<br />

Simple implementation <strong>of</strong> a map (associative array).<br />

Contains definition <strong>and</strong> methods for finding minima.<br />

Representation <strong>of</strong> a musical note, including name, tuning <strong>and</strong><br />

midi number.<br />

Parses the file returned by PlayedImpedance for use by<br />

AnalyseNotes.<br />

Parses XML representation <strong>of</strong> a woodwind, <strong>and</strong> returns a<br />

Woodwind structure.<br />

Definition <strong>of</strong> a simple structure containing (x, y) data.<br />

An implementation <strong>of</strong> a 2 × 2 matrix, <strong>and</strong> functions to multiply<br />

<strong>and</strong> invert such matrices.<br />

A linked list <strong>of</strong> void* pointers.<br />

Definition <strong>of</strong> Woodwind structure, <strong>and</strong> functions to calculate<br />

transfer matrices <strong>and</strong> impedances.<br />

2.0 0.117 1.620<br />

4.0 0.124 1.620<br />

...<br />

(The origin <strong>of</strong> the x-axis used by ‘Waves’ is at the embouchure hole <strong>of</strong> the flute; hence the<br />

negative values.)<br />

8.1.7 Library files<br />

Various library files are used by the programs described in this section. A brief description <strong>of</strong><br />

each <strong>of</strong> these is given in Table 8.1 <strong>and</strong> the complete program listings are given in Appendix B.<br />

8.2 THE USER INTERFACE<br />

The previous section described the development <strong>of</strong> a set <strong>of</strong> comm<strong>and</strong>-line tools to calculate the<br />

acoustical <strong>and</strong> musical properties <strong>of</strong> a flute. These tools incorporate the mathematical model<br />

<strong>of</strong> the flute. In order to make the results <strong>of</strong> this thesis generally accessible to members <strong>of</strong> the<br />

flute making community, who may not have a scientific background, a user-friendly interface<br />

to the comm<strong>and</strong> line tools was developed, using the computer programming language Java.<br />

Java is a language developed by Sun Microsystems with similar syntax to C <strong>and</strong> C++, but Java<br />

applications are typically compiled to run on virtual machines. Programs developed using Java<br />

are easily deployed to different machines with different operating systems, since Java Virtual<br />

Machines (JVMs) are available for most popular platforms.<br />

8.2.1 Design goals<br />

The following attributes were considered highly desirable in the user interface:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!