print(parent_path) name = "piano33" W, fps = read_wav(f"{parent_path}/Python/Samples/{name}.wav") W = W[100103:100775] W = W - np.average(W) amplitude = np.max(np.abs(W)) W = W / amplitude n = W.size print(n) X = np.arange(n) pulses = signal_to_pulses(W) areas_X, areas_Y = get_pulses_area(pulses) pos_pulses, neg_pulses, pos_noises, neg_noises = split_pulses(pulses) pos_X, neg_X = np.array([p.x for p in pos_pulses ]), np.array([p.x for p in neg_pulses]) pos_Y, neg_Y = np.array([p.y for p in pos_pulses ]), np.array([p.y for p in neg_pulses]) pos_L, neg_L = np.array([p.len for p in pos_pulses ]), np.array([p.len for p in neg_pulses]) '''pos frontier''' scaling = np.average(pos_L) / np.average(pos_Y) for p in pos_pulses: p.y = p.y * scaling
afp = [ [1, 5, 1.4 * np.pi], [1.5, 10, 1.4 * np.pi], # [1, 2 * 6, 1.4 * np.pi] ] for a, f, p in afp: C += a * np.cos( p + 2 * np.pi * f * X / n) #+ np.random.normal(0, a / 100, n) C = -C / np.max(np.abs(C)) W = E * C '''Wave to pulses''' pulses = signal_to_pulses(C) pulses_X, pulses_Y = get_pulses_area(pulses) ftc = np.abs(np.fft.rfft(C)) Xc = [] Yc = [] for x, y in enumerate(ftc): Xc.append(x), Xc.append(x), Xc.append(None) Yc.append(0), Yc.append(y), Yc.append(None) ftc = np.abs(np.fft.rfft(W)) Xw = [] Yw = [] for x, y in enumerate(ftc): Xw.append(x), Xw.append(x), Xw.append(None) Yw.append(0), Yw.append(y), Yw.append(None) '''============================================================================'''