This project has been made to reproduce the Alvin Lucier's performance by convolving again and again and again.. an audio file with an impulse response of a room. Performance on Youtube
Two programs are disponibles
- The "brute force program" manage the convolution in one pass. By convolving each times the n-th output again with the impulse response Like so: Output_n = S(v) ∗ H(v) ∗ H(v) ∗ ... ∗ H(v)
- The "You get what you want program" manage the convolution in two passes. The first pass convolv the impulse response with itself n times and store the results in a repertory. The second pass gets the user wanted responses and convolute it with the sample. Like so: First pass : H_n(v) = H(v)^(n), Second pass : Output_n = S(v) * H_v^(n)
This code need theses python modules :
- numpy
- matplotlib.pyplot
- scipy (scipy.io, scipy.interpolate)
Run this command in order to install modules (linux 😉)
sudo apt-get install python-numpy python-matplotlib python-scipy
- "Get th'n all" program
- Change the input file
sample/sample.wav - Change the impulse responce file
sample/ir.wav - Run the python program
python get_th_n_all.pyin a terminal (this may take a while) - Open the folder
sample/convolutions/ - This is it! You get all your rooms in rooms!
- "Get what you want" program
- Change the input file
sample/sample.wav - Change the impulse responce file
sample/ir.wav - Set the
nConvolvariable in order to set the number of "room in room" - Run the python program
python convol_generator.pyin a terminal (this may take a while) - Run the python program
python getNSampleConvol.pyin a terminal (this may take a while) - In the folder
sample/you get two files :sample_0.wavandsample_N.wavsample_0.wavis the original one (compressed on all the dynamic)sample_N.wavis the N-th pass in a room
The sample.wav used in demo is from learnopengl.com
And is downlodable in full version there
this project is under a GNU GPLv3 licence