(2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Processing)
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 188 views

Palestra sobre a AudioLazy na Taubaté Perl Mongers 2014 (encontro de programadores Perl), que ocorreu na Universidade de Taubaté no dia 2014-05-24. ...

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

Statistics

Views

Total Views
188
Views on SlideShare
188
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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
  • 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
  • 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)
  • 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
  • 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
  • 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)
  • 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)
  • 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)
  • 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]]
  • 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)
  • 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]
  • 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
  • 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
  • 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!
  • 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
  • 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
  • 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
  • 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?
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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”
  • 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
  • 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
  • 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...
  • 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
  • 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
  • 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
  • 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
  • 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