(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Processing)

download (2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Processing)

If you can't read please download the document

description

Palestra sobre a AudioLazy na Taubaté Perl Mongers 2014 (encontro de programadores Perl), que ocorreu na Universidade de Taubaté no dia 2014-05-24. Site do evento: http://perl.taubate.me/ Descrição da palestra: Análise/síntese/processamento de sinais 1D (áudio) em tempo real através de estruturas expressivas como transformadas Z, fluxo de informação, filtros/sinais como objetos c/ operadores, etc.. A palestra introduzirá parte da AudioLazy através de exemplos prontos (e.g. síntese p/ games, afinador de guitarra), incluindo outras tarefas possíveis c/ o pacote (e.g. cálculo numérico, geração de imagens).

Transcript of (2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Processing)

  • 1. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini AudioLazy Python DSPAudioLazy Python DSP (Digital Signal Processing)(Digital Signal Processing) Danilo de Jesus da Silva BelliniDanilo de Jesus da Silva Bellini (AudioLazy developer)(AudioLazy developer) https://github.com/danilobellini/audiolazyhttps://github.com/danilobellini/audiolazy https://pypi.python.org/pypi/audiolazyhttps://pypi.python.org/pypi/audiolazy

2. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini AudioLazyAudioLazy DSP (DSP (Digital Signal ProcessingDigital Signal Processing) para udio) para udio AnliseAnlise MIR (MIR (Music Information RetrievalMusic Information Retrieval)) SnteseSntese ProcessamentoProcessamento Expressividade de cdigoExpressividade de cdigo Prototipao, simulaoPrototipao, simulao Tempo realTempo real Uso em aplicaes finaisUso em aplicaes finais Documentao (Sphinx) http://pythonhosted.org/audiolazy Documentao (Sphinx) http://pythonhosted.org/audiolazy Python 2.7 e 3.2+! Python 2.7 e 3.2+! 83% branch coverage 12k+ tests (2k+ por ambiente) tox py.test CPython 2.7/3.2/3.3/3.4 PyPy Travis CI + Coveralls 83% branch coverage 12k+ tests (2k+ por ambiente) tox py.test CPython 2.7/3.2/3.3/3.4 PyPy Travis CI + Coveralls 3. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Talk is cheap.Talk is cheap. Show me the code.Show me the code. (Linus Torvalds)(Linus Torvalds) 4. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Hello worldHello world from audiolazy import * rate = 44100 s, Hz = sHz(rate) player = AudioIO() snd = sinusoid(440 * Hz).limit(2 * s) th = player.play(snd, rate=rate) # an AudioThread player.close() # Kill th (AudioIO arg isn't true) from audiolazy import * rate = 44100 s, Hz = sHz(rate) player = AudioIO() snd = sinusoid(440 * Hz).limit(2 * s) th = player.play(snd, rate=rate) # an AudioThread player.close() # Kill th (AudioIO arg isn't true) with AudioIO(True) as player: # Wait threads player.play(snd, rate=rate) with AudioIO(True) as player: # Wait threads player.play(snd, rate=rate) Multithread! Multithread! Tocar umaTocar uma senidesenide ConsoleConsole (e.g. IPython)(e.g. IPython) ScriptsScripts Gerenciadores deGerenciadores de contextocontexto 5. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Notas/Alturas e MIDI PitchNotas/Alturas e MIDI Pitch Pitch (notas/alturas)Pitch (notas/alturas) C, D, E, F, G, A, BC, D, E, F, G, A, B Do, Re, Mi, Fa, Sol, La, SiDo, Re, Mi, Fa, Sol, La, Si OitavasOitavas Iniciam em dIniciam em d Ignoram a alteraoIgnoram a alterao Cb4 (d bemol) a mesmaCb4 (d bemol) a mesma nota que B3nota que B3 MIDI PitchMIDI Pitch Define 69 como A4 (lDefine 69 como A4 (l central), deslocamento emcentral), deslocamento em semitonssemitons Funes para realizarFunes para realizar conversesconverses midi2strmidi2str str2midistr2midi freq2strfreq2str str2freqstr2freq midi2freqmidi2freq freq2midifreq2midi H conversores alm de notas/alturas: freq2lag lag2freq dB10 dB20 phon2dB H conversores alm de notas/alturas: freq2lag lag2freq dB10 dB20 phon2dB 6. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini SnteseSntese ModulaoModulao Ring/anelRing/anel AMAM FMFM Sntese aditivaSntese aditiva Sntese subtrativaSntese subtrativa Formas de ondaFormas de onda SenoidesSenoides SawtoothSawtooth Table lookupTable lookup RudoRudo Branco/uniformeBranco/uniforme GaussianoGaussiano ExemplosExemplos FM: mcfm.pyFM: mcfm.py Subtrativa: formants.pySubtrativa: formants.py Aditiva com senoides:Aditiva com senoides: shepard.pyshepard.py keyboard.py: GGGSUGSUG LLLPUTSUG keyboard.py: GGGSUGSUG LLLPUTSUG Senide * SenideSenide * Senide Senide * (1 + Senide)Senide * (1 + Senide) Senide(Senide)Senide(Senide) 7. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini InteratividadeInteratividade ControlStreamControlStream Property valueProperty value Permite interatividadePermite interatividade Tempo realTempo real In [1]: data = ControlStream(42) In [2]: data.take(5) Out[2]: [42, 42, 42, 42, 42] In [3]: data.value = -1 In [4]: data.take(5) Out[4]: [-1, -1, -1, -1, -1] In [1]: data = ControlStream(42) In [2]: data.take(5) Out[2]: [42, 42, 42, 42, 42] In [3]: data.value = -1 In [4]: data.take(5) Out[4]: [-1, -1, -1, -1, -1] mcfm.py (com wxPython) mcfm.py (com wxPython) 8. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini ExemplosExemplos HardwareHardware Arduino via PySerialArduino via PySerial JogosJogos Campo minadoCampo minado Sntese em tempo realSntese em tempo real Recortes e normalizao (gerao de arquivos WAV)Recortes e normalizao (gerao de arquivos WAV) KlockworkKlockwork Exemplos no repositrio!!! keyboard.py (com tkinter) play_bach_choral.py (com music21) save_and_memoize_synth (wave) Exemplos no repositrio!!! keyboard.py (com tkinter) play_bach_choral.py (com music21) save_and_memoize_synth (wave) 9. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Classe StreamClasse Stream ItervelItervel HeterogneoHeterogneo Lazy! (Avaliao tardia)Lazy! (Avaliao tardia) Operadores (Elementwise/broadcast)Operadores (Elementwise/broadcast) Mtodos (take, peek, limit, skip, map, filter, blocks)Mtodos (take, peek, limit, skip, map, filter, blocks) In [1]: from audiolazy import Stream, inf In [2]: dados = Stream(5, 7, 1, 2, 5, 3, 2) # Peridico In [3]: dados2 = Stream(0, 1) # Idem In [4]: (dados + dados2).take(15) Out[4]: [5, 8, 1, 3, 5, 4, 2, 6, 7, 2, 2, 6, 3, 3, 5] In [5]: (_ * Stream(1 + 2j, -3j, 7).imag).map(int).take(inf) Out[5]: [2.0, 0.0, 14] In [1]: from audiolazy import Stream, inf In [2]: dados = Stream(5, 7, 1, 2, 5, 3, 2) # Peridico In [3]: dados2 = Stream(0, 1) # Idem In [4]: (dados + dados2).take(15) Out[4]: [5, 8, 1, 3, 5, 4, 2, 6, 7, 2, 2, 6, 3, 3, 5] In [5]: (_ * Stream(1 + 2j, -3j, 7).imag).map(int).take(inf) Out[5]: [2.0, 0.0, 14] In [1]: data = Stream(range(7)) In [2]: blks = data.blocks(size=3, hop=2) In [3]: [list(blk) for blk in blks] Out[3]: [[0, 1, 2], [2, 3, 4], [4, 5, 6]] In [1]: data = Stream(range(7)) In [2]: blks = data.blocks(size=3, hop=2) In [3]: [list(blk) for blk in blks] Out[3]: [[0, 1, 2], [2, 3, 4], [4, 5, 6]] 10. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Filtros LTIFiltros LTI (Lineares e invariantes no tempo)(Lineares e invariantes no tempo) Digital signal processing is mainlyDigital signal processing is mainly based on linear time-invariantbased on linear time-invariant systems.systems. (Dutilleux, Dempwolf, Holters e Zlzer(Dutilleux, Dempwolf, Holters e Zlzer DAFx, segunda edio, captulo 4, p. 103)DAFx, segunda edio, captulo 4, p. 103) 11. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Transformada ZTransformada Z Definio:Definio: Interpretao:Interpretao: AtrasoAtraso em kem k amostras!amostras! In [1]: from audiolazy import z, inf In [2]: sig = [1, 2, 3, 4, 5, 6, 7] In [3]: (z ** -2)(sig).take(inf) Out[3]: [0.0, 0.0, 1, 2, 3, 4, 5] In [4]: (1 - z ** -2)(sig).take(inf) Out[4]: [1.0, 2.0, 2, 2, 2, 2, 2] In [1]: from audiolazy import z, inf In [2]: sig = [1, 2, 3, 4, 5, 6, 7] In [3]: (z ** -2)(sig).take(inf) Out[3]: [0.0, 0.0, 1, 2, 3, 4, 5] In [4]: (1 - z ** -2)(sig).take(inf) Out[4]: [1.0, 2.0, 2, 2, 2, 2, 2] 12. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Filtros prontos!Filtros prontos! AudioLazyAudioLazy Mdia mvelMdia mvel RessonadoresRessonadores CombComb Passa-baixasPassa-baixas Passa-altasPassa-altas Gammatone (Patterson-Holdsworth, audio)Gammatone (Patterson-Holdsworth, audio) Scipy.signalScipy.signal ButterworthButterworth ChebyshevChebyshev ElpticoElptico Filtros variantes no tempo! Coeficientes (fatores a em parcelas a * z ** -k) podem ser objetos Stream) Filtros variantes no tempo! Coeficientes (fatores a em parcelas a * z ** -k) podem ser objetos Stream) JIT!JIT! lptv.py gammatone_plots.pylptv.py gammatone_plots.py XX XX Sympy?Sympy? inearFilter.zplot inearFilter.zplot 13. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Clculo numricoClculo numrico h[0] = 0h[0] = 0 h[1] = 1h[1] = 1 h[n] = h[n-1] + h[n-2]h[n] = h[n-1] + h[n-2] Entrada [0, 1, 0, 0, 0, 0, ...] aplicado a esse filtro digitalEntrada [0, 1, 0, 0, 0, 0, ...] aplicado a esse filtro digital Funo impulse()Funo impulse() In [2]: (z ** -1 / (1 - z ** -1 - z ** -2))(impulse(zero=0, ...: one=1), zero=0).take(17) Out[2]: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] In [2]: (z ** -1 / (1 - z ** -1 - z ** -2))(impulse(zero=0, ...: one=1), zero=0).take(17) Out[2]: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] h[n]=h[n1]+h[ n2]+[ n1] pi.pypi.py 14. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini PercepoPercepo Equal loudness com ISO/FDIS 226:2003 iso226_plot.pyiso226_plot.py Baseado na tabela do anexoBaseado na tabela do anexo A da normaA da norma Dependncia de contextoDependncia de contexto butterworth_with_noise.pybutterworth_with_noise.py Rudo baseado noRudo baseado no Demonstrations of AuditoryDemonstrations of Auditory Scene Analysis de A.Scene Analysis de A. BregmanBregman New! New! 15. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Altura (pitch)Altura (pitch) R. ShepardR. Shepard 2 dimenses:2 dimenses: Altura (Altura (pitch heightpitch height)) Dimenso linearDimenso linear Croma (Croma (pitch chromapitch chroma)) Dimenso circularDimenso circular Lembra Escher Lembra Escher HliceHliceHliceHlice shepard.py shepard.py 16. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Srie harmnicaSrie harmnica Filtro combFiltro combFiltro combFiltro comb comb(25, .95).plot().show()comb(25, .95).plot().show() animated_plot.py dft_pitch.py play_bach_choral.py animated_plot.py dft_pitch.py play_bach_choral.py 17. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Envoltria espectral comEnvoltria espectral com LPC (Linear Predictive Coding)LPC (Linear Predictive Coding) FormantesFormantes Pode ser utilizado para classificao de vogais (anlise e sntese) lpc_plot.py formants.py Pode ser utilizado para classificao de vogais (anlise e sntese) lpc_plot.py formants.py 18. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Decomposio cromticaDecomposio cromtica from audiolazy import * rate = 44100 s, Hz = sHz(rate) note = "A4" freqs = octaves(str2freq(note)) bw = lambda f: erb(f) * gammatone_erb_constants(4)[0] filt = ParallelFilter(gammatone(f*Hz, bw(f)*Hz) for f in freqs) filt.plot(samples=8192, rate=rate, freq_scale="log").show() from audiolazy import * rate = 44100 s, Hz = sHz(rate) note = "A4" freqs = octaves(str2freq(note)) bw = lambda f: erb(f) * gammatone_erb_constants(4)[0] filt = ParallelFilter(gammatone(f*Hz, bw(f)*Hz) for f in freqs) filt.plot(samples=8192, rate=rate, freq_scale="log").show() Filtros gammatone + equivalncia de oitava Filtros gammatone + equivalncia de oitava Equivalente?Equivalente? 19. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Harmonia, croma, ritmo harmnicoHarmonia, croma, ritmo harmnico 20. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini PolinmiosPolinmios Baseados em dicionrioBaseados em dicionrio MemriaMemria Expoente negativo (Laurent)Expoente negativo (Laurent) Expoente fracionrio (soma deExpoente fracionrio (soma de potncias)potncias) In [5]: (x + x ** 2 + x ** -.5)(4) Out[5]: 20.5 In [6]: lagrange.poly([(0, 0), (1, 1)]) Out[6]: x In [7]: lagrange.poly([(0, 0), (1, 1), (2, 2)]) Out[7]: x In [8]: lagrange.poly([(0, 0), (1, 1), (2, 4)]) Out[8]: x^2 In [9]: lagrange.poly([(1, 3), (3, 14), (45, 0)]) Out[9]: -2.89773 + 6.0303 * x - 0.132576 * x^2 In [5]: (x + x ** 2 + x ** -.5)(4) Out[5]: 20.5 In [6]: lagrange.poly([(0, 0), (1, 1)]) Out[6]: x In [7]: lagrange.poly([(0, 0), (1, 1), (2, 2)]) Out[7]: x In [8]: lagrange.poly([(0, 0), (1, 1), (2, 4)]) Out[8]: x^2 In [9]: lagrange.poly([(1, 3), (3, 14), (45, 0)]) Out[9]: -2.89773 + 6.0303 * x - 0.132576 * x^2 Objeto x Interpolao Lagrange Objeto x Interpolao Lagrange 21. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Imagens feitas com a AudioLazyImagens feitas com a AudioLazy 22. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 23. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 24. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 25. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 26. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 27. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 28. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 29. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 30. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 31. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 32. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini AudioLazy + Matplotlib + hipsterplotAudioLazy + Matplotlib + hipsterplot 33. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 34. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 35. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini AudioLazy utiliza PyAudio (PortAudio) JACK! AudioLazy utiliza PyAudio (PortAudio) JACK! Pedaleira de guitarra? Pedaleira de guitarra? Filtragem...Filtragem... Distoro.. . Distoro.. . Flanger.. . Flanger.. . Phaser...Phaser... Wah.. . Wah.. .Robotizao...Robotizao... Delay...Delay... Reverb...Reverb... Compressor...Compressor... Limiter...Limiter... Remoo de rudo...Remoo de rudo... 36. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini https://github.com/RicardoBoccoliGallego/DigitalPedalBoardhttps://github.com/RicardoBoccoliGallego/DigitalPedalBoard Pedaleira feita com a AudioLazy por 4 alunos da Poli-USP Pedaleira feita com a AudioLazy por 4 alunos da Poli-USP 37. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 38. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 39. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 40. Taubat Perl Workshop 2014 Taubat Perl Workshop 2014 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini 2014-05-24 AudioLazy Python DSP (Digital Signal Processing) Taubat SP Danilo J. S. Bellini @danilobellini Obrigado!Obrigado! Perguntas?Perguntas? Fork me on GitHubFork me on GitHub https://github.com/danilobellini/audiolazyhttps://github.com/danilobellini/audiolazy