MusicalInstrumentDirectivity

From Sofaconventions
Jump to navigation Jump to search

Description

This is a convention for storing musical instrument directivities obtained at multiple receivers and for multiple played notes. The data is saved in the frequency domain and the convention is based on the (not yet existing) GeneralTFE convention.

  • 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.
  • Meta data: The complete description of the provided data unfortunately requires more meta data than in other SOFA conventions.
    • EmitterPosition: Gives a emitting position of each note. In most cases, it won't be possible to specify the position of the emitter, and a null matrix should be given.
    • EmitterMidiNote: For tonal instruments, this specifies the midi note number according to (REFERENCE) where a note number of 69 refers to A4 (fundamental frequency specified by Obj.TuningFrequency). In case of atonal instruments a null vector should be given.
    • EmitterComment: Gives an additional verbal description of each note, which is highly recommend for documenting the data. This might be the musical dynamic (pp., ff., etc.), the string on which the note was played, the playing style (pizzicato, legato, etc.), or the location at which a cymbal was hit.

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