Best way to speed match two different audio sources?

Get help or discuss anything relating to audio/video software & hardware
Bambam34
Posts: 214
Joined: Sat Dec 30, 2023 9:31 am
Has thanked: 1 time
Been thanked: 268 times

Re: Best way to speed match two different audio sources?

Post by Bambam34 »

No other version Works this Is the Only Version i Have Tried that i have managed to get It Installed And Working.
User avatar
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?

Post by Lord Reith »

The joys of command line...
Women there don't treat you mean, in Abilene
User avatar
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?

Post by Lord Reith »

nickotina wrote: Wed Oct 30, 2024 7:59 am
Lord Reith wrote: Wed Oct 30, 2024 4:50 am an AI centre extract has just shown up on MVSEPdotcom.
Oh 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 :mrgreen: )
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.

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
nickotina
Posts: 118
Joined: Fri Jan 28, 2022 8:08 am
Has thanked: 66 times
Been thanked: 26 times

Re: Best way to speed match two different audio sources?

Post by nickotina »

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.
Oh, this is so true. I completely forgot to check azimuth, and just a one-sample correction is a game changer! Great advice!

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 :geek: :geek: 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.
User avatar
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?

Post by Lord Reith »

nickotina wrote: Thu Oct 31, 2024 12:15 amIt surely helps to isolate a side channel before extracting instruments residing there, but I don't want to introduce new artifacts in the process.
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
harrylime
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?

Post by harrylime »

Bambam34 wrote: Wed Oct 30, 2024 5:40 pm No other version Works this Is the Only Version i Have Tried that i have managed to get It Installed And Working.
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.
Post Reply