(2014-10-27) [SETI-UFLA-MG] AudioLazy

338 visualizações

Publicada em

Palestra sobre a AudioLazy apresentada na UFLA (Universidade Federal de Lavras), Minas Gerais, no dia 2014-10-27, durante a SETI (Semana de Tecnologia da Informação).

http://seti.compjunior.com.br/

Descrição da palestra:

Distorcendo áudio em tempo real com uma ou poucas linhas de de código! A palestra incluirá exemplos prontos e enfatizará os novos recursos da AudioLazy 0.6, com demonstrações ao vivo. Muito conteúdo de análise, síntese e processamento de áudio, além de psicoacústica, imagens, entre outros.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
338
No SlideShare
0
A partir de incorporações
0
Número de incorporações
35
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

(2014-10-27) [SETI-UFLA-MG] AudioLazy

  1. 1. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG AAuuddiiooLLaazzyy DDaanniilloo ddee JJeessuuss ddaa SSiillvvaa BBeelllliinnii ((DDeesseennvvoollvveeddoorr ddaa AAuuddiiooLLaazzyy)) TTwwiitttteerr:: @@ddaanniilloobbeelllliinnii hhttttppss::////ggiitthhuubb..ccoomm//ddaanniilloobbeelllliinnii//aauuddiioollaazzyy hhttttppss::////ppyyppii..ppyytthhoonn..oorrgg//ppyyppii//aauuddiioollaazzyy hhttttppss::////ggrroouuppss..ggooooggllee..ccoomm//ffoorruumm//##!! ffoorruumm//aauuddiioollaazzyy
  2. 2. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG AAuuddiiooLLaazzyy ● DDSSPP ((DDiiggiittaall SSiiggnnaall PPrroocceessssiinngg)) – AAnnáálliissee – SSíínntteessee – PPrroocceessssaammeennttoo – PPssiiccooaaccúússttiiccaa ● EExxpprreessssiivviiddaaddee ddee ccóóddiiggoo ● TTeemmppoo rreeaall Python 2.7 e 3.2+! Documentação (Sphinx) http://pythonhosted.org/audiolazy 86% py.test branch coverage Cálculo numérico Imagens ... Game: Musical Mines! https://github.com/danilobellini/mmines
  3. 3. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG ““HHeelllloo wwoorrlldd”” ● TTooccaarr uummaa sseennóóiiddee – CCoonnssoollee ((ee..gg.. IIPPyytthhoonn)) – SSccrriippttss Multithread! from from audiolazy audiolazy import 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) 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) ● GGeerreenncciiaaddoorreess ddee ccoonntteexxttoo ALSA/Jack/... via PyAudio (PortAudio) with AudioIO(True, api="jack") as player: # True = wait all audio with AudioIO(True, api="jack") as player: # True = wait all audio player.play(snd, rate=rate) # threads finish player.play(snd, rate=rate) # threads finish
  4. 4. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG IItteerráávveell == ááuuddiioo!! ● CCoonnttrroollSSttrreeaamm – IInntteerraattiivviiddaaddee ● SSttrreeaamm In [1]: data = ControlStream(42) In [2]: data.take(5) Out[2]: [42, 42, 42, 42, 42] 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 [3]: data.value = -1 In [4]: data.take(5) Out[4]: [-1, -1, -1, -1, -1] – LLaazzyy – OOppeerraaddoorreess eelleemmeennttwwiissee//bbrrooaaddccaasstt – MMééttooddooss ttaakkee,, ppeeeekk,, lliimmiitt,, sskkiipp,, mmaapp,, ffiilltteerr ee bblloocckkss In [1]: from audiolazy import Stream, inf, count, cycle # itertools-like In [2]: dados = Stream(-5j, 7j, 1, 1+2j, 5, 3, 2) # Periódico In [3]: dados2 = Stream(0, 2j) # Idem In [4]: (dados * dados2).take(15) Out[4]: [0j, (-14+0j), 0, (-4+2j), 0, 6j, 0, (10+0j), 0j, 2j, 0j, 10j, 0, 4j, 0j] In [5]: (cycle(_).limit(5).imag * 1j + count(start=1, step=2)).take(inf) Out[5]: [(1+0j), (3+0j), (5+0j), (7+2j), (9+0j)] In [1]: from audiolazy import Stream, inf, count, cycle # itertools-like In [2]: dados = Stream(-5j, 7j, 1, 1+2j, 5, 3, 2) # Periódico In [3]: dados2 = Stream(0, 2j) # Idem In [4]: (dados * dados2).take(15) Out[4]: [0j, (-14+0j), 0, (-4+2j), 0, 6j, 0, (10+0j), 0j, 2j, 0j, 10j, 0, 4j, 0j] In [5]: (cycle(_).limit(5).imag * 1j + count(start=1, step=2)).take(inf) Out[5]: [(1+0j), (3+0j), (5+0j), (7+2j), (9+0j)]
  5. 5. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG NNoottaass//AAllttuurraass ee MMIIDDII PPiittcchh ● PPiittcchh ((nnoottaass//aallttuurraass)) ● CCoomm ooiittaavvaass!! – IInniicciiaamm eemm ddóó >>> str2midi("Cb4") == str2midi("B3") True ● MMIIDDII PPiittcchh – EEmm sseemmiittoonnss ● FFuunnççõõeess ppaarraa rreeaalliizzaarr ccoonnvveerrssõõeess – mmiiddii22ssttrr – ssttrr22mmiiddii – ffrreeqq22ssttrr – ssttrr22ffrreeqq – mmiiddii22ffrreeqq – ffrreeqq22mmiiddii C D E F G A B Do Re Mi Fa Sol La Si >>> str2midi("Cb4") == str2midi("B3") True >>> str2midi("A4") # La central 69 >>> str2midi("Bb4") 70 >>> str2midi("C5") 72 >>> str2midi("A4") # La central 69 >>> str2midi("Bb4") 70 >>> str2midi("C5") 72 Outras conversões lag2freq freq2lag phon2dB dB10 dB20
  6. 6. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG LLoouuddnneessss Modelo de Fletcher-Munson (1933) “Loudness, Its Definition, Measurement and Calculation” ISO/FDIS 226:2003 Imagem obtida a partir do exemplo iso226_plot.py
  7. 7. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG AAllttuurraa ((ppiittcchh))!! SShheeppaarrdd ● 22 ddiimmeennssõõeess:: – AAllttuurraa ((ppiittcchh hheeiigghhtt)) ● DDiimmeennssããoo ““lliinneeaarr”” – CCrroommaa ((ppiittcchh cchhrroommaa)) ● DDiimmeennssããoo ““cciirrccuullaarr”” ● LLeemmbbrraa EEsscchheerr →→ EExxeemmpplloo sshheeppaarrdd..ppyy ““HHéélliiccee””
  8. 8. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG DDeemmoonnssttrraattiioonnss ttoo AASSAA ((BBrreeggmmaann)) RRuuííddoo ((eexxppeerriimmeennttoo 3344)) EExxeemmpplloo bbuutttteerrwwoorrtthh__wwiitthh__nnooiissee..ppyy
  9. 9. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG SSíínntteessee ● MMoodduullaaççããoo – RRiinngg//aanneell – AAMM – FFMM ● SSíínntteessee aaddiittiivvaa ● SSíínntteessee ssuubbttrraattiivvaa ● FFoorrmmaass ddee oonnddaa – SSeennooiiddeess – SSaawwttooootthh – TTaabbllee llooookkuupp keyboard.py: GGGSUGSUG LLLPUTSUG ● RRuuííddoo – BBrraannccoo//uunniiffoorrmmee – GGaauussssiiaannoo ● EExxeemmppllooss – FFMM:: mmccffmm..ppyy – SSuubbttrraattiivvaa:: ffoorrmmaannttss..ppyy – AAddiittiivvaa ccoomm sseennooiiddeess:: sshheeppaarrdd..ppyy
  10. 10. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG EEnnvvoollttóórriiaa eessppeeccttrraall FFoorrmmaanntteess MMooddeelloo ffoonnttee--ffiillttrroo ppaarraa aa vvoozz LLPPCC ((LLiinneeaarr PPrreeddiiccttiivvee CCooddiinngg)) CCllaassssiiffiiccaaççããoo ddee vvooggaaiiss ((aannáálliissee ee ssíínntteessee)) llppcc__pplloott..ppyy ffoorrmmaannttss..ppyy
  11. 11. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG AAnnáálliissee ZZCCRR – TTaaxxaa ddee ccrruuzzaammeennttoo nnoo zzeerroo AAMMDDFF – AAvveerraaggee MMaaggnniittuuddee DDiiffffeerreennccee FFuunnccttiioonn ...... ddfftt__ppiittcchh..ppyy zzccrroossss__ppiittcchh..ppyy aanniimmaatteedd__pplloott..ppyy ● DDFFTT ((TTrraannssffoorrmmaaddaa DDiissccrreettaa ddee FFoouurriieerr)) – UUssaannddoo ccoomm NNuummppyy//SScciippyy ● FFuunnççõõeess ddee jjaanneellaammeennttoo – PPrroocceessssaammeennttoo ((SSTTFFTT)) – PPrroojjeettoo ddee ffiillttrrooss
  12. 12. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG FFiillttrrooss LLTTII ((LLiinneeaarreess ee iinnvvaarriiaanntteess nnoo tteemmppoo)) ““DDiiggiittaall ssiiggnnaall pprroocceessssiinngg iiss mmaaiinnllyy bbaasseedd oonn lliinneeaarr ttiimmee--iinnvvaarriiaanntt ssyysstteemmss..”” ((DDuuttiilllleeuuxx,, DDeemmppwwoollff,, HHoolltteerrss ee ZZööllzzeerr DDAAFFxx,, sseegguunnddaa eeddiiççããoo,, ccaappííttuulloo 44,, pp.. 110033))
  13. 13. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG TTrraannssffoorrmmaaddaa ZZ ● DDeeffiinniiççããoo:: ● IInntteerrpprreettaaççããoo:: AAttrraassoo eemm kk aammoossttrraass!! In [1]: from audiolazy import z, inf In [2]: sig = [1, 2, 3, 4, 5, 6, 7] 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 [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]
  14. 14. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG FFiillttrrooss lliinneeaarreess ● SSíínntteessee ssuubbttrraattiivvaa ((ee..gg.. ppllaayy__bbaacchh__cchhoorraall..ppyy)) ● CCoommbb,, rreessssoonnaaddoorr,, ppaassssaa--bbaaiixxaass,, ppaassssaa--aallttaass,, …… ● WWaahh,, kknnoobb gguuiittaarrrraa ((ppaassssaa--bbaaiixxaass RRCC)),, ...... 1 2 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
  15. 15. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG PPrroocceessssaammeennttoo ● DDiissttoorrççããoo ● FFllaannggeerr ● PPhhaasseerr ● WWaahh ● RRoobboottiizzaaççããoo ddee vvoozz ● DDeellaayy ● RReevveerrbb ● …… Arquivos WAV ou ao vivo? STFT! W = window.hann robotize = stft(abs, size=1024, hop=441, wnd=w, ola_wnd=w) W = window.hann robotize = stft(abs, size=1024, hop=441, wnd=w, ola_wnd=w) # Hint: usar também before=None # Hint: usar também before=None # [...] e no io_wire.py raw = pr.record(rate=rate) pr.play(robotize(raw), rate=rate) # [...] e no io_wire.py raw = pr.record(rate=rate) pr.play(robotize(raw), rate=rate)
  16. 16. https://github.com/RicardoBoccoliGallego/DigitalPedalBoard AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG PPeeddaalleeiirraa ffeeiittaa ccoomm aa AAuuddiiooLLaazzyy ++ PPyySSeerriiaall ((ccoomm AArrdduuiinnoo)) ppoorr 44 aalluunnooss ddaa PPoollii--UUSSPP
  17. 17. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG EEmm aannddaammeennttoo...... ● llzz22llvv22 – CCrriiaaççããoo ddee pplluuggiinnss LLVV22 uussaannddoo PPyytthhoonn ++ AAuuddiiooLLaazzyy – AAppeennaass ggeerraaççããoo ddee mmeettaaddaaddooss ((TTuurrttllee)) nnoo mmoommeennttoo ● llzz--pplluuggiinnss--llvv22 – CCoolleettâânneeaa ddee pplluuggiinnss LLVV22 uussaannddoo PPyytthhoonn – AAppeennaass ““rroobboottiizzee”” nnoo mmoommeennttoo LV2 é um padrão de plugins em C/C++ usado por Audacity, Ardour, pedaleira MOD, etc.
  18. 18. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG IImmaaggeennss ffeeiittaass ccoomm aa AAuuddiiooLLaazzyy ++ MMaattPPlloottLLiibb ++ hhiippsstteerrpplloott
  19. 19. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  20. 20. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  21. 21. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  22. 22. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  23. 23. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  24. 24. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  25. 25. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  26. 26. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  27. 27. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  28. 28. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  29. 29. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  30. 30. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG AudioLazy + Matplotlib + “hipsterplot”
  31. 31. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  32. 32. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  33. 33. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  34. 34. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG
  35. 35. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG PPoolliinnôômmiiooss ● BBaasseeaaddooss eemm ddiicciioonnáárriioo In [7]: (x + x ** 2 + x ** -.5)(4) Out[7]: 20.5 In [7]: (x + x ** 2 + x ** -.5)(4) Out[7]: 20.5 – MMeemmóórriiaa – EExxppooeennttee nneeggaattiivvoo ((LLaauurreenntt)) – EExxppooeennttee ffrraacciioonnáárriioo ((ssoommaa ddee ppoottêênncciiaass)) – VVaarriiaanntteess nnoo tteemmppoo ● OObbjjeettoo ““xx”” ● IInntteerrppoollaaççããoo – LLaaggrraannggee In [9]: lagrange.poly([(0, 0), (1, 1)]) Out[9]: x In [10]: lagrange.poly([(0, 0), (1, 1), (2, 2)]) Out[10]: x In [11]: lagrange.poly([(0, 0), (1, 1), (2, 4)]) Out[11]: x^2 In [9]: lagrange.poly([(1, 3), (3, 14), (45, 0)]) Out[9]: -2.89773 + 6.0303 * x - 0.132576 * x^2 In [9]: lagrange.poly([(0, 0), (1, 1)]) Out[9]: x In [10]: lagrange.poly([(0, 0), (1, 1), (2, 2)]) Out[10]: x In [11]: lagrange.poly([(0, 0), (1, 1), (2, 4)]) Out[11]: x^2 In [9]: lagrange.poly([(1, 3), (3, 14), (45, 0)]) Out[9]: -2.89773 + 6.0303 * x - 0.132576 * x^2
  36. 36. AudioLazy –– DDaanniilloo JJ.. SS.. BBeelllliinnii –– @@ddaanniilloobbeelllliinnii SSEETTII // UUFFLLAA –– 22001144--1100--2277 –– LLaavvrraass // MMGG Perguntas ? OObbrriiggaaddoo!! hhttttppss::////ggiitthhuubb..ccoomm//ddaanniilloobbeelllliinnii//aauuddiioollaazzyy

×