
Esse programa é igual ao sintetizador anterior mas o objeto notein foi substituÃdo pelo objeto pd com argumento midi. O objeto pd cria uma janela nova (chamado de subpatch). Seu propósito é permitir separação de código para facilitar a leitura do programa. Seu parâmetro pode ser qualquer nome que descreve sua funcionalidade.

Esse subpatch pega os outlets de nota e de velocidade do objeto noteout e só permiti a saÃda deles se a saÃda de velocidade não for 0 ou se a saÃda for 0 e a nota for a mesma que a nota tocada anteriormente.
Nesse subpatch temos quatro objetos novos. O objeto f ou float controla números. Nele temos dois inlets. Quando o da direita é acionada com um número este será carregado na memória do objeto. Quando o da esquerda é acionado com um bang o número em sua memória sairá pelo outlet. Quando o da esquerda é acionado com um número este sairá pelo outlet e será carregado na memória do objeto. também existe o objeto symbol que se comporta da mesma forma mas com o symbols em vez de números.
O objeto t ou trigger recebe como parâmetro tipos de valores (bang/b, float/f, s/symbol, a/anything) e cria um outlet para cada argumento do tipo designado. Quando o inlet é acionado todos os outlets serão acionados na ordem convencional.
O objeto sel ou select recebe como parâmetro números e/ou symbols. Para cada argumento do parâmetro ele cria um novo outlet. Quando o inlet é acionado com um valor igual ao um dos argumentos, seu outlet é acionado. O sel sempre terá um outlet a mais que fica na direita. Quando o valor do inlet não corresponde ao um argumento ele sairá por este outlet. Neste subpatch temos dois objetos sel. Um verifica se a velocidade for igual a 0 e outro se a nota acionada for igual à nota anterior.
O objeto outlet cria uma saida nova. outlets são organizados horizontalmente. O outlet da esquerda corresponde com o outlet da esquerda no objeto pd no subpatch pai do subpatch que este objeto outlet se encontra. A convenção do pure data quando todos os outlets de um subpatch são acionados ao mesmo tempo é sempre acionar eles de direita pra esquerda. O objeto inlet se comporta da mesma forma mas para inlets, também existe os objetos outlet~ e inlet~ que funcionam com sinais. Neste subpatch temos dois outlets. O primeiro corresponde à nota tocada e o segundo à velocidade.
