Best way to speed match two different audio sources?
- Lord Reith
- Posts: 5485
- Joined: Thu Feb 18, 2021 8:22 am
- Location: BBC House
- Has thanked: 258 times
- Been thanked: 6677 times
Re: Best way to speed match two different audio sources?
The joys of command line...
Women there don't treat you mean, in Abilene
- Lord Reith
- Posts: 5485
- Joined: Thu Feb 18, 2021 8:22 am
- Location: BBC House
- Has thanked: 258 times
- Been thanked: 6677 times
Re: Best way to speed match two different audio sources?
For the last however many years I've used is the "vocal reduction and isolation" effect in Audacity, which was a huge step up from the piece of crap I used for the bowl: Cepstral.nickotina wrote: ↑Wed Oct 30, 2024 7:59 amOh wow, thanks for pointing out!
I am trying out every possible way to do this, without ever being satisfied. Wondering how in the world you managed to do this for your excellent Bowl remixes, all those years ago...
(And I expect you to protect your trickeries as any magician would do )
The thing with any centre extract you have to be dead certain there's no azimuth error. Abbey Road had one tape machine that introduced a one sample lag on one channel that randomly affected various stereo remixes (and in fact ALL of Beatles For Sale has dodgy azimuth in every stereo version, including 2009). If the azimuth is not perfect then high frequencies in the centre are affected when you do a centre extract. Even a lag as tiny as one sample will compromise the result.
I haven't put the AI centre extractor through its paces but I'm hoping it can do well what the audacity one can't: pull out the centre cleanly at low volumes. The audacity one introduces more and more artefacts the lower the volume gets, so in the past I've had to segment a song into sections and normalize each one to 0db, then do the centre extract, then go back and reduce the volume of all the segments! A huge pain in the arse.
The AI centrecut would be a good first move before extracting things on the sides like drums.
Women there don't treat you mean, in Abilene
Re: Best way to speed match two different audio sources?
Oh, this is so true. I completely forgot to check azimuth, and just a one-sample correction is a game changer! Great advice!Lord Reith wrote: ↑Wed Oct 30, 2024 10:06 pm If the azimuth is not perfect then high frequencies in the centre are affected when you do a centre extract. Even a lag as tiny as one sample will compromise the result.
I know RX has an adaptive azimuth adjuster - that could even be better than simply sliding one channel up or down some samples.
In this case oopsing comes handy, as you can hear what's cancelling out before doing centre removal.
Channel gain is another variable that comes to mind.
I'll slowly find a good workflow for this It surely helps to isolate a side channel before extracting instruments residing there, but I don't want to introduce new artifacts in the process.
- Lord Reith
- Posts: 5485
- Joined: Thu Feb 18, 2021 8:22 am
- Location: BBC House
- Has thanked: 258 times
- Been thanked: 6677 times
Re: Best way to speed match two different audio sources?
It's easier for an algorithm to determine what is common to both channels than to determine the vocals, so removing the centre first makes the job of determining drums etc easier.
Or at least that's how i figure it.
Now can someone please tell me why when I try to use the latest version of spectral temporal aligner I just get a black display after loading the audio? No spectrogram. Just buttons and a blank space where the display should be. I gather there's something wrong with vispy, but since I don't even know what that is I am clueless.
Code: Select all
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'glBindFramebuffer' not found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 469, in _invoke_callback
cb(event)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\scene\canvas.py", line 219, in on_draw
self._draw_scene()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\scene\canvas.py", line 278, in _draw_scene
self.draw_visual(self.scene)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\scene\canvas.py", line 316, in draw_visual
node.draw()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\scene\visuals.py", line 103, in draw
self._visual_superclass.draw(self)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\visuals\visual.py", line 605, in draw
v.draw()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\visuals\visual.py", line 605, in draw
v.draw()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\visuals\visual.py", line 605, in draw
v.draw()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\visuals\visual.py", line 452, in draw
self._vshare.index_buffer)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\visuals\shaders\program.py", line 102, in draw
Program.draw(self, *args, **kwargs)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\program.py", line 543, in draw
canvas.context.flush_commands()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\context.py", line 171, in flush_commands
self.shared.parser.parse([('CURRENT', 0, fbo)])
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 824, in parse
self._parse(command)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 752, in _parse
gl.glBindFramebuffer(gl.GL_FRAMEBUFFER, args[0])
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\_gl2.py", line 55, in glBindFramebuffer
nativefunc = glBindFramebuffer._native = _get_gl_func("glBindFramebuffer", N
one, (ctypes.c_uint, ctypes.c_uint,))
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\gl2.py", line 85, in _get_gl_func
raise RuntimeError('Using %s with no OpenGL context.' % name)
RuntimeError: Using glBindFramebuffer with no OpenGL context.
ERROR: Invoking <bound method SceneCanvas.on_draw of <Canvas (PyQt5) at 0x158231
c8>> for DrawEvent
ERROR:vispy:Invoking <bound method SceneCanvas.on_draw of <Canvas (PyQt5) at 0x1
58231c8>> for DrawEvent
ERROR | Invoking <bound method SceneCanvas.on_draw of <Canvas (PyQt5) at 0x15823
1c8>> for DrawEvent
WARNING: Traceback (most recent call last):
File "C:\spectral align\pyaudiorestoration-master\pytapesynch_gui.py", line 26
7, in <module>
widgets.startup(MainWindow)
File "C:\spectral align\pyaudiorestoration-master\util\widgets.py", line 66, i
n startup
win.show()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 626, in event
out = super(QtBaseCanvasBackend, self).event(ev)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 626, in event
out = super(QtBaseCanvasBackend, self).event(ev)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 928, in paintGL
self._vispy_canvas.events.draw(region=None)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 453, in __call__
self._invoke_callback(cb, event)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 473, in _invoke_callback
self, cb_event=(cb, event))
<< caught exception here: >>
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\_gl2.py", line 116, in glBlendFuncSeparate
nativefunc = glBlendFuncSeparate._native
AttributeError: 'function' object has no attribute '_native'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\gl2.py", line 70, in _get_gl_func
func = getattr(_lib, name)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.
py", line 377, in __getattr__
func = self.__getitem__(name)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.
py", line 382, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'glBlendFuncSeparate' not found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 469, in _invoke_callback
cb(event)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\context.py", line 172, in flush_commands
self.glir.flush(self.shared.parser)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 584, in flush
self._shared.flush(parser)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 506, in flush
parser.parse(self._filter(self.clear(), parser))
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 824, in parse
self._parse(command)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 757, in _parse
getattr(gl, id_)(*args)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\_gl2.py", line 118, in glBlendFuncSeparate
nativefunc = glBlendFuncSeparate._native = _get_gl_func("glBlendFuncSeparate
", None, (ctypes.c_uint, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint,))
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\gl2.py", line 85, in _get_gl_func
raise RuntimeError('Using %s with no OpenGL context.' % name)
RuntimeError: Using glBlendFuncSeparate with no OpenGL context.
WARNING:vispy:Traceback (most recent call last):
File "C:\spectral align\pyaudiorestoration-master\pytapesynch_gui.py", line 26
7, in <module>
widgets.startup(MainWindow)
File "C:\spectral align\pyaudiorestoration-master\util\widgets.py", line 66, i
n startup
win.show()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 626, in event
out = super(QtBaseCanvasBackend, self).event(ev)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 626, in event
out = super(QtBaseCanvasBackend, self).event(ev)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 928, in paintGL
self._vispy_canvas.events.draw(region=None)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 453, in __call__
self._invoke_callback(cb, event)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 473, in _invoke_callback
self, cb_event=(cb, event))
<< caught exception here: >>
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\_gl2.py", line 116, in glBlendFuncSeparate
nativefunc = glBlendFuncSeparate._native
AttributeError: 'function' object has no attribute '_native'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\gl2.py", line 70, in _get_gl_func
func = getattr(_lib, name)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.
py", line 377, in __getattr__
func = self.__getitem__(name)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.
py", line 382, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'glBlendFuncSeparate' not found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 469, in _invoke_callback
cb(event)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\context.py", line 172, in flush_commands
self.glir.flush(self.shared.parser)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 584, in flush
self._shared.flush(parser)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 506, in flush
parser.parse(self._filter(self.clear(), parser))
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 824, in parse
self._parse(command)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 757, in _parse
getattr(gl, id_)(*args)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\_gl2.py", line 118, in glBlendFuncSeparate
nativefunc = glBlendFuncSeparate._native = _get_gl_func("glBlendFuncSeparate
", None, (ctypes.c_uint, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint,))
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\gl2.py", line 85, in _get_gl_func
raise RuntimeError('Using %s with no OpenGL context.' % name)
RuntimeError: Using glBlendFuncSeparate with no OpenGL context.
WARNING | Traceback (most recent call last):
File "C:\spectral align\pyaudiorestoration-master\pytapesynch_gui.py", line 26
7, in <module>
widgets.startup(MainWindow)
File "C:\spectral align\pyaudiorestoration-master\util\widgets.py", line 66, i
n startup
win.show()
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 626, in event
out = super(QtBaseCanvasBackend, self).event(ev)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 626, in event
out = super(QtBaseCanvasBackend, self).event(ev)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\app\backends\_qt.py", line 928, in paintGL
self._vispy_canvas.events.draw(region=None)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 453, in __call__
self._invoke_callback(cb, event)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 473, in _invoke_callback
self, cb_event=(cb, event))
<< caught exception here: >>
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\_gl2.py", line 116, in glBlendFuncSeparate
nativefunc = glBlendFuncSeparate._native
AttributeError: 'function' object has no attribute '_native'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\gl2.py", line 70, in _get_gl_func
func = getattr(_lib, name)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.
py", line 377, in __getattr__
func = self.__getitem__(name)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.
py", line 382, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'glBlendFuncSeparate' not found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\util\event.py", line 469, in _invoke_callback
cb(event)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\context.py", line 172, in flush_commands
self.glir.flush(self.shared.parser)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 584, in flush
self._shared.flush(parser)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 506, in flush
parser.parse(self._filter(self.clear(), parser))
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 824, in parse
self._parse(command)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\glir.py", line 757, in _parse
getattr(gl, id_)(*args)
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\_gl2.py", line 118, in glBlendFuncSeparate
nativefunc = glBlendFuncSeparate._native = _get_gl_func("glBlendFuncSeparate
", None, (ctypes.c_uint, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint,))
File "C:\Users\vip\AppData\Local\Programs\Python\Python37\lib\site-packages\vi
spy\gloo\gl\gl2.py", line 85, in _get_gl_func
raise RuntimeError('Using %s with no OpenGL context.' % name)
RuntimeError: Using glBlendFuncSeparate with no OpenGL context.
ERROR: Invoking <bound method GLContext.flush_commands of <GLContext at 0x158567
48>> for DrawEvent
ERROR:vispy:Invoking <bound method GLContext.flush_commands of <GLContext at 0x1
5856748>> for DrawEvent
ERROR | Invoking <bound method GLContext.flush_commands of <GLContext at 0x15856
748>> for DrawEvent
WARNING: Error drawing visual <vispy.visuals.line.line._GLLineVisual object at 0
x00000000158ED488>
WARNING:vispy:Error drawing visual <vispy.visuals.line.line._GLLineVisual object
at 0x00000000158ED488>
WARNING | Error drawing visual <vispy.visuals.line.line._GLLineVisual object at
0x00000000158ED488>
ERROR: Invoking <bound method SceneCanvas.on_draw of <Canvas (PyQt5) at 0x158231
c8>> repeat 2
ERROR:vispy:Invoking <bound method SceneCanvas.on_draw of <Canvas (PyQt5) at 0x1
58231c8>> repeat 2
ERROR | Invoking <bound method SceneCanvas.on_draw of <Canvas (PyQt5) at 0x15823
1c8>> repeat 2
ERROR: Invoking <bound method GLContext.flush_commands of <GLContext at 0x158567
48>> repeat 2
ERROR:vispy:Invoking <bound method GLContext.flush_commands of <GLContext at 0x1
5856748>> repeat 2
ERROR | Invoking <bound method GLContext.flush_commands of <GLContext at 0x15856
748>> repeat 2
Women there don't treat you mean, in Abilene
-
- Posts: 467
- Joined: Sat Feb 19, 2022 4:56 pm
- Has thanked: 164 times
- Been thanked: 152 times
Re: Best way to speed match two different audio sources?
I would like to help, but I would need the full details per attempt to be able to give useful directions. You can also DM me if you like.