Pi Day: DIY celebration | Dia do Pi: celebração Faça-Você-Mesmo

[english version below - please scroll]

Pi Day CountdownO Dia do Pi celebra-se em todo o mundo a 14 de Março (3.14 no formato amerciano de datas) e há imensas razões para celebrar esta entidade matemática extraordinária. E há também muitas formas de o fazer.

No último episódio do podcast mostrei uma experiência musical feita a partir do Pi, recorrendo ao Pure Data e prometi explicações também em português e a disponibilização do patch. Cá está: diadopi-final.zip simplificado e comentado em português.

Mas, primeiro, as explicações que tinha dado só em inglês.

2 professoras de Matemática (a minha mãe e uma colega) pediram-me para conceber alguma forma de representação musical de Pi para ser usada no Dia do Pi em escolas do básico. Usei, obviamente, o Pure Data para fazer várias experiências.

Usei alguns princípios simples.
Como Pi é uma dízima infinita não periódica, a sequência de casas decimais pode ser lida, algarismo a algarismos e mapeada para que cada algarismo corresponda a uma nota musical. Teríamos assim uma escala de 10 notas que o Pure Data pode “tocar” lendo os algarismos como uma partitura.

Se escolhermos uma sequência longa, como 1 milhão de casas decimais de Pi, e a passarmos por qualquer sintetizador ou sampler teremos a representação musical ou sonora dessa sequência infinita e não periódica.

Para assegurar algum interesse musical e não “assustar” o público em geral, escolhi mapear os algarismos de acordo com a escala pentatónica maior (as teclas pretas do piano, que produzem uma espécie de escala chinesa), já que esta escala garante uma coesão harmónica grande e a possibilidade de sobrepôr mais do que uma série, sem criar dissonâncias. Como a escala tem 5 notas, usei-a estendida em 2 oitavas e estabeleci uma pulsação rítmica regular.

Assim, o Pure Data lê o milhão de algarismos de Pi e toca-os, um de cada vez. O mapeamento faz corresponder a cada algarismo uma nota MIDI, que é convertida em frequência (para poder reorganizar a escala em qualquer altura) e torna-se audível através dum sintetizador básico, com modulação de amplitude e de frequência, com um ligeiro ar de percussão metálica. Adiciona-se a isso um envelope ASR e um gerador de ruído para dar alguma cor e a base está feita. Esta é a sequência mais rápida que se ouve na faixa do podcast. Mas houve-se igualmente uma segunda sequência, ou voz, mais lenta. Acrescentei isso para testar alguma variação, por isso uso a mesma sequência e mapeamento, mas a um ritmo 4 vezes mais lento e com uma forma de onda mais simples. A escolha da pentatónica torna tudo mais fácil e o resultado final tem um efeito de “escala/dimensão” que também tem interesse no contexto Matemático: usando diferentes abordagens podemos encontrar “escondidos” na sequência de algarismos, variadíssimos “significados” (nomes, números de telefone e BI) como se demonstra no Atractor.

O resultado em qualquer uma das fases tem o seu interesse e quem quiser experimentar tem todo o meu apoio.

No podcast há umas “suspensões” a cada minuto que resultam de variações introduzidas por outros factores, para mostrar algumas das possibilidades do patch.

E, como tinha anunciado, o meu patch Pi Day Pure Data está disponível para quem quiser usar. Podem descarregá-lo aqui: Dia do Pi: Pure Data patch

É uma versão simplificada, só com a sequência principal e está comentado em Português. É relativamente fácil de usar (fiz o teste com a minha mãe) e permite a representação audível e visível do Pi.

Para usarem, precisam de:

  1. Descarregar e instalar o Pure Data
    É livre, gratuito e existe para todas as plataformas. Os instaladores são simples. Aconselho a última versão estável do pd-extended (0.39.3 por agora). É só descarregar, descomprimir, abrir o instalador e seguir as instruções.
  2. Descarregar e descomprimir o meu ficheiro diadopi-final.zip para um sítio relevante no vosso computador
    Devem ficar com uma pasta chamada diadopi-final com 4 ficheiros lá dentro (diadopi.pd, pi.txt, fftscope.pd e oscscope.pd)
  3. Abrir o patch diadopi.pd (um duplo click e está)
    Vão ficar com 2 janelas do PD abertas: o patch e a consola. Certifiquem-se de que a opção compute audio está seleccionada na consola.
  4. Seguir os passos do patch (as instruções têm números):
    1. Canto superior esquerdo – clicar em table pi
      Cria uma tabela para receber os valores de Pi. A janela que aparece pode ser fechada ou minimizada.
    2. Clicar em pi resize 1e+06…
      Redimensiona a tabela para albergar 1 milhão de entradas e carrega o ficheiro pi.txt. pi.txt é 1 milhão de casas decimais de Pi, separadas por parágrafos.
    3. Clicar no botão para reinicializar os valores base
      Pode usar este botão em qualquer altura para voltar ao primeiro algarismo da sequência, indpendentemente da sequência estar parada ou em andamento.
    4. No canto inferior direito, uma barra vertical – Controlo do Volume
      Pode alterar o volume em qualquer altura. O = MUTE. 1 = MAX.
    5. Acima de 4 – clicar em pd montra
      Vai abrir uma nova janela onde poderá ver uma representação do que irá acontecer. Cada algarismo “acende” uma luz diferente nos quadrados negros e tem um osciloscópio e o gráfico FFT. Mantenha esta janela visível.
    6. No cimo, ao centro – clicar no quadrado acima de metro
      Vai iniciar a sequência à velocidade base de 176.8 milisegundos para cada nota. A sequência de 1 milão de algarismos demora 48 horas. Pode parar e reiniciar a sequência em qualquer altura clicando neste botão.

Se alguma coisa (ou tudo) fallhar, pode entrar em contacto comigo, através dos comentários.

Se quiser editar alguma coisa, vá ao menu Edit > Edit Mode (ctrl+e) e experimente à vontade. A alteração do tempo (metro), da escala base (notas MIDI), da configuração geomátrica da montra, assim como alguns parâmetros dos 3 osciladores usados deve ser relativamente simples. Se quiser usar este exemplo para se iniciar no Pure Data, fico muito contente. Vá experimentando e familiarize-se com o menu Help.

E, se quiser, pergunte coisas. Eu só responderei ao que souber e puder. ;)

Feliz Dia do P!

– english:

As announced, my Pi Day Pure Data patch is available for anyone to use.
You can download it here: Dia do Pi: Pure Data patch

It’s a slightly simpler version (one sequence only) and it’s commented (Portuguese only, sorry). It’s fairly simple to use (as far as I can tell) and it allows a simultaneous audible and a visible representation of Pi.

To use it, you’ll need:

  1. Download and install Pure Data
    It’s freely available for every platform and the installers are straight-forward. I advise the latest stable release of pd-extended (0.39.3 as of this writing). It should be a matter of downloading, uncompressing, double-clicking an installer and following instructions.
  2. Download and uncompress my zipped file diadopi-final.zip to a convenient location on your computer
    You should have a folder named diadopi-final with 4 files inside (diadopi.pd, pi.txt, fftscope.pd and oscscope.pd)
  3. Open my diadopi.pd patch (double-clicking it should do)
    You’ll have 2 PD windows: the patch and the console. Make sure compute audio is enable in the console window.
  4. Follow the patch steps (look for the numbered instructions):
    1. Upper left corner – click table pi
      Generates a table to receive Pi values and you can close the table window that opens at this time.
    2. Below 1 – click pi resize 1e+06…
      Resizes the table to hold one million entries and loads pi.txt into it. pi.txt is one million digits of Pi, separated by paragraphs.
    3. Below 2 (the square button) – Resets initial values
      You can use this button at any time to go back to the first digit of the sequence, either stopped or playing.
    4. Lower right corner (vertical slider) – Sets volume
      You can change the volume at any time. O = MUTE. 1 = MAX.
    5. Above 4 – click pd montra
      This will open a new window where you will be able to see a simple graphical representation of what’s happening. Digits of Pi light up different squares and you have an oscilloscope and an FFT graph. Keep this window visible.
    6. Up center, click the square button above metro
      This starts the sequence at a default speed of 176.8 milliseconds for each note. It will take 48 hours to complete the sequence of one million digits. You can stop and resume at any time pressing the same button.

If anything (or everything) fails, you can reach me through the comments at this post.

If you want to edit something, you’ll have to go to Edit > Edit Mode (ctrl+e) and you’re free to experiment. Changing default time, musical scales (using MIDI values), the geometrical configuration of montra and some parameters of the 3 oscillators should be fairly simple. If you want to use this example to start to learn Pure Data, I’ll be thrilled. Just play around and get to know the Help section.

And feel free to ask questions. I’ll feel free to answer only when possible. ;)

Happy Pi Day!