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).
Processamento de tweets em tempo real com Python, Django e Celery - TDC 2014Miguel Galves
O que meio bilhão de pessoas estão fazendo ou pensando neste exato momento? A análise de conteúdo do Twitter por responder a esta pergunta, e a muitas outras.
Varies Ranges : from 0 to 150 mm Wc up to 0 to 600 Bar
Differential (Dead Band) : Fixed (Within 10% of set value)
Temperature Range : -10 to 80 Degree C (for high temperature use of impulse tube is advisable)
Accuracy : +/- 1% to 2% FS
No. of Switches : one no. or, two nos.
Type of Switches : Micro Switches - SPDT
Sensing Element : Diaphragm (PTFE or Neoprene or SS 316) or Piston
Enclosure : Dustproof IP 40, Weatherproof to IP 54 / IP 65 / IP 66, Flameproof
Various Manifolds are necessary during the maintenance of the instruments like Pressure Gauges - Switches & Transmitters, DP Gauges - Switches and Transmitters.
We have various types of Three Valve Manifolds in SS 316, CS, Monel 400 and Hestelloy C material.
Type of Three Valve Manifolds are R type, T type and H type.
Mounting Bracket also can be provided for the manifolds.
Flameproof Pressure Switches are designed as per IS2148 for Gas Gr. IIC Flameproof - CE Certification and approved by a leading European Lab – “BASEEFA” for ATEX & ICEEX certificates
Various Ranges : from 0 to 150 mm Wc upto 0 to 400 Bar
Differential (Dead Band) : Fixed (Within 10% of set value) Or, Adjustable
Sensing Element : Diaphragm (PTFE, Neoprene or, SS 316) or Piston
Enclosure : Flameproof to group IIC
Varieties of Vacuum Switches are available on the basis of the Enclosure like IP 54, IP 54, IP 65 or, IP 66
Adjustable Range : 760 to 100 mm Hg Vacuum
Diaphragm : Teflon or, Neoprene
Pressure Housing MOC : Aluminium, Brass or, SS 316
Features:
Self Adjusting Tracking Radar Programmable (recommended) and Simple push-button calibration Output 4-20 mA/ 20-4mA (Isolated on 4 Wire Model's only ) Optional RS232 OR RS485 For communications with calibration diagnostics & data logging software PL Compatible (Modbus RTU) Three or four Wire Operation
Application:
1) Food and Beverages Water / Wastewater Chemicals with vapors
2) Solids with Dust Powder
Mechanical:
Conduit Entry : 1/2" NPT x 2
Enclosure : Aluminum or S.S-94V0
Ingress Protection : NEMA4 (IP65)Type 4/4X
Environmental:
Temperature : -40to 140 F (-40 to 60 C)
Approvals : FCC Part 15 - Low communication device
Installation category: class II
Process:
Temperature PP Rod : - 40 to 176 F (-40 to 80 c)
De-coupler & PTFE Rod - 40 to 350 F(-40 to 177 c)
Material Dielectric : Er >2
Max. Pressure : 5 bar (without De-coupler)
For very dusty applications divide max. range by two.
After six months of implementation, this is a reflection and lessons learned on the power of working and learning in 'circles' or the new management concept of 'holacracy'
Palestra sobre a AudioLazy no TDC 2014 (the developer's conference) que ocorreu na Universidade Anhembi Morumbi no dia 2014-08-09.
Site do evento: www.thedevelopersconference.com.br/tdc/2014/
Descrição da palestra:
Trata-se de uma exposição prática sobre o que é/faz um DSP (Digital Signal Processing), utilizando recursos da AudioLazy. Os tópicos incluem:
- Processamento: amostra-por-amostra e em blocos, STFT, filtros lineares variantes no tempo, processamento não linear "memoryless", distorção, flanger.
- Análise de áudio: Altura/nota musical, espectro (DFT/FFT/STFT), formantes, LPC, taxa de cruzamento no zero.
- Síntese: Aditiva, modulação (AM/Ring, FM), subtrativa.
- Psicoacústica: filtros gammatone, volume sonoro / loudness em phon e dB SPL (ISO/FDIS 226:2003 e Fletcher-Munson), modelo helicoidal de Shepard.
- Imagem: resposta em frequência, diagrama de polos e zeros, imagens artísticas com DSP de áudio.
- Outros: conversão de valores (nome de nota - altura MIDI - frequência), arquivos WAV e I/O de áudio via PyAudio (PortAudio com ALSA e Jack), cálculo numérico, aspectos gerais da biblioteca, interatividade e uso em jogos.
Processamento de tweets em tempo real com Python, Django e Celery - TDC 2014Miguel Galves
O que meio bilhão de pessoas estão fazendo ou pensando neste exato momento? A análise de conteúdo do Twitter por responder a esta pergunta, e a muitas outras.
Varies Ranges : from 0 to 150 mm Wc up to 0 to 600 Bar
Differential (Dead Band) : Fixed (Within 10% of set value)
Temperature Range : -10 to 80 Degree C (for high temperature use of impulse tube is advisable)
Accuracy : +/- 1% to 2% FS
No. of Switches : one no. or, two nos.
Type of Switches : Micro Switches - SPDT
Sensing Element : Diaphragm (PTFE or Neoprene or SS 316) or Piston
Enclosure : Dustproof IP 40, Weatherproof to IP 54 / IP 65 / IP 66, Flameproof
Various Manifolds are necessary during the maintenance of the instruments like Pressure Gauges - Switches & Transmitters, DP Gauges - Switches and Transmitters.
We have various types of Three Valve Manifolds in SS 316, CS, Monel 400 and Hestelloy C material.
Type of Three Valve Manifolds are R type, T type and H type.
Mounting Bracket also can be provided for the manifolds.
Flameproof Pressure Switches are designed as per IS2148 for Gas Gr. IIC Flameproof - CE Certification and approved by a leading European Lab – “BASEEFA” for ATEX & ICEEX certificates
Various Ranges : from 0 to 150 mm Wc upto 0 to 400 Bar
Differential (Dead Band) : Fixed (Within 10% of set value) Or, Adjustable
Sensing Element : Diaphragm (PTFE, Neoprene or, SS 316) or Piston
Enclosure : Flameproof to group IIC
Varieties of Vacuum Switches are available on the basis of the Enclosure like IP 54, IP 54, IP 65 or, IP 66
Adjustable Range : 760 to 100 mm Hg Vacuum
Diaphragm : Teflon or, Neoprene
Pressure Housing MOC : Aluminium, Brass or, SS 316
Features:
Self Adjusting Tracking Radar Programmable (recommended) and Simple push-button calibration Output 4-20 mA/ 20-4mA (Isolated on 4 Wire Model's only ) Optional RS232 OR RS485 For communications with calibration diagnostics & data logging software PL Compatible (Modbus RTU) Three or four Wire Operation
Application:
1) Food and Beverages Water / Wastewater Chemicals with vapors
2) Solids with Dust Powder
Mechanical:
Conduit Entry : 1/2" NPT x 2
Enclosure : Aluminum or S.S-94V0
Ingress Protection : NEMA4 (IP65)Type 4/4X
Environmental:
Temperature : -40to 140 F (-40 to 60 C)
Approvals : FCC Part 15 - Low communication device
Installation category: class II
Process:
Temperature PP Rod : - 40 to 176 F (-40 to 80 c)
De-coupler & PTFE Rod - 40 to 350 F(-40 to 177 c)
Material Dielectric : Er >2
Max. Pressure : 5 bar (without De-coupler)
For very dusty applications divide max. range by two.
After six months of implementation, this is a reflection and lessons learned on the power of working and learning in 'circles' or the new management concept of 'holacracy'
Palestra sobre a AudioLazy no TDC 2014 (the developer's conference) que ocorreu na Universidade Anhembi Morumbi no dia 2014-08-09.
Site do evento: www.thedevelopersconference.com.br/tdc/2014/
Descrição da palestra:
Trata-se de uma exposição prática sobre o que é/faz um DSP (Digital Signal Processing), utilizando recursos da AudioLazy. Os tópicos incluem:
- Processamento: amostra-por-amostra e em blocos, STFT, filtros lineares variantes no tempo, processamento não linear "memoryless", distorção, flanger.
- Análise de áudio: Altura/nota musical, espectro (DFT/FFT/STFT), formantes, LPC, taxa de cruzamento no zero.
- Síntese: Aditiva, modulação (AM/Ring, FM), subtrativa.
- Psicoacústica: filtros gammatone, volume sonoro / loudness em phon e dB SPL (ISO/FDIS 226:2003 e Fletcher-Munson), modelo helicoidal de Shepard.
- Imagem: resposta em frequência, diagrama de polos e zeros, imagens artísticas com DSP de áudio.
- Outros: conversão de valores (nome de nota - altura MIDI - frequência), arquivos WAV e I/O de áudio via PyAudio (PortAudio com ALSA e Jack), cálculo numérico, aspectos gerais da biblioteca, interatividade e uso em jogos.
Ruby is used for a lot of things, but for some reason, only a few people are using it for music. In a language that is meant to make programming fun, the lack of such creative code is scary. Let's fix the current landscape by learning how to use the tools available in Ruby (and some not) to let those creative juices flow. We will be focusing on how to build sounds from the ground up (the powerful amplitude, and the majestic waveform), so you don't need any prior audio wizardry. Just bring yourself and a Ruby console and we just might create some beautiful music in a beautiful language.
A local virtual signer project, LINNE, is proposed several years ago. However, to process a huge amount of sound-bank data is big problem. Here we make use of the python tool lib., PyMIR and SciKit-Learn, to help us extract the necessary information that needed for a song synthesizer, ex. UTAU.
Simple Data Engineering in Python 3.5+ — Pycon.DE 2017 Karlsruhe — Bonobo ETLRomain Dorgueil
Simple Data Engineering in Python 3.5+ using Bonobo ETL, with real world example using Django2 and DBPedia.
https://www.bonobo-project.org/
Presentation from Pycon.DE 2017 in Karlsruhe
Similar to (2014-05-24) [Taubaté Perl Mongers] AudioLazy Python DSP (Digital Signal Processing) (6)
Slides da palestra "Segurança da Informação - Um apanhado geral sobre criptografia, acesso e vulnerabilidades, incluindo exemplos práticos em Python e Shell" realizada durante a Semana de informática da ETEC Uirapuru, em São Paulo-SP.
O código fonte dos slides (LaTeX, Beamer) pode ser obtido em: https://github.com/danilobellini/slides-latex
(2018-08-25) [Flask Conf] Introdução ao Sanic - O Flask AssíncronoDanilo J. S. Bellini
Slides da palestra "Introdução ao Sanic - O Flask Assíncrono" realizada durante o primeiro Flask Conf, no Developer Hub, em São Paulo-SP.
O código fonte dos slides (LaTeX, Beamer) pode ser obtido em: https://github.com/danilobellini/slides-latex
Segue abaixo a descrição original do conteúdo da palestra:
Sanic é um servidor web assíncrono para o Python com uma sintaxe baseada no Flask, escrito para ser rápido. A proposta é falar do Sanic, realizando comparações entre os frameworks (semelhanças, diferenças, vantagens e desvantagens) aonde cabível.
Tópicos (aproximadamente 10 minutos para cada tópico):
- Do "Hello world" a um serviço com muito JSON! Abordarei rotas, métodos, o módulo response e como iniciar o serviço.
- Listeners, middlewares, tratamento de erros e muito async!
- Exemplo com comunicação assíncrona com o banco de dados (PostgreSQL + SQLAlchemy Core + asyncpgsa) e envolvendo a utilização de recurso bloqueante.
- Websockets, blueprints e extensões.
Nível de dificuldade: voltado para um público que já saiba o básico de Flask e HTTP (métodos/verbos, headers da requisição, código de status de resposta, etc.). O público não precisa saber previamente o que significa "assíncrono".
OS SLIDES ATUALIZADOS ESTÃO NO GITHUB, AQUI NÃO DÁ PARA ATUALIZAR!
Slides da palestra "Números no Python!" realizada durante o primeiro Just Python, na Creditas, em São Paulo-SP.
O código fonte dos slides (LaTeX, Beamer) pode ser obtido em: https://github.com/danilobellini/slides-latex
Segue abaixo a descrição do conteúdo da palestra:
Inteiro? Ponto flutuante? Decimal? Racional! Fracionário? i ou j ... Complexo?! Logaritmo? Mediana?! Variância!!! Pera lá, cê jura que não precisa do Numpy?
O objetivo é falar sobre o que o Python traz que tem a ver com... números!
Isso inclui os seguintes módulos da biblioteca padrão do Python:
- numbers
- math
- cmath
- decimal
- fractions
- random
- statistics
- array
- struct
Além dos built-ins int, float, complex, round, range, divmod e abs, da conversão de números de/para strings, e dos recursos para conversão de objetos em números.
Slides da palestra "AudioLazy no GruPy! (+LV2)" realizada durante o encontro da comunidade Python de São Paulo, na Locaweb, no dia 2017-08-12.
Essa palestra é uma versão extendida da palestra "AudioLazy em 2017!" realizada durante o TDC em julho de 2017.
Segue abaixo a descrição da palestra.
Palestra sobre a AudioLazy, biblioteca Python capaz de processar, sintetizar e analisar sinais iterativamente, em especial sinais de áudio.
Como novidade com relação ao apresentado em eventos anteriores, a proposta é mostrar que é possível criar plugins LV2 (em C) utilizando a AudioLazy (via Python C API).
https://github.com/danilobellini/audiolazy
https://github.com/danilobellini/lz-plugins-lv2
Slides da palestra "Audiolazy em 2017!" realizada durante o TDC 2017 em São Paulo - SP, na Universidade Anhembi Morumbi da Vila Olímpia, no dia 2017-07-22.
A palestra foi realizada em dois momentos, primeiramente durante a trilha Python do evento, e, em seguida, de maneira resumida, como parte da finalização do evento (33:49 do vídeo https://www.eventials.com/Globalcode/tdc-sp-2017-stadium-sabado-11/?playlist=tdconline-sao-paulo-2017-stadium do encerramento na trilha Stadium). Segue abaixo a descrição da palestra.
Um resumo do que é a AudioLazy, biblioteca Python para processamento de sinais capaz de processar, sintetizar e analisar áudio em tempo real.
Esta mini-palestra visa expor os recursos oferecidos pela AudioLazy, com uma ênfase nos resultados possíveis e nos exemplos disponibilizados com o próprio código da biblioteca.
https://github.com/danilobellini/audiolazy
(2017-05-27) [Grupy-SP] Polígonos, pontos e outras geometrias no Shapely (GIS)Danilo J. S. Bellini
Slides da palestra "Polígonos, pontos e outras geometrias no Shapely (GIS)" realizada no encontro do Grupy-SP no Centro de Treinamento da Novatec em São Paulo no dia 2017-05-27.
IPython Notebook (código criado durante a palestra):
https://github.com/danilobellini/notebooks/blob/master/2017-05-27_Shapely.ipynb
Conteúdo abordado (descrição da palestra):
- Breve introdução aos sistemas GIS (Sistema de Informação Geográfica)
- Dados no formato vetorial e os padrões da OGC (Open Geospatial Consortium)
- WKT, WKB e GeoJSON
- Biblioteca Shapely (Python)
- Operações com vetores
- Hands on!
O objetivo dessa palestra é mostrar como lidar com diferentes geometrias (Polygon, MultiPolygon, etc.) com dados em WGS84 (EPSG:4326) interagindo com arquivos GeoJSON (com uma FeatureCollection, uma Feature ou apenas uma geometria).
Slides da palestra "Plugin pytest-doctest-custom v1.0.0" realizada no encontro do Grupy-SP na SciELO em São Paulo no dia 2016-08-13. Ementa da palestra em: https://gist.github.com/danilobellini/b76a36c4fcc946ecb1d6cb92987f30d3
Background feito usando o AudioLazy Python DSP.
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?Danilo J. S. Bellini
Slides da palestra "Projetos Open Source, como colaborar?" realizada no encontro do Grupy-SP no Centro de Treinamento da Novatec em São Paulo no dia 2015-03-14 (pi!). Conteúdo abordado (descrição da palestra):
Discussão sobre possibilidades de colaboração em projetos Open Source, enfatizando projetos que utilizem o Python como linguagem de programação. Temas incluem sites (e.g. GitHub, PyPI); comunicação social; habilidades/técnicas/softwares de comum envolvimento (e.g. TDD, CI, git). Trata-se de um "getting started" p/ aqueles que desejam colaborar em um projeto Open Source, ou mesmo criar algo novo.
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)Danilo J. S. Bellini
Slides do tutorial "Adaptatividade em Python" ministrado no Workshop de Tecnologia Adaptativa de 2015 (WTA2015) na Escola Politécnica da Universidade de São Paulo (Poli-USP) nos dias 2015-01-29 e 2015-01-30.
Código disponível em https://github.com/danilobellini/wta2015
Minicurso/tutorial sobre o py.test e o tox apresentado no Hotel Armação, Porto de Galinhas - Pernambuco, no dia 2014-11-05, durante a PythonBrasil[10].
Descrição do tutorial:
## Tipo
Tutorial
## Trilha
Tools & methodology
## Nível da audiência
Intermediário
## Idioma
Português
## Título
Testando com py.test e tox
## Descrição
Tutorial para o aprendizado sobre o uso prático do pacote py.test para realização de testes de diversos tipos. Tópicos:
- Comportamento básico para coleta e execução de testes;
- Testando exceções;
- Testes parametrizados e seus usos com oráculos, testes aleatórios;
- Cobertura de código com pytest-cov;
- Testando apenas uma parte de uma suíte;
- Integrando com doctests;
- Criando fixtures personalizadas;
- Mock/stub/fake/dummy com a fixture monkeypatch;
- Testando warnings;
- Usando tox para automatizar testes em múltiplos ambientes (e.g. Python 2 e 3);
- Configurações (avançadas) para tempo de coleta e tempo de setup;
- Usando skip, xfail e deseleção para testes que irão falhar;
- Testes envolvendo arquivos temporários;
O tutorial inclui uma breve discussão sobre o que pode ser testado, além de exemplos sobre comparação de ponto flutuante, aproximações e manutenção de resultados para testes que envolvam cálculo numérico ou dados científicos/multimídia.
É necessário levar o computador com o Python instalado (2.7 ou 3.4, preferencialmente ambos), e com o pip (ou algo equivalente) disponível para instalação de pacotes. Pode-se instalar previamente os pacotes pytest, pytest-cov e tox.
O tutorial é voltado para quem já sabe programar em Python. Embora não seja fundamental, é de grande ajuda ter o conhecimento prévio sobre assuntos como gerenciadores de contexto, exceções, decorators, orientação a objetos e arquivos setup.py.
A meta deste tutorial é a utilização/realização prática de testes, sem enfatizar tópicos de "engenharia de software" referentes à importância/relevância da utilização de testes, ou mesmo quanto às suas classificações.
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.
(2013-11-29) [RuPy] AudioLazy Python DSP (Digital Signal Processing)Danilo J. S. Bellini
Slides da palestra apresentada no RuPy 2013, com pequenas correções. Segue abaixo a 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).
Slides da palestra apresentada na LatinoWare 2013. Segue abaixo a descrição da palestra:
Como funciona um afinador de guitarra? E efeitos de uma pedaleira digital (e.g. distorção, wah, flanger, compressor)? Um teclado sintetizador? Essas e outras aplicações para a área de processamento de sinais na atualidade fazem parte desta palestra, com explicações e exemplos práticos preparados. A apresentação serve de introdução à área de processamento de sinais, enfatizando suas aplicações em áudio e utilizando para isso apenas Software Livre, incluindo o PyAudio para gravação e reprodução de áudio, a AudioLazy para síntese e processamento de sinais, o MatPlotLib para exibição de gráficos, o NumPy para FFT e auxílio no processamento em bloco com vetores, e o SciPy para análise e projeto de filtros (subpacotes de otimização e processamento de sinais).
(2013-10-03) [PythonBrasil] AudioLazy, processamento de sinais para música, j...Danilo J. S. Bellini
Slides da palestra realizada no Centro de Convenções Ulysses Guimarães (Brasília - DF) durante o PythonBrasil[9]. Segue abaixo a descrição da palestra:
A AudioLazy é uma biblioteca (pacote) em Python para processamento digital de sinais (DSP) permitindo análise, síntese e processamento de sinais unidimensionais (áudio) em tempo real através de estruturas expressivas tais como transformadas Z (engenharia elétrica, teoria de controle), processamento tardio descrito como fluxo de informação, objetos (e.g. filtros, sinais, etc.), sobrecarga de operadores (somar sinais, multiplicar sinal por um ganho constante, etc.), etc.. A palestra introduzirá parte das funcionalidades do pacote através de exemplos práticos prontos (síntese FM, síntese subtrativa, áudio para games, afinador de instrumentos musicais, etc.), incluindo exemplos de tarefas secundárias possíveis com o pacote (e.g. cálculo numérico, geração de imagens).
(2013-09-30) [PythonBrasil] Síntese em tempo real com a AudioLazyDanilo J. S. Bellini
Slides do treinamento de 8 horas realizado na ESAF (Escola Fazendária, Brasília - DF) durante o PythonBrasil[9]. Segue abaixo a descrição do treinamento:
A AudioLazy é um pacote escrito em puro Python que permite DSP (Digital Signal Processing) expressivo e em tempo real.
Além dos fundamentos teóricos e uma explicação do funcionamento básico do pacote, serão vistos tanto na teoria como na prática diversos modelos de síntese:
- AM
- FM
- Aditiva
- Subtrativa
Outros elementos de processamento do áudio serão vistos, tais como a utilização de filtros LTI e diferentes maneiras de distorcer o som sintetizado.
Um dos desafios será a elaboração de um software que permita interatividade durante a síntese.
Aqueles que forem participar com seu próprio computador, recomenda-se o uso de fones de ouvido.
O pacote PyAudio é um requisito para a utilização dos componentes de I/O da AudioLazy. É recomendado que os pacotes já estejam instalados previamente.
Slides da palestra apresentada na LatinoWare 2013. Segue abaixo o texto da proposta original realizada para o evento:
Mostra-se exemplos do que se pode conseguir com plug-ins de Python para o GIMP - e um roteiro de como criar seu próprio script Python para automatizar várias tarefas.
No mundo de edição de imagens é comum termos várias tarefas repetitivas - as vezes é necessário abrir centenas de imagens para executar um único filtro, em cada uma - Ou, partindo de um elemento de texto em uma imagem, aplicar mais de uma dezena de efeitos no texto até chegar no resultado desejado - e a cada mudança no texto, ter que repetir todo o processo.
Para esses e outros problemas, os aplicativos gráficos - e o GIMP não é exceção, possuem métodos de se fazer scripts - pequenos programas - em uma linguagem de programação que permita a automação desses passos.
Esta palestra mostra como fazer isso com a linguagem Python - que também é uma linguagem de automação usada pelo Inkscape, Blender 3D, Scribus e Libreoffice, dentre outros aplicativos.
(2013-10-02) [PythonBrasil] Compatibilidade entre Python 2 e 3Danilo J. S. Bellini
Apresentação realizada durante a PythonBrasil[9]. Segue abaixo a descrição da palestra:
Mudanças na especificação da linguagem fizeram o Python 3 incompatível com parte do código escrito para o Python 2.
Algumas dessas incompatibilidades podem ser facilmente resolvidas através de traduções, sejam elas automáticas ou não.
Porém, muitas dessas traduções trazem consigo uma incompatibilidade com a versão de origem do código (o Python 2, neste caso), o que nem sempre é desejável.
É possível manter um único código compatível com o ambos o Python 2 e 3?
Esta atividade se propõe a responder essa pergunta, e enfatizará os problemas e soluções que levaram à elaboração do módulo lazy_compat da AudioLazy (e.g. metaclasses, arredondamento de ponto flutuante).
Slides da apresentação realizada no fisl no dia 2013-07-05. A apresentação incluiu um Prepared Kata, cujo código encontra-se disponível em:
https://github.com/danilobellini/fisl14
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Climate Impact of Software Testing at Nordic Testing Days
(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
– 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. 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 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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!
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. 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. 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. 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. 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. 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 + “hipsterplot”AudioLazy + 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...
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. 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