FreeFieldDirectivityTF: Difference between revisions

From Sofaconventions
Jump to navigation Jump to search
Content deleted Content added
Line 7: Line 7:




A simple setting assumes that the acoustic source under consideration is surrounded by many microphones capturing the signal emitted by the source from different spatial directions. To this end:
A simple setting assumes that the acoustic source under consideration is surrounded by many microphones capturing the signal emitted by the source from different spatial directions. To this end, we define the following:


* 'Source' represents the acoustic source under consideration.
* 'Source' represents the acoustic source under consideration.
Line 13: Line 13:
* 'Receivers' represent the microphones capturing the sound from the acoustic source
* 'Receivers' represent the microphones capturing the sound from the acoustic source
* 'Listener' represents the array of microphones. In a simple setting, the position of the Listener is collocated with the position of the Source.
* 'Listener' represents the array of microphones. In a simple setting, the position of the Listener is collocated with the position of the Source.
* 'Data:' The signal captured by a Receiver. The data is saved as complex numbers in Data.Real and Data.Imag at the N discrete frequencies for R receivers and M measurements.
* 'MIDINote' describes the note the acoustic source was played. Note that MIDINote can be combined with TuningFrequency for a unique relation between the note and frequency. Both data can be ignored for atonal sources such as loudspeakers.
* 'MIDINote' describes the note the acoustic source was played. Note that MIDINote can be combined with TuningFrequency for a unique relation between the note and frequency. Both data can be ignored for atonal sources such as loudspeakers.
* '''Data:''' The signal captured by a Receiver. The data is saved as complex numbers in Data.Real and Data.Imag at the N discrete frequencies for R receivers and M measurements.
* 'Measurement' captures a modification of the directivity condition:
* 'Measurement' captures a modification of the directivity condition:
** Modified orientation of the microphone array during the measurement? The ListenerView and ListenerUp will change.
** Modified orientation of the microphone array during the measurement? The ListenerView and ListenerUp will change.

Revision as of 11:42, 10 May 2019

Description

FreeFieldDirectivityTF is a convention for storing directivity of acoustic sources (instruments, loudspeakers, singers, talkers, etc) in the frequency domain for multiple musical notes. We consider free-field directivites only, i.e., assuming that a potential room has no effect on the data. We consider musical notes as a parameter directly addressing musical instruments. The applications can be:

  • Musical acoustics: When measuring of directivity of instruments, this convention can be used for storing the directivity data, which then can be used for general research in musical acoustics.
  • Room-acoustic simulations: When rendering acoustic scenes combined with simulations of the room acoustics, this convention can provide the directivity data for more realistic auralizations.


A simple setting assumes that the acoustic source under consideration is surrounded by many microphones capturing the signal emitted by the source from different spatial directions. To this end, we define the following:

  • 'Source' represents the acoustic source under consideration.
  • 'Emitters' represent a more detailed structure of the Source. In a simple settings, a single Emitter is considered that is collocated with the source.
  • 'Receivers' represent the microphones capturing the sound from the acoustic source
  • 'Listener' represents the array of microphones. In a simple setting, the position of the Listener is collocated with the position of the Source.
  • 'Data:' The signal captured by a Receiver. The data is saved as complex numbers in Data.Real and Data.Imag at the N discrete frequencies for R receivers and M measurements.
  • 'MIDINote' describes the note the acoustic source was played. Note that MIDINote can be combined with TuningFrequency for a unique relation between the note and frequency. Both data can be ignored for atonal sources such as loudspeakers.
  • 'Measurement' captures a modification of the directivity condition:
    • Modified orientation of the microphone array during the measurement? The ListenerView and ListenerUp will change.
    • Another musical note played during the measurement? The MIDINote will change.
    • Another direction of the directivity required for auralization? Search for the proper ReceiverPosition (in a postprocessed dataset with a single ListenerView) or for a spatial superposition of ListenerView, ListenerUp, and ReceiverPosition (in a dataset with raw measurements).

Examples for the data representation:

  • Full spectrum and atonal instrument: The directivity of a cymbal, saved as a discrete single-sided spectrum for equidistant frequencies between 0 Hz and the Nyquist frequency. The played notes refer to different playing styles of the cymbal (different strength or hitting locations). Data.N represents the frequencies which are identical for each Measurement such as played note and direction.
  • Full spectrum and tonal instrument: Signal of a violin (single tones, scales, or complete pieces), saved as a discrete single-sided spectrum for equidistant frequencies between 0 Hz and the Nyquist frequency. Data.N represents the frequencies which are identical for each measured condition. Such data are raw data from which directivities can be computed in a post-processing step.
  • Harmonic spectrum: The directivity of a violin, saved for each harmonic frequency beginning with the fundamental frequency and ending at (N-1)th overtone of each played note. Data.N represents the index to a harmonic frequency with respect to the fundamental frequency described by MIDINote and TuningFrequency.
  • Fractional octave spectrum: The directivity of a violin, with the spectrum represented by a few N fractional octaves. Data.N represents frequencies which are identical for each Measurement such as played note and direction. The data are post processed such that the spatial parameters of the Source and Listener are constant and the directivity is encoded in ReceiverPosition only. This format is intended to be used by room-acoustic simulations. Note that is might simplify the original representation of the measurement.
  • Moving instrument: The influence of the musician on the directivity of the musician and/or the instrument. To this end, the spatial relation between the musician/instrument (=Source) and the microphones (Listener/Receivers) is important and thus represented in the metadata. The data can be captured by repeated recordings of the same note/scale/piece for different positions of the listener/instrument. Note that this is a complex scenario and thus yield a complex representation.
    • EmitterMidiNote: For tonal instruments, this specifies the midi note number according to (The complete MIDI 1.0 detailed specification (version 96.1, third edition), https://www.midi.org/specifications-old/item/the-midi-1-0-specification) 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.
    • GLOBAL:MusicianPostion: Specifies the position of the musician inside the microphone array and relative to the instrument. It is recommended that the direction of azimuth 0 deg. and elevation 0 deg. is used as a reference point/virtual audience towards which the musician is oriented.
    • SourceViewDefinition: Because there will not be an agreement of how the source view is defined across different instruments, this has to be specified (e.g. 'Viewing direction of the bell' in case of a trumpet)
  • SOFA-API
    • M: Number of measurements. Must be M=1.
    • E: Number of emitters, which for example correspond to played notes, or cymbal hits (see examples above).
    • R: Number of receiver, which in this case refers to the number of microphones that were used for recording the data.
    • N: Number of saved frequencies (see examples above).
  • Applications

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 m attribute e.g. 'Stradivari, Lady Blunt, 1721'
GLOBAL:Musician m attribute e.g. 'Christiane Schmidt', or 'artificial excitation by R2D2'
GLOBAL:MusicianPosition m attribute e.g. 'sitting behind the instrument, facing the virtual audience at azimuth 0 deg. and elevation 0 deg.'
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 Defines the played note, e.g. 69=A4, 70=A#4, etc. (According to 'The complete MIDI 1.0 detailed specification' (version 96.1, third edition), https://www.midi.org/specifications-old/item/the-midi-1-0-specification). Not mandatory, but recommended for tonal instruments.
EmitterDescription 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 Defines the fundamental frequency of A4 (midi note number 69). 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 m attribute
N_Units hertz m attribute Unit of the values given in N