• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Exporting Spinorama data to CSV using ExportSpinoramaData.py

Randolf

Active Member
Joined
Jan 9, 2024
Messages
134
Likes
249
Location
Germany
In some of my latest posts I have imported measurement data from Amir into REW manually. I thought it would nice and of some general interest to do that automatically with almost no effort. Therefore, I have created https://github.com/rwhomeaudio/ExportSpinoramaData . This little python script exports CEA2034, Early Reflections and Estimated In-Room response of https://github.com/pierreaubert/spinorama as CSV data that can directly be imported into REW, FreqRespGraph, spreadsheets…:

ExportSpinoramaData.py -h
usage: ExportSpinoramaData [-h] [--absSPL] speaker version

ExportSpinoramaData exports spinorama data of a given speaker model and measurement version as text files in a sub directory "export".
The exported files can e.g. directly be imported in REW or spreadsheet programs.

positional arguments:

speaker
version

options:

-h, --help show this help message and exit
--absSPL Export data with absolute SPL instead of 0dB normalized, default off

Example:

ExportSpinoramaData.py --absSPL "KEF LS50 Meta" "asr"

creates

export/KEF LS50 Meta/asr/CEA2034/All.csv
export/KEF LS50 Meta/asr/CEA2034/Early Reflections DI.txt
export/KEF LS50 Meta/asr/CEA2034/On Axis.txt
export/KEF LS50 Meta/asr/CEA2034/Early Reflections.txt
export/KEF LS50 Meta/asr/CEA2034/Sound Power.txt
export/KEF LS50 Meta/asr/CEA2034/DI offset.txt
export/KEF LS50 Meta/asr/CEA2034/Listening Window.txt
export/KEF LS50 Meta/asr/CEA2034/Sound Power DI.txt
export/KEF LS50 Meta/asr/Estimated In-Room Response.txt
export/KEF LS50 Meta/asr/Early Reflections/Front Wall Bounce.txt
export/KEF LS50 Meta/asr/Early Reflections/All.csv
export/KEF LS50 Meta/asr/Early Reflections/Total Early Reflection.txt
export/KEF LS50 Meta/asr/Early Reflections/Floor Bounce.txt
export/KEF LS50 Meta/asr/Early Reflections/Rear Wall Bounce.txt
export/KEF LS50 Meta/asr/Early Reflections/Ceiling Bounce.txt
export/KEF LS50 Meta/asr/Early Reflections/Side Wall Bounce.txt

from the measurement of the KEF LS50 Meta provided by Audio Science Review with absolute SPL.

Use

ExportSpinoramaData.py --absSPL '*' '*'

to export all availabile measurements.



For convenience most currently available measurments (1122 of 1427) are already exported to https://github.com/rwhomeaudio/ExportSpinoramaData/tree/main/export for direct usage. Here are some examples how one may use the exported data:

View CEA2034 in REW (using: File->Import->Import frequency response):

REWLS50CEA2034.png


Display Early Reflections in FreqRespGraph:
python $HOME/FreqRespGraph/FreqRespGraph.py --csvdelimiter " " --ymin 30 --ymax 90 --title "Early Reflections KEF LS50 Meta" --files "$HOME/ExportSpinoramaData/export/KEF LS50 Meta/asr/Early Reflections/*.txt"

FreqLS50EarlyReflections.png

Get creative and display all KEF and Klipsch Estimated In-Room responses of all available measurements:
python $HOME/FreqRespGraph/FreqRespGraph.py --csvdelimiter " " --alignmin 200 --alignmax 2000 --nolegend --title "Estimated In-Room Response KEF" --files "$HOME/ExportSpinoramaData/export/KEF*/*/Estimated In-Room Response.txt"

FreqKEF.png


python $HOME/FreqRespGraph/FreqRespGraph.py --csvdelimiter " " --alignmin 200 --alignmax 2000 --nolegend --title "Estimated In-Room Response Klipsch" --files "$HOME/ExportSpinoramaData/export/Klipsch*/*/Estimated In-Room Response.txt"

FreqKlipsch.png


I have tested it extensively on Linux and Windows and results look ok. When comparing Amir’s KEF LS50 Meta original data with my data exported from spinorama I only noticed that for some unknown reason there is a constant offset of 0.5dB.
 
I have tested it extensively on Linux and Windows and results look ok. When comparing Amir’s KEF LS50 Meta original data with my data exported from spinorama I only noticed that for some unknown reason there is a constant offset of 0.5dB.
I have found and fixed the ~0.5db constant offset issue. The spinorama API uses different frequency ranges for data alignment (300-3000 Hz) and sensitivity calculation (100-1000 Hz). Data should now be 100% correct.
 
Back
Top Bottom