didgmo 0.3.2
Functions
geo
didgmo

Routines for defining, loading, saving of the didgeridoo geometry. More...

Collaboration diagram for geo:

Functions

seg * seg_new (long double i_L, long double i_d0, long double i_d1)
 creates new segment.
void seg_update (seg *i_seg)
 updates private data of a segment.
seg * seg_copy (seg *i_seg)
 copies a segment.
void seg_free (seg *i_seg)
 frees segment created with seg_new.
Eina_List * geo_new ()
 creates new geometry structure.
void geo_free (Eina_List *i_geo)
 frees geometry created with geo_new.
long double geo_length_get (Eina_List *i_geo)
 get length of final didgeridoo represented by geometry.
Eina_List * geo_load (char *i_path)
 load geometry (*.geo) from file.
Eina_List * geo_copy (Eina_List *i_geo)
 copy a geometry.
fft * geo_fft (Eina_List *i_geo, int i_max, int i_offset)
 calculate whole impedance, sound and overblow spectra of given geometry.

Detailed Description

Routines for defining, loading, saving of the didgeridoo geometry.


Function Documentation

seg* seg_new ( long double  i_L,
long double  i_d0,
long double  i_d1 
)

creates new segment.

Parameters:
i_Llength of segment
i_d0diameter at beginning of segment
i_d1diameter at end of segment
Returns:
a new segment (free it with seg_free)
void seg_update ( seg *  i_seg)

updates private data of a segment.

Parameters:
i_segsegment to be updated
seg* seg_copy ( seg *  i_seg)

copies a segment.

Parameters:
i_segsegment to be copied
Returns:
a new segment (free it with seg_free)
void seg_free ( seg *  i_seg)

frees segment created with seg_new.

Parameters:
i_segsegment to be freed
Eina_List* geo_new ( )

creates new geometry structure.

Returns:
geometry (free it with geo_free)
void geo_free ( Eina_List *  i_geo)

frees geometry created with geo_new.

Parameters:
i_geogeometry to be freed

routine frees automatically all associated segments.

long double geo_length_get ( Eina_List *  i_geo)

get length of final didgeridoo represented by geometry.

Parameters:
i_geogeometry
Returns:
sum of length of all segments
Eina_List* geo_load ( char *  i_path)

load geometry (*.geo) from file.

Parameters:
i_pathfile path
Returns:
geometry
Eina_List* geo_copy ( Eina_List *  i_geo)

copy a geometry.

Parameters:
i_geogeometry to copy
Returns:
new geometry (free with geo_free)
fft* geo_fft ( Eina_List *  i_geo,
int  i_max,
int  i_offset 
)

calculate whole impedance, sound and overblow spectra of given geometry.

Parameters:
i_geogeometry
i_maxfrequency range from 0 to i_max
i_offsetfrequency offset of ground tone and first overblow
Returns:
fft spectra