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

524 views

Published on

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).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
524
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 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. 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 – AnáliseAnálise ● MIR (MIR (Music Information RetrievalMusic Information Retrieval)) – SínteseSíntese – ProcessamentoProcessamento ● Expressividade de códigoExpressividade de código – Prototipação, simulaçãoPrototipação, simulação ● Tempo realTempo real – Uso em aplicações finaisUso em aplicações finais Documentação (Sphinx) http://pythonhosted.org/audiolazy Documentação (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. 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. 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 world”Hello 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 senóidesenóide – ConsoleConsole (e.g. IPython)(e.g. IPython) – ScriptsScripts ● Gerenciadores deGerenciadores de contextocontexto
  5. 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 dóIniciam em dó – Ignoram a alteraçãoIgnoram a alteração ● ““Cb4” (dó bemol) é a mesmaCb4” (dó bemol) é a mesma nota que B3nota que B3 ● MIDI PitchMIDI Pitch – Define 69 como A4 (láDefine 69 como A4 (lá central), deslocamento emcentral), deslocamento em semitonssemitons ● Funções para realizarFunções para realizar conversõesconversões – midi2strmidi2str – str2midistr2midi – freq2strfreq2str – str2freqstr2freq – midi2freqmidi2freq – freq2midifreq2midi Há conversores além de notas/alturas: freq2lag lag2freq dB10 dB20 phon2dB Há conversores além de notas/alturas: freq2lag lag2freq dB10 dB20 phon2dB
  6. 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 SínteseSíntese ● ModulaçãoModulação – Ring/anelRing/anel – AMAM – FMFM ● Síntese aditivaSíntese aditiva ● Síntese subtrativaSíntese subtrativa ● Formas de ondaFormas de onda – SenoidesSenoides – SawtoothSawtooth – Table lookupTable lookup ● RuídoRuído – 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 Senóide * SenóideSenóide * Senóide Senóide * (1 + Senóide)Senóide * (1 + Senóide) Senóide(Senóide)Senóide(Senóide)
  7. 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 “value”Property “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. 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 ● Síntese em tempo realSíntese em tempo real – Recortes e normalização (geração de arquivos WAV)Recortes e normalização (geração de arquivos WAV) ● KlockworkKlockwork Exemplos no repositório!!! keyboard.py (com tkinter) play_bach_choral.py (com music21) save_and_memoize_synth (wave) Exemplos no repositório!!! keyboard.py (com tkinter) play_bach_choral.py (com music21) save_and_memoize_synth (wave)
  9. 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 ● IterávelIterável ● HeterogêneoHeterogêneo ● Lazy! (Avaliação tardia)Lazy! (Avaliação tardia) ● Operadores (Elementwise/broadcast)Operadores (Elementwise/broadcast) ● Métodos (take, peek, limit, skip, map, filter, blocks)Métodos (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) # Periódico 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) # Periódico 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. 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 Zölzer(Dutilleux, Dempwolf, Holters e Zölzer DAFx, segunda edição, capítulo 4, p. 103)DAFx, segunda edição, capítulo 4, p. 103)
  11. 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 ● Definição:Definição: ● Interpretação:Interpretação: 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. 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 – Média móvelMédia móvel – RessonadoresRessonadores – CombComb – Passa-baixasPassa-baixas – Passa-altasPassa-altas – Gammatone (Patterson-Holdsworth, audição)Gammatone (Patterson-Holdsworth, audição) ● Scipy.signalScipy.signal – ButterworthButterworth – ChebyshevChebyshev – ElípticoElíptico 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. 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 Cálculo numéricoCálculo numérico ● 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 ● Função impulse()Função 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[n−1]+h[ n−2]+δ[ n−1] pi.pypi.py
  14. 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 PercepçãoPercepção ● 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 ● Dependência de contextoDependência de contexto – butterworth_with_noise.pybutterworth_with_noise.py – Ruído baseado noRuído baseado no Demonstrations of AuditoryDemonstrations of Auditory Scene Analysis de A.Scene Analysis de A. BregmanBregman New! New!
  15. 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 dimensões:2 dimensões: – Altura (Altura (pitch heightpitch height)) ● Dimensão “linear”Dimensão “linear” – Croma (Croma (pitch chromapitch chroma)) ● Dimensão “circular”Dimensão “circular” ● Lembra Escher →Lembra Escher → ““Hélice”Hélice”““Hélice”Hélice” shepard.py shepard.py
  16. 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 Série harmônicaSérie harmônica 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. 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 Envoltória espectral comEnvoltória espectral com LPC (Linear Predictive Coding)LPC (Linear Predictive Coding) FormantesFormantes Pode ser utilizado para classificação de vogais (análise e síntese) lpc_plot.py formants.py Pode ser utilizado para classificação de vogais (análise e síntese) lpc_plot.py formants.py
  18. 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 Decomposição cromáticaDecomposição cromática 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 + “equivalência de oitava” Filtros gammatone + “equivalência de oitava” Equivalente?Equivalente?
  19. 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 harmônicoHarmonia, croma, ritmo harmônico
  20. 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 PolinômiosPolinômios ● Baseados em dicionárioBaseados em dicionário – MemóriaMemória – Expoente negativo (Laurent)Expoente negativo (Laurent) – Expoente fracionário (soma deExpoente fracionário (soma de potências)potências) 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” ● Interpolação – Lagrange ● Objeto “x” ● Interpolação – Lagrange
  21. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 + “hipsterplot”AudioLazy + Matplotlib + “hipsterplot”
  33. 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. 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. 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... Distorção.. . Distorção.. . Flanger.. . Flanger.. . Phaser...Phaser... Wah.. . Wah.. .Robotização...Robotização... Delay...Delay... Reverb...Reverb... Compressor...Compressor... Limiter...Limiter... Remoção de ruído...Remoção de ruído...
  36. 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. 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. 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. 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. 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

×