plotLocs = False plotOdf = True order = 10 filename = sys.argv[1] frameSize = 1024 frameStep = 256 fftSize = 2048 stream, sampleRate, nframes, nchannels, loader = get_framer_audio( filename, frameSize, frameStep) ffter = loudia.FFT(fftSize) windower = loudia.Window(frameSize, loudia.Window.HAMMING) subplots = { 1: ['mag', 'peaki_mags', 'resid_mag', 'synth_mag', 'traj_mags'], 2: ['phase', 'peak_phases'] } all_processes = set() for values in subplots.values(): all_processes |= set(values) plotSize = fftSize / 4 subplotCount = max(subplots)
#!/usr/bin/env python # Create input import scipy import loudia frameSize = 121 fftSize = 512 sampleRate = 8000 # Loudia's solution # --------------------------------- # w = loudia.Window(frameSize, 0) m = loudia.FFT(fftSize, True) for i in range(100000): a_random = scipy.random.random(frameSize) r_random = m.process(w.process(a_random)) # -------------------------------------------------------- #
frameSize = 128 fftSize = 512 sampleRate = 8000 a_zeros = scipy.zeros(frameSize) a_ones = scipy.ones(frameSize) a_random = scipy.random.random(frameSize) a_sine = scipy.cos(2 * scipy.pi * 440 * scipy.arange(frameSize) / sampleRate + scipy.pi / 4.0) a_sine += (a_random - 0.5) * 1.0 # Loudia's solution # --------------------------------- # window = loudia.Window(frameSize, loudia.Window.HAMMING) fft = loudia.FFT(fftSize) peaks = loudia.PeakDetectionComplex(5, loudia.PeakDetectionComplex.BYMAGNITUDE, 4) r_sine_windowed = window.process(a_sine) r_sine_fft = fft.process(r_sine_windowed) peaks.setCandidateCount(-1) peaks.setSortMethod(loudia.PeakDetectionComplex.BYMAGNITUDE) r_sine_peakpos, r_sine_peakmag, r_sine_peakphase = peaks.process(r_sine_fft) peaks.setCandidateCount(-1) peaks.setSortMethod(loudia.PeakDetectionComplex.BYPOSITION) r_sine_peakpos2, r_sine_peakmag2, r_sine_peakphase2 = peaks.process(r_sine_fft) peaks.setCandidateCount(10)
import loudia plot = False frameSize = 256 fftSize = 512 sampleRate = 8000 a_zeros = scipy.zeros(frameSize) a_ones = scipy.ones(frameSize) a_random = scipy.random.random(frameSize) a_sine = scipy.cos(2 * scipy.pi * 440 * scipy.arange(frameSize) / sampleRate + scipy.pi / 4.0) # Loudia's solution # --------------------------------- # w = loudia.Window(frameSize, loudia.Window.HAMMING) m = loudia.FFT(fftSize, False) n = loudia.IFFT(fftSize, False) r_zeros = n.process(m.process(w.process(a_zeros)))[:, :frameSize] r_ones = n.process(m.process(w.process(a_ones)))[:, :frameSize] r_random = n.process(m.process(w.process(a_random)))[:, :frameSize] r_sine = n.process(m.process(w.process(a_sine)))[:, :frameSize] # -------------------------------------------------------- # x_zeros = w.process(a_zeros) x_ones = w.process(a_ones) x_random = w.process(a_random) x_sine = w.process(a_sine) atol = 1e-6