Saltar navegación

Usando makenote

O seguinte paso é poder controlar algo máis eses movementos en lugar de que sexan aleatorios. Para isto imos introducir un obxecto chamado makenote.

Este obxecto utilizase moito cando queremos crear notas nun protocolo musical coñecido como MIDI indicándolle, ademais da altura, a intensidade desa nota e a duración, ben escribindo dous valores no interior do obxecto, ben mediante caixas numéricas ou mensaxes conectadas na segunda e terceira entradas.

Polo xeral en Pure Data podes dar uns valores fixos dentro dun obxecto, pero cando recibe pola entrada correspondente un novo valor ese substitue ao anterior.

Con makenote cada vez que facemos clic no valor de entrada esquerda devolve pola saída esquerda ese mesmo valor e pola dereita o segundo valor que se manterá durante o tempo indicado no terceiro valor.

Funcionamento de makenote

Isto é moi útil cando queremos facer notas musicais, por exemplo conectando un tipo piano que envíe datos MIDI. Cada vez que toco unha tecla chega o número da nota (altura), a forza coa que se toca (intensidade) e cando deixo de tocar (duración).

Nos non imos entrar aquí en detalles sobre este protocolo xa que o utilizaremos dun xeito diferente para indicarlle ao servo cando queremos que se mova, a que valor queremos que chegue e canto tempo queremos que espere antes de regresar.

Por iso makenote neste exemplo non utiliza a entrada esquerda con caixa de números variable. Aquí so activa o servo mentres o valor do medio determina se fai un percorrido maior ou menor e no da dereita indicamos canto espera o servo para regresar 0.

Makenote con servo

O noso patch quedaría parecido parecido ao da unidade anterior pero con algunha modificación para introducir o makenote.

O servo controlado cun metro a través do obxecto makenote

Neste caso, cada 803 milisegundos, o metro envía ao makenote o número 1 aloxado no obxecto int, abreviado como i,e que é un obxecto que almacena números enteiros.

Con cada pulso se crea unha "nota" ou mensaxe co segundo valor de makenote para que o servo actúe e vaia á posición indicada na primeira cifra que acompaña a makenote ou, no seu defecto, a que lle indiquemos na segunda entrada do obxecto. Manterase nese valor o tempo indicado na segunda cifra ou o que lle digamos a través da terceira entrada do obxecto.

A continuación dividimos co obxecto correspondente (/) este valor por 100 para que se mova no rango do servo que, como comentamos antes, é de 0 a 1, e lle suma 0.01 para que nunca chegue a cero porque isto ás veces pode forzar o mecanismo do servo.

Animación de servo controlado coa opción makenote

Podes decargar aquí o patch para probar as diferentes posibilidades cambiando os valores.