Update audio_nodes.py

This commit is contained in:
David Marx
2023-12-31 23:41:10 -08:00
committed by GitHub
parent 9c576dea50
commit d6649cc7bd
+81 -22
View File
@@ -1,5 +1,5 @@
from .audio_utils import simple_signal_operations
#from typing import Callable
from typing import Callable
import numpy as np
import librosa
@@ -7,60 +7,119 @@ import librosa
CATEGORY = "AudioReactive"
# class SimpleSignalOperation:
# CATEGORY=CATEGORY
# RETURN_TYPES=("SIGNAL",)
# FUNCTION = "main"
class SimpleSignalOperation:
CATEGORY=CATEGORY
RETURN_TYPES=("SIGNAL",)
FUNCTION = "main"
# f: Callable = None # lazy abstract method
f: Callable = None # lazy abstract method
# @classmethod
# def INPUT_TYPES(cls):
# outv = {
# "required": {
# "signal": ("SIGNAL",{}),
# }
# }
# return outv
@classmethod
def INPUT_TYPES(cls):
outv = {
"required": {
"signal": ("SIGNAL",{}),
}
}
return outv
# def main(self, signal, **kargs):
# y, sr = signal.get("y"), signal.get("sr")
# y, sr = self.f(y, sr)
# return {"y":y, "sr":sr)
def main(self, signal, **kargs):
y, sr = signal.get("y"), signal.get("sr")
y, sr = self.f(y, sr)
return {"y":y, "sr":sr}
# simple_signal_operations = {
# 'raw': lambda y, sr: y,
# ##########
# 'rms': lambda y, sr: normalize(librosa.feature.rms(y=y).ravel(), sr),
# 'novelty': librosa.onset.onset_strength,
class OpNovelty:
f = simple_signal_operations['rms']
# 'predominant_pulse': librosa.beat.plp,
class OpNovelty:
f = simple_signal_operations['rms']
# 'bandpass': bandpass,
class OpNovelty:
f = simple_signal_operations['rms']
# 'harmonic': lambda y, sr: librosa.effects.harmonic(y=y),
class OpNovelty:
f = simple_signal_operations['rms']
# 'percussive': lambda y, sr: librosa.effects.percussive(y=y),
class OpNovelty:
f = simple_signal_operations['rms']
# ##########
# 'pow2': lambda y, sr: y**2,
class OpNovelty:
f = simple_signal_operations['rms']
# 'stretch': stretch,
class OpNovelty:
f = simple_signal_operations['rms']
# 'sqrt': sqrt,
class OpNovelty:
f = simple_signal_operations['rms']
# 'smoosh': smoosh,
class OpNovelty:
f = simple_signal_operations['rms']
# 'pow':_pow,
class OpNovelty:
f = simple_signal_operations['rms']
# #################
# 'smooth': smooth,
class OpNovelty:
f = simple_signal_operations['rms']
# 'sustain': sustain,
class OpNovelty:
f = simple_signal_operations['rms']
# # #########
# 'normalize': normalize,
class OpNovelty:
f = simple_signal_operations['rms']
# 'abs': lambda y, sr: np.abs(np.abs(y)),
class OpNovelty:
f = simple_signal_operations['rms']
# 'threshold': threshold,
class OpNovelty:
f = simple_signal_operations['rms']
# 'clamp': clamp,
class OpNovelty:
f = simple_signal_operations['rms']
# 'modulo': modulo,
class OpNovelty:
f = simple_signal_operations['rms']
# 'quantize':quantize,
class OpNovelty:
f = simple_signal_operations['rms']
# }
# can i just metaclass this?
#class OpRms(SimpleSignalOperation):
class OpRms:
class OpRms(SimpleSignalOperation):
# 'rms': lambda y, sr: normalize(librosa.feature.rms(y=y).ravel(), sr),
#class OpRms:
f = simple_signal_operations['rms']
#class SimpleSignalOperation:
CATEGORY=CATEGORY
RETURN_TYPES=("SIGNAL",)