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!

Routine Check: RC#20080305 – Pi Day Variation 1

Pi Day CountdownPi Day is celebrated worldwide every March, 14 (3.14 in American date format) and there are a lot of reasons to celebrate such an amazing mathematical entity. And there are also many ways to celebrate it.

I’ve been asked to design some form of musical representation and/or celebration of Pi to be used at local schools by a couple of Math teachers (my mother and one of her colleagues) and I’ve been doing several experiments with Pure Data (the perfect tool for Math and Music relations).
The basic principles I’m using are simple.
Pi is an irrational number, meaning it will continue infinitely without repeating, so you can read it as a non repeating sequence of all 10 digits (0, 1, 2, 3 , 4, 5 ,6, 7, 8, 9). If you map every digit (0, 1, 2, 3 , 4, 5 ,6, 7, 8, 9) to a specific musical note or sound you can have Pure Data “playing” Pi, simply by reading each digit at a time.
You can choose a long sequence, such as one million digits of Pi and feed it to any sort of synth or sample player and you’ll have a musical or sonic representation of that infinite non repeating sequence.

For the sake of musical interest and not to “scare” general public, I’ve chosen to map each digit to a note on the major pentatonic scale (the “Chinese” effect of playing the black keys of the piano), since it guarantees a certain overall harmony and the possibility of overlapping several series without dissonance. I’ve used a 2 octave range to have all 10 digits matching a different pitch and then I’ve established a pulse to have rhythmic regularity. This way Pure Data fetches the million digits of Pi and plays them, one at a a time. The mapping makes every digit send a MIDI note that gets converted to frequency (this way I can rearrange the scale at any time) and made audible through a simple modular synth, with amplitude and frequency modulation, that might resemble some metallic percussion. A discrete envelope filter and a noise generator to give it some color and the basis is done. That’s the faster sequence you hear on this track, but you’ll also notice a second, slower one. That’s because I wanted to add something, so I’ve added a second layer where Pure Data is also reading and playing Pi, also with the same pitch mapping, but 4 times slower and with a simpler sine wave. The pentatonic comes in handy here, and the end result has a “scaling” effect also relevant in the Mathematical context: if you use different approaches to the “meaning” of the sequence, you can find pretty much anything embedded into it— your name, your phone number, your ID number (check this Portuguese site).

The result at any stage can be interesting, in my opinion, and I’ll be making different variations of the original Pure Data patch available to anyone interested. For this Routine Check podcast episode I’ve decided to take a third period (a more structural thing) and add a small “suspension” every minute or so, and then end it with a slight twist (you’ll have to hear it).

If you want to use this sample in your own Pi Day celebration, feel free (feedback and credits are welcomed). But if you want a “broader” experience, I can send you the Pure Data patch with instructions. You’ll be able to study and alter it, and you’ll have a working example, where the digits show up in sequence, and the apparent patterns are not only audible, but visible.

Special thanks to Miguel Cardoso, for his help with Pure Data and my mother Rosa Amélia Martins, for the mathematical input.

Post-Scriptum: have you noticed that Pi Day and Pure Data share the same initials?