def cqt_nsg(self, frame_size=4096): """ invertible CQT algorithm based on Non-Stationary Gabor frames https://mtg.github.io/essentia-labs//news/2019/02/07/invertible-constant-q/ https://essentia.upf.edu/documentation/reference/std_NSGConstantQ.html """ import essentia.pytools.spectral as epy cq_frames, dc_frames, nb_frames = epy.nsgcqgram(self.audio_vector, frameSize=frame_size) return cq_frames
def cqt_nsg(self, frame_size=4096, transitionSize=1024, minFrequency=65.41, maxFrequency=6000, binsPerOctave=48, rasterize='full', phaseMode='global', gamma=0, normalize='none', window='hannnsgcq', params=None): """ invertible CQT algorithm based on Non-Stationary Gabor frames https://mtg.github.io/essentia-labs//news/2019/02/07/invertible-constant-q/ https://essentia.upf.edu/documentation/reference/std_NSGConstantQ.html """ import essentia.pytools.spectral as epy if params is not None: if 'frame_size' in params.keys(): frame_size = params['frame_size'] if 'transitionSize' in params.keys(): transitionSize = params['transitionSize'] if 'minFrequency' in params.keys(): minFrequency = params['minFrequency'] if 'maxFrequency' in params.keys(): maxFrequency = params['maxFrequency'] if 'binsPerOctave' in params.keys(): binsPerOctave = params['binsPerOctave'] if 'rasterize' in params.keys(): rasterize = params['rasterize'] if 'phaseMode' in params.keys(): phaseMode = params['phaseMode'] if 'gamma' in params.keys(): gamma = params['gamma'] if 'normalize' in params.keys(): normalize = params['normalize'] if 'window' in params.keys(): window = params['window'] cq_frames, dc_frames, nb_frames = epy.nsgcqgram( self.audio_vector, sampleRate=self.fs, frameSize=frame_size, transitionSize=transitionSize, minFrequency=minFrequency, maxFrequency=maxFrequency, binsPerOctave=binsPerOctave, rasterize=rasterize, phaseMode=phaseMode, gamma=gamma, normalize=normalize, window=window) return cq_frames