MusicalInstrumentDirectivity
Description
This is a convention for storing musical instrument directivities for multiple played notes in the frequency domain.
- Directivity data: The instrument is encoded by the source, whereas different notes are encoded by the emitter. The data is saved as complex (or real) values in Obj.Data.Real and Obj.Data.Imag at the discrete frequencies specified in Obj.N.
- Example 1 - full spectrum: The directivity of a cymbal could be saved as a discrete single sided spectrum for equidistant frequencies between 0 Hz and the Nyquist frequency. In this case the played notes would refer to different playing styles of the cymbal (different strength or hitting locations). In this case Obj.Data.N would be of size N, because the frequencies are identical for each emitter (played note).
- Example 2 - harmonic spectrum: The directivity of a violin could be saved by means of the energy of the fundamental frequency and N-1 overtones of each played note. In this case Obj.Data.N would be of size NE, because the frequencies are different for emitter (each played note).
- Example 3 - fractional octave spectrum: The directivity of a violin could alternatively be saved as energy in N fractional octaves. In this case Obj.Data.N would be of size N, because the frequencies are identical for each emitter (played note). This format could be most easily used by recent room acoustical simulation algorithms but is not recommended because this simplified representation looses part of the original representation.
Version 0.1
This version uses SOFA 1.0 which reflects the AES69-2015 standard.
| Name | Default | Flags | Dimensions | Type | Comment |
|---|---|---|---|---|---|
| GLOBAL:Conventions | SOFA | rm | attribute | ||
| GLOBAL:Version | 1.0 | rm | attribute | ||
| GLOBAL:SOFAConventions | MusicalInstrumentDirectivity | rm | attribute | This conventions stores directivities of tonal instruments, atonal instruments, and singers/speakers, i.e., this requires some additional meta data entries. This convention is based on the not existing GeneralTFE. | |
| GLOBAL:SOFAConventionsVersion | 1.0 | rm | attribute | ||
| GLOBAL:APIName | rm | attribute | |||
| GLOBAL:APIVersion | rm | attribute | |||
| GLOBAL:ApplicationName | attribute | ||||
| GLOBAL:ApplicationVersion | attribute | ||||
| GLOBAL:AuthorContact | m | attribute | |||
| GLOBAL:Comment | m | attribute | |||
| GLOBAL:DataType | TF | rm | attribute | We store frequency-dependent data here | |
| GLOBAL:History | attribute | ||||
| GLOBAL:License | No license provided, ask the author for permission | m | attribute | ||
| GLOBAL:Organization | m | attribute | |||
| GLOBAL:References | attribute | ||||
| GLOBAL:RoomType | free field | m | attribute | The room information can be arbitrary | |
| GLOBAL:Origin | attribute | ||||
| GLOBAL:DateCreated | m | attribute | |||
| GLOBAL:DateModified | m | attribute | |||
| GLOBAL:Title | m | attribute | |||
| GLOBAL:InstrumentType | m | attribute | e.g. 'Violin' or 'human singer' | ||
| GLOBAL:InstrumentManufacturer | attribute | e.g. 'Stradivari, Lady Blunt, 1721' | |||
| GLOBAL:Musician | attribute | e.g. 'Christiane Schmidt' | |||
| MusicianPosition | [0 0 1] | m | IC | double | |
| MusicianPosition:Type | spherical | m | attribute | ||
| MusicianPosition:Units | degree, degree, metre | m | attribute | ||
| MusicianView | [0 0 1] | m | IC | double | Gives the orientation of the musician |
| MusicianView:Type | spherical | m | attribute | ||
| MusicianView:Units | degree, degree, metre | m | attribute | ||
| MusicianUp | [0 0 1] | m | IC | double | Gives the orientation of the instrument, singer/speaker |
| MusicianUp:Type | spherical | m | attribute | ||
| MusicianUp:Units | degree, degree, metre | m | attribute | ||
| ListenerPosition | [0 0 0] | m | IC | double | |
| ListenerPosition:Type | cartesian | m | attribute | ||
| ListenerPosition:Units | metre | m | attribute | ||
| ReceiverPosition | [0 0 0] | m | rCI | double | |
| ReceiverPosition:Type | cartesian | m | attribute | ||
| ReceiverPosition:Units | metre | m | attribute | ||
| SourcePosition | [0 0 1] | m | IC | double | In order to store different directions/positions around the listener, SourcePosition is assumed to vary |
| SourcePosition:Type | spherical | m | attribute | ||
| SourcePosition:Units | degree, degree, metre | m | attribute | ||
| SourcePosition:Definition | m | attribute | Definition of the SourcePosition, e.g., 'Position of the bell' for a trumpet | ||
| SourceView | [0 0 1] | m | IC | double | Gives the orientation of the instrument, singer/speaker |
| SourceView:Type | spherical | m | attribute | ||
| SourceView:Units | degree, degree, metre | m | attribute | ||
| SourceView:Definition | m | attribute | Definition of the SourceView, e.g., 'Viewing direction of the bell' for a trumpet | ||
| SourceUp | [0 0 1] | m | IC | double | Gives the orientation of the instrument, singer/speaker |
| SourceUp:Type | spherical | m | attribute | ||
| SourceUp:Units | degree, degree, metre | m | attribute | ||
| SourceUp:Definition | m | attribute | Definition of the SourceUp, e.g., 'Viewing direction of the valves' for a trumpet | ||
| EmitterPosition | [0 0 0] | m | eCI | double | |
| EmitterPosition:Type | cartesian | m | attribute | ||
| EmitterPosition:Units | degree, degree, metre | m | attribute | ||
| EmitterMidiNote | cartesian | E | double | 69 = A4 = TuningFrequency. Not mandatory, but recommended for tonal instruments. | |
| EmitterComment | cartesian | S, ES | attribute | verbal description of playing style, e.g., 'played on A string (pianissimo, pizzicato)', Not mandatory but highly recommended. | |
| Data.Real | 0 | m | mREn | double | The real part of the complex spectrum |
| Data.Imag | 0 | m | MREN | double | The imaginary part of the complex spectrum |
| TuningFrequency | I, E | double | Not mandatory, but highly recommended for tonal instruments and singers | ||
| TuningFrequency:LongName | frequency | attribute | |||
| TuningFrequency:Units | hertz | attribute | Unit of values given in TuningFrequency | ||
| N | 0 | m | N, NE | double | Frequency values |
| N_LongName | frequency | attribute | |||
| N_Units | hertz | m | attribute | Unit of the values given in N |