コード例 #1
0
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)
コード例 #2
0
#!/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))
# -------------------------------------------------------- #
コード例 #3
0
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)
コード例 #4
0
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