(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazy
(2014-05-02) [Python Nordeste] AudioLazy Band Show
1. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
AudioLazy Band ShowAudioLazy Band Show
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. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
AudioLazyAudioLazy
● DSP (Digital Signal Processing)
– Análise
– Síntese
– Processamento
● Expressividade de código
● Tempo real
Documentação (Sphinx)
http://pythonhosted.org/audiolazy
Python
2.7
Python
2.7
e
3.2+!
e
3.2+!
82% branch coverage
11k+ tests (2k+ por ambiente)
tox + py.test
Cpython 2.7/3.2/3.3/3.4
PyPy
TRAVIS CI!
3. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
ProcessamentoProcessamento
● Filtragem
● Distorção
AudioLazy utiliza
PyAudio
(PortAudio)
Funciona com o
JACK?
4. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
Outros efeitosOutros efeitos
● Flanger
● Phaser
● Wah
● Robotização de voz
● Delay
● Reverb
● Remoção de ruído
...
Pedaleira
de
guitarra?
5. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellinihttps://github.com/RicardoBoccoliGallego/DigitalPedalBoard
PedaleiraPedaleira
feita com afeita com a
AudioLazyAudioLazy
por 4por 4
alunos daalunos da
Poli-USPPoli-USP
6. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
AnáliseAnálise
● Taxa de cruzamento no zero
● DFT (Fourier)
● AMDF
● LPC
● ...
FormantesFormantes
7. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
8. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
SínteseSíntese
● Modulação
– Ring/anel
– AM
– FM
● Síntese aditiva
● Síntese subtrativa
● Formas de onda
– Senoides
– Sawtooth
– Table lookup
● Ruído
– Branco/uniforme
– Gaussiano
● Exemplos
– FM: mcfm.py
– Subtrativa: formants.py
– Aditiva com senoides:
shepard.py
keyboard.py:
GGGSUGSUG
LLLPUTSUG
9. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
Filtros linearesFiltros lineares
● Síntese subtrativa (e.g. play_bach_choral.py)
● Comb, ressonador, passa-baixas, passa-altas, …
● Wah, knob guitarra (passa-baixas RC), ...
filt = 1./9. * (4 - z ** -2) / (1 + .8 * z ** -1 + .4 * z ** -2)
filt.zplot().savefig("zeropolo.pdf")
fcomb = comb.fb(25, .95)
fcomb.plot().savefig("plot-comb.pdf")
filt = 1./9. * (4 - z ** -2) / (1 + .8 * z ** -1 + .4 * z ** -2)
filt.zplot().savefig("zeropolo.pdf")
fcomb = comb.fb(25, .95)
fcomb.plot().savefig("plot-comb.pdf")
1 2
1
2
10. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
Imagens feitas com a AudioLazyImagens feitas com a AudioLazy
11. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
12. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
13. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
14. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
15. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
16. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
17. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
18. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
19. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
20. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
21. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
AudioLazy + Matplotlib + “hipsterplot”
22. AudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobelliniAudioLazy Band Show – 2014-05-02 – Danilo J. S. Bellini – @danilobellini
https://github.com/dhttps://github.com/danilobellini/audiolazyanilobellini/audiolazy
Obrigado!Obrigado!
Perguntas?Perguntas?