1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.

    Dismiss Notice

Recording Impulse Responses for Speaker Virtualization

Discussion in 'Sound Science' started by jaakkopasanen, Oct 9, 2018.
1 2 3
5 6 7 8 9 10 11 12 13 14
  1. Hooknej
    I've been messing with and enjoying Impulcifer for the last few weeks and wanted to share some thoughts, but the BLUF is that this is the real deal and if you take some time to do things right you will be rewarded with the best speaker recreation through headphones this side of the Smyth Realiser systems.

    - I have the Realiser A16 pre-ordered and while waiting have gone down the rabbit hole trying to get something close. I have tried or purchased OOYH, the Audeze Mobius, WIndows Sonic, Dolby Atmos, HeSuVI... basically everything except the creative SXFi. Impulcifer is far and away the best recreation of listening to my sound system in my living room. I frequently have to remove my headphones to make sure the speakers aren't playing. It's amazing.

    - I used the Sound Professionals SP-TFB-2 and Roland CS10-EM binaural microphones, recording each through both my PCs motherboard and through a Zoom H1N. Using the Zoom vs onboard made a large difference in imaging, in putting the speakers where they 'belong' in the room through headphones. Using the Sound Professional mics pushed things over the edge and brought the headphone sound qualities closer to the actual speakers. Going back and forth in the HeSuVI presets is a huge difference - Buy the Sound Professionals and use the Zoom as the bare minimum starting point for the recordings - quality of recording equipment makes a big difference in the final results.

    - I am tech literate, but don't spend a lot of time with the Windows CMD interface, so the installation and use instructions for Impulcifer were a little bit intimidating. Overall though, jaakkopasanen's instructions are great and if you have any problems he is very responsive and seems willing to help. Overall, it wasn't hard but a GUI one day would be nice!

    - Lastly, I am currently using my Sennheiser HD598s while I wait for my Stax to arrive - I can't wait to see how much further I can push things with the upgraded headphones.

    Anyways, I just wanted to say thanks to jaakkopasanen for an awesome program and for making me question whether I actually needed to spend all of that money on the realiser.....
  2. jaakkopasanen
    Thanks a lot for the feedback. There is a bit of a starting barrier with Impulcifer so I greatly appreciate anyone trying it out and telling about the experience.

    It's very good to know that the recording gear had such a big impact on the impulse response quality. I haven't got around experimenting with that aspect too much.

    There will be a graphical user interface in form of a website but first I'm going to get the algorithm right, at least implement room correction.
    johnn29 and Joe Bloggs like this.
  3. Hooknej
    No problem! I was also surprised by how much of a difference the recording gear made, but it's very obvious when switching between the HeSuVI presents that were generated by each iteration.

    As good as things sound now, I can't wait to see what room correction does - it really is incredible to me how well this works, especially when you compare it the $4K retail price of the Realiser. Thanks again for what you're doing and I'll keep testing new releases as they get pushed to GitHub and let you know how things go.
    Joe Bloggs likes this.
  4. Dixter
    Tried again to install this on Windows 10 and can't get it done properly... for some reason I'm not catching on how to get past this part.. "
    • Go to Impulcifer folder
    cd C:\path\to\Impulcifer-master
    • Create virtual environment
    virtualenv venv
    • Activate virtualenv
    • Install required packages
    pip install -r requirements.txt
    • Verify installation
    python impulcifer.py -H
    When coming back at a later time you'll only need to activate virtual environment again

    cd C:\path\to\Impulcifer-master
  5. sander99
    I get the following error, so what and where is 'git' and why isn't it in my PATH?

    (venv) C:\Sander\Impulcifer\Impulcifer-master>pip install -r requirements.txt
    Collecting git+https://github.com/jaakkopasanen/autoeq-pkg (from -r requirements.txt (line 5))
    Cloning https://github.com/jaakkopasanen/autoeq-pkg to c:\users\laptop\appdata\local\temp\pip-req-build-86uzywa_
    Running command git clone -q https://github.com/jaakkopasanen/autoeq-pkg 'C:\Users\Laptop\AppData\Local\Temp\pip-req-build-86uzywa_'
    ERROR: Error [WinError 2] The system cannot find the file specified while executing command git clone -q https://github.com/jaakkopasanen/autoeq-pkg 'C:\Users\Laptop\AppData\Local\Temp\pip-req-build-86uzywa_'
    ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?

    Ok, I made a mistake, I didn't download AutoEQ.zip until now, but the reason is this:
    (@jaakkopasanen : a little mistake on your behalf I humbly think, but of course I should not criticise your generous free gift to us:))
    The link 'AutoEQ zip' in
    (on https://github.com/jaakkopasanen/Impulcifer) points to 'Impulsifer-master.zip', which confused me into thinking AutoEQ.zip simply contained the same stuff I already downloaded (Impulsifier-master) and that I didn't need more.

    I now found the correct link to 'AutoEQ.zip' in the sig of jaakkopasanen (so at the bottom of all his posts):
    'AutoEQ - Equalization settings for 2500+ headphones'.

    My pc is still busy unzipping AutoEQ.zip, afterwards I'll try if this fixed above 'git' problem, but I am not sure that is related to this.

    Edit 2:
    I guess I should just install AutoEQ first, and I now see on 'https://github.com/jaakkopasanen/AutoEq' that I should have installed Python 3.6 and not 3.7...

    Edit 3:
    …or does that not apply to using AutoEQ with Impulcifer (needing Python version 3.6 I mean)

    I did everything again with Python 3.6 and get different errors now.

    (venv) C:\Sander\Impulcifer\Impulcifer-master>pip install -r requirements.txt
    Fatal Python error: Py_Initialize: can't initialize sys standard streams
    Traceback (most recent call last):
    File "c:\sander\impulcifer\impulcifer-master\venv\lib\abc.py", line 105, in <module>
    ModuleNotFoundError: No module named '_abc'
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
    File "c:\sander\impulcifer\impulcifer-master\venv\lib\io.py", line 52, in <module>
    File "c:\sander\impulcifer\impulcifer-master\venv\lib\abc.py", line 109, in <module>
    ModuleNotFoundError: No module named '_py_abc'

    Edit 4:
    I also tried Python 3.0.0 (I didn't notice at first that it was available) without result, because I also didn't see "Python 3" I initially assumed I could just pick the latest 3.x.y.
    Exactly what version should I use best?
    Last edited: Sep 3, 2019
  6. jaakkopasanen
    The instructions weren't really clear that command prompt needs to be used. I made some changes and maybe it's a bit clearer now. Basically you search for cmd in Windows Start menu and an intimidating looking terminal opens up. Worry not because you should be able to simply copy the commands from the installation instructions into the command prompt and hit enter after each one. When the installation goes smoothly, you can try to run the demo.

    Start again with the new instructions and tell me if you still have problems: https://github.com/jaakkopasanen/Impulcifer#installing

    Ah, yes. My mistake was to leave the AutoEq mention there. It was supposed to say download Implucifer-master.zip, not AutoEq-master.zip. I however redid the installation instructions and now Git needs to be installed first. Downloading the zip is no longer a recommended option but the instructions ask you to Git clone the repository. Having git installed will solve the problem with AutoEq installation too. Impulcifer uses AutoEq under the hood so when installing the dependencies from requirements.txt it will install AutoEq with Git. I just had forgotten that not installing Git and instead downloading the zip wouldn't work because of AutoEq installation. Python 3.6 is not a requirement anymore and 3.7 should work just as well.

    Could you try and start over but this time following the new installation instructions? Please report back here if you have more problems.
  7. sander99
    Thank you very much. It seems to work now.
    I did get an error message at the end of the help information in the verify installation step though:
    impulcifer.py: error: unrecognized arguments: -H
    Ah, but using -h instead of -H in 'python impulcifer.py -H' gives no error.

    And no error with running the demo, and it did produce the hesuvi.wav file (plus other files).
    I did not test the hesuvi.wav file yet, and I don't have mics etc. yet to do my own measurements.
  8. jaakkopasanen
    New recording guide is up at Impulcifer wiki: https://github.com/jaakkopasanen/Impulcifer/wiki/Measurements

    The stereo recording process and gear discussion are largely the same but now there is a guide for doing surround recordings with seven, two or just one speaker. I added some illustrations for explaining how the stereo speaker surround recording works. Hopefully it's clear(er) now.

    I would appreciate any feedback on the guide. Is there still something that's unclear or confusing? Something that could be improved? Anything is welcome!
    johnn29 likes this.
  9. johnn29
    I like how you put the following in bold

    After frying my first SXFI trying to record an impulse response from it - it's a good warning!

    Diagrams make things much clearer now.

    One tip I have is that, just like the guide says, you need to measure the headphones in the same session as the speakers. I (wrongly) assumed that you could make separate headphone recordings and compensate with a single speaker recording - but every re-seat causes a different response. Some headphones with higher clamp force, like the Bose 700 I've been trying to measure prove very difficult. I've got the best results from the Creative Aurvana SE - very low clamp force and a decent sound without any EQ.
    jaakkopasanen likes this.
  10. jaakkopasanen
    Thanks. I added a mention about the need to redo headphone measurements on every session to the guide. Good point.
  11. jaakkopasanen
    A major update to recording process. I implemented a recording utility in Impulcifer so now there should not be a need to mess with Audacity anymore. Recorder.py is a playback and recording utility specifically designed and implemented to record sine sweeps for HRIRs. I updated the measurement guide to use recorder instead of Audacity: https://github.com/jaakkopasanen/Impulcifer/wiki/Measurements#recording-with-recorderpy. The project front page has quick reference guide for running the measurements and after one has familiarized self to the recording process the quick reference should function as a shortcut for simply copy-pasting the commands: https://github.com/jaakkopasanen/Impulcifer#measurement.

    I'm personally quite happy with the process. It doesn't really take a lot of time to get a surround sound setup measured with just one or two speakers and using 7.1 system it's even faster. This is no graphical user interface but it serves well for now.

    The new recording process comes with changes to usage of Impulcifer. recording.wav and --speakers parameter are no longer the way to tell Impulcifer where to find the recording and which speakers does it contain. The new way is to create one or multiple recording files which have the speaker names in the file name. For example FR,FL.wav and SR,BR.wav. This makes everything clearer and simpler because now the files themselves document the speaker order and there is no longer need to have all the tracks in the same file. With this scheme it's impossible to lose the speaker order which makes it easier to share recordings and get back to them after a long time.

    Another, smaller, update is the decrease of time it takes to process the recordings. Most of the time was spent on producing the graphs but now the graphs are not produced by default. Those who are still interested in them can tell Impulcifer to generate them with --plot parameter. Plotting the graphs is faster too so the total processing time with plotting should be down by half. Processing without plotting the graphs only takes a few seconds.
    arnaud, Zenvota, jgazal and 1 other person like this.
  12. johnn29
    Just saw that you've built in a recording function too - 3 simple commands now to generate a HRIR. Pretty amazing!

    My theater refurb should be complete this week so very much looking forward to getting some new measurements done. Seems like it'll be a breeze compared to the initial ones I did.
  13. jaakkopasanen
    I added EQ baking so now it's possible to create HRIRs for IEMs. This requires a FIR filter which equalizes the IEM frequency response to the around ear headphone frequency response. Headphone compensation cannot be done with IEMs so around ear headphones have to be used at that time but when the measurements have been done IEMs are good to go. The FIR filter which turns the IEM into the around ear headphone can be created with AutoEQ.

    Second addition is the output sampling rate. If the desired sampling rate doesn't match the sampling rate of the recorded files then Impulcifer can do resampling on the fly. This is convenient because with resampling one doesn't need to do measurements twice if both 44.1 kHz and 48 kHz HRIRs are wanted. I intend to test at some point if there is any difference between recording with 48 kHz and recording with 96 kHz and sampling down. Perhaps @johnn29 you would like to test this? IIRC you have an audio interface which can do more than 48 kHz.

    Lastly for today's work I made Impulcifer write a readme with date, sampling rates and some stats about the measured impulse responses, like peak to noise ratio etc...
    Zenvota, Joe Bloggs and jgazal like this.
  14. arksergo
    Hi guys!

    Yesterday i finally recorded my HRIR using Impulcifer and I got to tell you that the result is mind blowing! It is the best headphone virtualization experience that I ever had. I literally don't hear the difference between using headphones and speakers.
    Thank you jaakkopasanen for sharing your amazing work with us!

    A couple of words regarding measurement process:
    I wasn't able to bye binaural mics because of weird legal restrictions, so I made it myself. I used couple of Primo 258N microphones and assembled simple mic amplifier with XLR phantom power. For recording I used Behringer UMC202HD.
    Recording process was pretty simple, but unfortunately I failed to use recorder.py, because of error (something about sounddevice module being not found). So I ended up using good old Audacity.
    It is worth to mention, that you have to use 64bit version of Python, as one of required packages doesn't exist in 32bit version.
    Zenvota likes this.
  15. jaakkopasanen

    Great work with making the mics yourself! Good to hear that this can be a valid option. I've thought about it myself but haven't got there yet. Primo EM172 looks even better specs wise and is less than £12. Perhaps I'll make my own binaural mics instead of upgrading to Soundprofessionals master series mics.

    The sounddevice package wasn't listed in the requirements.txt because I forgot to add it there. It's there now and recorder.py should work. I also added a mention in installing instructions about 64-bit Python. Big thanks for reporting these.
1 2 3
5 6 7 8 9 10 11 12 13 14

Share This Page