# data[].attributes.attachment_link.title
Modificando Rádio AM FM Para Captar Escuta Aérea

# data[].attributes.attachment_link.title
Alterando Rádio para escutas Aeronaltica ondas Curtas

# data[].attributes.attachment_link.title
TRANSFORMAÇAO DE RADIO FM PARA ESCUTA VHF

# data[].attributes.attachment_link.readable_text
"¡Aaaaaaarrrrrrgggggg!... ¡Este niño es un manazas!... ¡Se ha cargado el receptor de radio que compré ayer!.. ¡El hijo de .... lo ha "fundido" al intentar modificarlo para escuchar a la N.A.S.A.! ¿Será penco el muy ca....?"

Estas fueron las "cariñosas palabras" que me dedicó mi padre cuando, con 7 años de edad, intenté "mejorar" (por llamarlo de alguna manera) el flamante receptor de OM y OC que acababa de comprar en una famosa tienda de electrónica de mi ciudad.

La verdad es que por aquel entonces yo no tenía ni la mas remota idea de lo que hacía, como es fácil deducir. Sin embargo, hacerlo me encantaba, me atraía enormemente.

No os voy a contar las medidas que tomó mi padre para que aquello no volviera a repetirse, aunque os las podéis imaginar. Sin embargo, por muy duras que fueran, no me quitaron las ganas de continuar con mis "experimentos".

Se trata de modificar un receptor de radio, de los que con seguridad todos tenemos alguno en casa, para poder oir la banda aérea (torres de control de aeropuertos, pilotos, etc...), radioaficionados de "dos metros" (144-146 MHz) y toda la banda de VHF hasta llegar incluso a los 170 MHz . ¿Quieres conocer todos los detalles?. Clic en "Leer completo...", por favor.

En un principio quizás te pueda parecer un proyecto muy complicado, pero podemos asegurarte que será muy fácil, más de lo que te imaginas.

Para empezar te diremos que, para llevar a cabo nuestro propósito con éxito, el receptor que nos interesa agenciarnos es un "superheterodino" de tipo analógico, de calidad media (no dan buenos resultados los chinos baratos) y, además, será interesante que tenga un buen amplificador de audio y un altavoz no muy pequeño.

El motivo de advertirte con respecto a esto lo verás conforme avancemos en el artículo y al final del mismo, cuando hayamos acabado nuestro trabajo.

Además de lo anterior, tenemos que conocer aunque sea superficialmente el funcionamiento de este tipo de receptor. Por supuesto que más adelante lo estudiaremos en profundidad, pero ahora necesitamos unas pequeñas nociones de electrónica aplicada a la recepción mediante este sistema.

A continuación puedes ver el diagrama modular o de bloques de un receptor superheterodino. La parte que nos interesa es solo la que origina el llamado "batido de frecuencias". Posiblemente te preguntes de que diablos hablamos.

Lo mejor de esto es que si una de las señales estuviera modulada, la señal resultante conservaría la modulación de la señal original. Este fenómeno se aprovecha en el receptor superheterodino para conseguir una señal de frecuencia fija, llamada "Frecuencia Intermedia" o abreviadamente "F.I.", a partir de cualquiera de las señales captadas por la antena, e independientemente de las frecuencias que tengan estas últimas.

Por ejemplo, todas las señales recibidas en la banda de FM que va de 88 a 108 MHz se convierten a solo 10,7 MHz en la mayoría de receptores, e incluso en los llamados de "doble conversión" la FI se reduce una segunda vez a solo 455 KHz. Como puedes ver la diferencia de frecuencias de las señales recibidas en antena con respecto a las obtenidas mediante el batido es abismal, así como los beneficios que pueden llegar a obtenerse.

Por supuesto que nuestra pretensión no es hacer aquí un estudio completo de este tipo de receptor. Aún no ha llegado ese momento. Pero lo que sí que vamos a hacer es enseñarte los circuitos que debes conocer para poder hacer la modificación que pretendemos con garantía de éxito.

Mira la siguiente ilustración. En resumidas cuentas representa lo que ocurre en el corazón de un receptor superheterodino, es decir, en las etapas correspondientes al batido de frecuencias.

Observa como el llamado "Oscilador Local" produce una señal de RF con un margen de frecuencias que va desde 98,7 hasta 118,7 MHz, justo 10,7 MHz por encima de la banda de FM que queremos recibir (88 a 108 MHz). El alma de este oscilador es un circuito resonante, formado básicamente por una bobina y un condensador variable. A este circuito resonante se le llama comunmente "circuito tanque". En el diagrama superior lo hemos clasificado con el número 2.

Por otra parte, en la etapa amplificadora conectada a la antena existe otro circuito tanque, pero en esta ocasión sintonizado según el margen de frecuencias que se desea recibir, es decir, de 88 a 108 MHz que es la banda comercial de Frecuencia Modulada (FM).

El funcionamiento del circuito es fácil de deducir. La etapa de entrada amplifica la señal de FM recibida por la antena y seleccionada por el circuito tanque Nº 1, y posteriormente la aplica al mezclador. Por otro lado, a dicho mezclador le llega además la señal del oscilador local, que repetimos siempre está 10,7 MHz por encima de la primera.

Ni que decir tiene que ambos circuitos resonantes, o circuitos tanques (como queramos llamarlos), están "sincronizados", de manera que cuando el del amplificador sintoniza los 88 MHz el del oscilador local está produciendo una señal de 98,7 MHz. Si el circuito tanque del amplificador sintoniza los 98,5 MHz, el del oscilador local produce 109,2 MHz. Y si el primero sintoniza los 108 MHz, el segundo produce una señal de 118,7 MHz. Es decir, siempre existe entre las frecuencias de los dos circuitos una diferencia de 10,7 MHz .

Para que esto sea posible, los condensadores de ambos circuitos resonantes tienen el mismo soporte y están gobernados por el mismo eje, de manera que se mueven al unísono. Por esta razón, a este tipo de condensadores variables se les conoce como condensadores variables en "tandem". La linea discontinua que los une en el esquema simboliza esta "sincronía".

A la salida del mezclador, y una vez que ha superado un filtro encargado de "limpiar" la señal, solo queda la llamada "Frecuencia Intermedia" de 10,7 MHz, que es el resultado del batido de las dos señales en juego.

MODIFICAR LA CONVERSIÓN DE FRECUENCIAS
Algo que no hemos dicho aún es que al proceso global de obtención de la F.I. se le llama normalmente como hemos titulado a este subtema, es decir, "Conversión de Frecuencias". Una vez dicho esto pasamos directamente a lo que nos interesa, la modificación. Está compuesta únicamente de dos puntos claves.

Primer punto: Modificar la frecuencia del oscilador local.

Según lo dicho hasta ahora, para que un receptor de este tipo funcione con frecuencias de 118 MHz en adelante lo que tendríamos que hacer, evidentemente, es modificarle su oscilador local para que trabaje de 128,7 MHz en adelante. De esta manera conservaríamos la frecuencia de batido en los 10,7 MHz para la que está preparado el resto del circuito. No sé si lo has pillado.

Por ejemplo, imagínate que lo que queremos lograr es que nuestro equipo reciba un margen de frecuencias de 118 a 150 MHz aproximadamente. Para ello tendremos que hacer trabajar al oscilador local desde 128,7 a 160,7 MHz, siempre conservando la diferencia de la FI, para que a la salida del mezclador tengamos los 10,7 MHz .

Segundo punto: Modificar la banda pasante del amplificador de RF.

Eso es todo lo que tendremos que hacer para disfrutar de un receptor de banda aerea y VHF a partir de uno de FM. Para conseguir nuestro objetivo tenemos varias opciones, desde cambiar las bobinas de los dos circuitos tanque estudiados (el del amplificador y el del oscilador local) hasta, como hemos visto hacer en algún video de Youtube, estirar dichas bobinas para bajar su inductancia y de esta manera subir las respectivas frecuencias de resonancia.

Es sin duda alguna la alternativa más profesional. Se trata de cambiar tanto la bobina del oscilador local como la del amplificador de RF por otras de menor inductancia (con menos espiras), para así subir su frecuencia de resonancia.

Si optamos por esta primera solución no nos queda otra que desmontar las dos bobinas antedichas y colocar en su lugar las nuevas bobinas, las cuales tendrán aproximadamente la mitad o incluso una tercera parte de las espiras que tengan las originales. Creemos que aproximadamente esta cantidad de espiras es un buen punto de partida para comenzar a hacer pruebas.

No obstante, te advertimos que esta solución puede llegar a resultar bastante engorrosa, sobre todo en determinados equipos.

La razón la encontramos en que estos componentes, debido a que pertenecen a circuitos con frecuencias de resonancia muy elevadas, generalmente están recubiertos casi por completo de una sustancia aglomerante, como cera o similar.

Además, para darle más consistencia si cabe, las bobinas incorporan una especie de producto plástico y esponjoso en su interior. Es una manera simple de darle algo más de estabilidad al receptor en cuestión.

Todo ello hace, como hemos adelantado, que la operación sea bastante incómoda de realizar, sobre todo en aquellos equipos en los que el fabricante ha sido muy "generoso" con la cera y con la esponja.

Desde luego, si lo que quieres es hacer un trabajo excelente y deseas que tu receptor se quede definitivamente con el margen de frecuencias que buscamos desde un principio, ésta debe ser tu elección.

No obstante, aunque hayas cambiado las bobinas, si deseas tener de nuevo el receptor de FM original solo tienes que regresar sobre tus pasos y volverle a colocar las bobinas originales. Los inconvenientes con los que te encontrarás son los que ya hemos resaltado anteriormente.

Si prefieres, sin embargo, dejar la puerta abierta a una posible "vuelta a la normalidad" de tu receptor de FM, sin tener que desmontar ningún componente del mismo, y conseguir el margen de frecuencias deseado de una manera infinitamente más sencilla, te damos otra solución.

En un circuito tanque, cuanto mayor sea la inductancia de su bobina más baja será su frecuencia de resonancia. A la inversa, cuanto menor sea la inductancia de esa bobina mayor será la frecuencia a la que resonará el circuito. Por lo tanto, reducir la inductancia de las bobinas de ambos circuitos tanque, ese debe ser nuestro objetivo. ¿Como conseguirlo de forma simple, sin que tengamos que desmontar nada y sin dañar lo más mínimo nuestro receptor?

La inductancia de una bobina produce cierta resistencia al paso de la corriente alterna. Esta resistencia de las bobinas al paso de dichas corrientes se denomina "reactancia inductiva" . A más reactancia inductiva le corresponde más inductancia y a la inversa, a menos reactancia inductiva corresponde una inductancia menor.

Por lo tanto, basta con fabricar un par de pequeñas y sencillas bobinas y colocarlas en paralelo con las existentes en los circuitos tanque del receptor. Como resulta que las bobinas originales están en paralelo con cada una de las secciones del condensador variable usado para el oscilador local y para el amplificador de RF, sabemos ya justo los puntos donde tenemos que colocarlas sin que para ello tengamos que hacer grandes florituras.

Seguro que has adivinado que las nuevas bobinas podemos soldarlas directamente a las patas de conexión del condensador variable (ver la foto adjunta y haz clic en ella para ampliarla en otra ventana).

Observa bien la posición de las bobinas, tanto las originales como las recién instaladas, y fíjate como se han colocado para que sus campos magnéticos se influyan lo menos posible unos a otros.

Con este último método, y si por cualquier razón deseas volver a la configuración original del receptor, solo tendrás que desoldar las bobinas de nuevo y asunto concluido.

Tanto si usas uno u otro sistema para conseguir el resultado buscado, al final deberás ajustar el receptor para las nuevas frecuencias en las que habrá de trabajar.

Para finalizar, debemos comentarte algunas cositas sobre nuestro receptor una vez modificado. Tienes que ser consciente que los mejores resultados los obtendrás mediante la experimentación pura y dura. Es más, lo más probable es que en un principio tu receptor no funcione, pero no te desanimes. Es del todo normal.

Aquellos afortunados que dispongan de generador de R.F. lo tendrán fácil, ya que podrán ajustar el receptor en un abrir y cerrar de ojos. Los que no tengan generador lo tendrán más difícil, aunque no imposible.

Sin embargo, la FM comercial (88 - 108 MHz) usa un ancho de banda de 200 KHz para un nivel de modulación de + - 75KHz y, según normativa europea, dos emisoras contiguas han de separarse 300 KHz una de otra. Esto hace que el rendimiento de nuestro receptor modificado, en cuanto al procesado de la FI y la demodulación, no sea excesivamente bueno para las señales anteriormente comentadas.

Por esta razón te decíamos al principio que para este trabajo nos interesa un receptor con un buen amplificador de B.F. y un altavoz que rinda lo máximo posible, ya que el sonido obtenido al demodular algunas señales será de nivel bajo. Las anteriores características ayudarán un poco a paliar el problema.

Para los que no disponen de generador de RF (imaginamos que la mayoría) podéis hacer un pseudo-ajuste de compromiso de la siguiente manera, siempre teniendo en cuenta que las bobinas originales NO VAN A TOCARSE. Sin embargo, si tocaremos los trimmers (pequeños condensadores) de que dispone el condensador variable en tandem, tanto el del oscilador local como el del amplificador de RF.

Hacer este ajuste sin generador es muy complicado si queremos comenzar en una frecuencia determinada, ya que normalmente las comunicaciones en estas bandas suelen ser esporádicas y además no conocemos su frecuencia exacta, por lo que tendremos muy pocas oportunidades. La recomendación es usar la señal de una emisora de la banda comercial de FM cuya frecuencia sepamos que ronda los 108 MHz y dejar las espiras de la bobina osciladora más separadas de la cuenta (lógicamente perderemos la señal de la emisora) para que la frecuencia de recepción comience sobre 118 MHz (a ojo de buen cubero).

Teniendo en cuenta que la capacidad de sintonía del tandem usado en la mayoría de receptores de FM responde a un coeficiente de 1,25 aproximadamente, y si comenzamos a sintonizar en 118 MHz, al final del dial de nuestro receptor podremos sintonizar frecuencias del orden de los 148 MHz, lo que nos deja una banda que va desde los 118 a los 148 MHz. Si queremos recibir frecuencias superiores tendremos que sacrificar la parte de abajo de la banda, comenzando más arriba de 118 MHz.

El rendimiento de nuestro equipo se verá enormemente acrecentado con el uso de una antena exterior.

Para finalizar, recordarles a todos nuestros suscriptores la posibilidad de dirigirse a nuestro SAT para consultas relacionadas con este artículo. Hasta pronto.

# data[].attributes.attachment_link.keywords[]
escuchar radioaficionados con receptor fm

# data[].attributes.attachment_link.title
Como modificar un receptor de FM para oir la VHF

# data[].attributes.attachment_link.description
"¡Aaaaaaarrrrrrgggggg!... ¡Este niño es un manazas!... ¡Se ha cargado el receptor de radio que compré ayer!.. ¡El hijo de .... lo ha "fundido" al intentar modificarlo para escuchar a la N.A.S.A.! ¿Será penco el muy ca....?"

# data[].attributes.attachment_link.readable_text
I was wondering about on making a sequencer, a big 16 step sequencer was what I wanted to make. To it's full extension with lots of features including single leds for each step, midi input and output, etc. Then I realised that I should start from a more basic model and then maybe tweak around to see what I can do. So while surfing the web and between other small sequencer projects I found this arduino sequencer, named "arduino punk console" after the simple tone output device from the 555 (atari punk console) and using the arduino as the tone generator.
So here goes a simple project which can later be modified and used in different projects, check last step for more detail on stuff to do with this sequencer.
Schematic, code and original idea is from Beavis Audio, everything can be found at there website:
www.beavisaudio.com

Here is a little preview video I made:

Step 1: Materials

The bill of materials to making this project consists in:

X8 Momentary pushbuttons, normally open.

X1 Small Toggle DPDT switch.

X1 LED, whichever color, it's only used to indicate that the Arduino is on and working.

X9 10K resistors.

X4 100K Potentiometers.

X1 Female stereo jack, it can be 3,5mm or a 6,3mm.

X1 Cable.

X1 Enclosure, I just picked up a simple hard plastic box.

X4 Knobs for the pots, only if you wish so.

List of tools to elaborate:

Soldering Iron.

Solder.

Drill.

Tweezers.

Screwdrivers.

Share

Recommendations

PCB Contest

Safe and Secure Challenge

Epilog X Contest

Step 2: Schematic and Wiring

Following the schematic is fairly easy. What we must notice is that the 10K resistors are pull down, this means it's hooked up to ground and it holds the logic signal when no other active device is connected. So you must hook the wire leading to the Arduino pins for the steps from the pushbutton. Arduino pins from digital 10 till 2 go to pushbuttons.
Then connect all buttons together with the pots positive lead and hook it up to 5V. All Resistors go together with pots negative leads and hook it up to ground. Also notice the traditional 100K wiring for the volume, which goes to Arduino digital 11. The pots go hooked up to Arduino analog 0, 1 and 3. Finally a red led goes to Arduino pin digital 12.

*There are two schematics. One that I made on Fritzing and the second one which is much better organised, can be found at beavis audio.

Step 3: Code

The original code comes with a LCD setup for displaying frequency changes. I just deleted that part, but you can get the code with lcd setup here.

/* ======================================================================
Arduino Punk Console
A simple programmable 8 step tone sequencer
by dano/beavisaudio.com
Revs
-----------------------------------
15 Sept djh initial version
======================================================================*/
// Map all the input and output pins
#define AnalogInFrequency 1
#define AnalogInTempo 2
#define AnalogInDuration 0
#define DigitalOutSignal 11
#define DigitalInSwitch0 2
#define DigitalInSwitch1 3
#define DigitalInSwitch2 4
#define DigitalInSwitch3 5
#define DigitalInSwitch4 6
#define DigitalInSwitch5 7
#define DigitalInSwitch6 8
#define DigitalInSwitch7 9
#define DigitalInStartStop 10
#define DigitalOutLED 12
// Set up the array for each step
int steps[] = {100,120,140,160,180,200,220,240};
// misc housekeeping
int duration = 50;
int pitchval = 1;
int fPlayMode = true;
int lastPushedStep = -1;
// Initialize the tempo
int tempo = 100;
void setup()
{
// setup pin modes (Digital pins are input by default, but
// I like to set 'em explicitly just so the code is clear.
pinMode (DigitalInSwitch0, INPUT);
pinMode (DigitalInSwitch1, INPUT);
pinMode (DigitalInSwitch2, INPUT);
pinMode (DigitalInSwitch3, INPUT);
pinMode (DigitalInSwitch4, INPUT);
pinMode (DigitalInSwitch5, INPUT);
pinMode (DigitalInSwitch6, INPUT);
pinMode (DigitalInSwitch7, INPUT);
pinMode (DigitalInStartStop, INPUT);
pinMode (DigitalOutSignal, OUTPUT);
pinMode (DigitalOutLED, OUTPUT);

}

void loop()
{
// Main sequence loop
for (int i=0; i<8; i++)
{
// Are we playing or stopping?
fPlayMode = digitalRead (DigitalInStartStop);
digitalWrite (DigitalOutLED, HIGH);
// Check the Hardware
readSwitches();
readPots();

// update the display
updateDisplay();

// Make the noise
if (fPlayMode)
{
freqout (steps[i], duration);
}
digitalWrite (DigitalOutLED, LOW);

// Pause between steps
delay (tempo);
}
}

void updateDisplay()
{
Serial.print (254, BYTE);
Serial.print (192, BYTE);
Serial.print ("T:");
Serial.print (tempo);
Serial.print (" d:");
Serial.print (duration);
if (lastPushedStep != -1)
{
Serial.print ("*");
Serial.print (lastPushedStep);
}
}
// Read the current values of the pots, called from the loop.
void readPots ()
{
tempo = (analogRead (AnalogInTempo) * 1.9);
duration = (analogRead (AnalogInDuration));
}
// Read the current values of the switches and
// if pressed, replace the switch's slot frequency
// by reading the frequency pot.
void readSwitches()
{
// reset last pushed button number
lastPushedStep = -1;

// check switch 0, if pressed, get the current freq into step 0, etc. etc.
if (digitalRead (DigitalInSwitch0) == HIGH)
{
steps[0] = analogRead(AnalogInFrequency);
lastPushedStep = 1;
}

else if (digitalRead (DigitalInSwitch1) == HIGH)
{
steps[1] = analogRead(AnalogInFrequency);
lastPushedStep = 2;
}

else if (digitalRead (DigitalInSwitch2) == HIGH)
{
steps[2] = analogRead(AnalogInFrequency);
lastPushedStep = 3;
}
else if (digitalRead (DigitalInSwitch3) == HIGH)
{
steps[3] = analogRead(AnalogInFrequency);
lastPushedStep = 4;
}
else if (digitalRead (DigitalInSwitch4) == HIGH)
{
steps[4] = analogRead(AnalogInFrequency);
lastPushedStep = 5;
}
else if (digitalRead (DigitalInSwitch5) == HIGH)
{
steps[5] = analogRead(AnalogInFrequency);
lastPushedStep = 6;
}
else if (digitalRead (DigitalInSwitch6) == HIGH)
{
steps[6] = analogRead(AnalogInFrequency);
lastPushedStep = 7;
}
else if (digitalRead (DigitalInSwitch7) == HIGH)
{
steps[7] = analogRead(AnalogInFrequency);
lastPushedStep = 8;
}
}

//freqout code by Paul Badger
// freq - frequency value
// t - time duration of tone
void freqout(int freq, int t)
{
int hperiod; //calculate 1/2 period in us
long cycles, i;

// subtract 7 us to make up for digitalWrite overhead - determined empirically
hperiod = (500000 / ((freq - 7) * pitchval));

// calculate cycles
cycles = ((long)freq * (long)t) / 1000; // calculate cycles
for (i=0; i<= cycles; i++)
{ // play note for t ms
digitalWrite(DigitalOutSignal, HIGH);
delayMicroseconds(hperiod);
digitalWrite(DigitalOutSignal, LOW);
delayMicroseconds(hperiod - 1); // - 1 to make up for fractional microsecond in digitaWrite overhead
}
}

Step 4: Enclosure

Making holes is very simple but sometimes can be very tedious, especially when theres many holes. I took out a ruler a divided the box into 8, so I could drill 8 holes. After that, above I drilled two holes for the pause switch and the LED. Above 4 Holes for the pots. On the side a hole for the output and beneath a square for the Arduino usb port, so you can feed power through it. After putting everything in there place I slided in some Knobs on the pots and screwed ever component to the plastic box.
To making holes; try all type of drill bits to see what fits better for each component.

Step 5: Wrapping Up

So it's a fun piece of machine, and I wanted to share this nice build so later you can modify it and eventually make something even better. A few ideas on improvement would be; having a led for each step, that you could hold a tone to change it's frequency, have an input so you can send synth based sounds into this little machine, and finally add a MIDI output for using with the computer.
For know, Im going to use some sound effect boxes, which have input and output, so I can listen to the kind off sound generated with the steps.
*All credit goes to beavis audio; who made this project and also wrote the Arduino sketch.

Tobias,

# data[].attributes.attachment_link.description
Arduino Step Sequencer: I was wondering about on making a sequencer, a big 16 step sequencer was what I wanted to make. To it's full extension with lots of features including single leds for each step, midi input and output, etc. Then I realised that I should start from ...

# data[].attributes.headline
Arduino Punk ConsoleA simple programmable 8 step tone sequencer

# data[].attributes.subject
Arduino Punk ConsoleA simple programmable 8 step tone sequencer

# data[].attributes.body
/* ======================================================================
Arduino Punk Console
A simple programmable 8 step tone sequencer
by dano/beavisaudio.com
Revs
-----------------------------------
15 Sept  djh  initial version
======================================================================*/
// Map all the input and output pins
#define AnalogInFrequency 1
#define AnalogInTempo 2
#define AnalogInDuration 0
#define DigitalOutSignal 11
#define DigitalInSwitch0 2
#define DigitalInSwitch1 3
#define DigitalInSwitch2 4
#define DigitalInSwitch3 5
#define DigitalInSwitch4 6
#define DigitalInSwitch5 7
#define DigitalInSwitch6 8
#define DigitalInSwitch7 9
#define DigitalInStartStop 10
#define DigitalOutLED 12
// Set up the array for each step
int steps[] = {100,120,140,160,180,200,220,240};
// misc housekeeping
int duration = 50;
int pitchval = 1;
int fPlayMode = true;
int lastPushedStep = -1;
// Initialize the tempo
int tempo = 100;
void setup()
{
// setup pin modes (Digital pins are input by default, but
// I like to set 'em explicitly just so the code is clear.
pinMode (DigitalInSwitch0, INPUT);
pinMode (DigitalInSwitch1, INPUT);
pinMode (DigitalInSwitch2, INPUT);
pinMode (DigitalInSwitch3, INPUT);
pinMode (DigitalInSwitch4, INPUT);
pinMode (DigitalInSwitch5, INPUT);
pinMode (DigitalInSwitch6, INPUT);
pinMode (DigitalInSwitch7, INPUT);
pinMode (DigitalInStartStop, INPUT);
pinMode (DigitalOutSignal, OUTPUT);
pinMode (DigitalOutLED, OUTPUT);

}

void loop()
{
// Main sequence loop
for (int i=0; i<8; i++)
{
// Are we playing or stopping?
fPlayMode = digitalRead (DigitalInStartStop);
digitalWrite (DigitalOutLED, HIGH);
// Check the Hardware
readSwitches();
readPots();

// update the display
updateDisplay();

// Make the noise
if (fPlayMode)
{
freqout (steps[i], duration);
}
digitalWrite (DigitalOutLED, LOW);

// Pause between steps
delay (tempo);
}
}

void updateDisplay()
{
Serial.print (254, BYTE);
Serial.print (192, BYTE);
Serial.print ("T:");
Serial.print (tempo);
Serial.print (" d:");
Serial.print (duration);
if (lastPushedStep != -1)
{
Serial.print ("*");
Serial.print (lastPushedStep);
}
}
// Read the current values of the pots, called from the loop.
void readPots ()
{
tempo = (analogRead (AnalogInTempo) * 1.9);
duration = (analogRead (AnalogInDuration));
}
// Read the current values of the switches and
// if pressed, replace the switch's slot frequency
// by reading the frequency pot.
void readSwitches()
{
// reset last pushed button number
lastPushedStep = -1;

// check switch 0, if pressed, get the current freq into step 0, etc. etc.
if (digitalRead (DigitalInSwitch0) == HIGH)
{
steps[0] = analogRead(AnalogInFrequency);
lastPushedStep = 1;
}

else if (digitalRead (DigitalInSwitch1) == HIGH)
{
steps[1] = analogRead(AnalogInFrequency);
lastPushedStep = 2;
}

else if (digitalRead (DigitalInSwitch2) == HIGH)
{
steps[2] = analogRead(AnalogInFrequency);
lastPushedStep = 3;
}
else if (digitalRead (DigitalInSwitch3) == HIGH)
{
steps[3] = analogRead(AnalogInFrequency);
lastPushedStep = 4;
}
else if (digitalRead (DigitalInSwitch4) == HIGH)
{
steps[4] = analogRead(AnalogInFrequency);
lastPushedStep = 5;
}
else if (digitalRead (DigitalInSwitch5) == HIGH)
{
steps[5] = analogRead(AnalogInFrequency);
lastPushedStep = 6;
}
else if (digitalRead (DigitalInSwitch6) == HIGH)
{
steps[6] = analogRead(AnalogInFrequency);
lastPushedStep = 7;
}
else if (digitalRead (DigitalInSwitch7) == HIGH)
{
steps[7] = analogRead(AnalogInFrequency);
lastPushedStep = 8;
}
}

//freqout code by Paul Badger
// freq - frequency value
// t - time duration of tone
void freqout(int freq, int t)
{
int hperiod;     //calculate 1/2 period in us
long cycles, i;

// subtract 7 us to make up for digitalWrite overhead - determined empirically
hperiod = (500000 / ((freq - 7) * pitchval));

// calculate cycles
cycles = ((long)freq * (long)t) / 1000;    // calculate cycles
for (i=0; i<= cycles; i++)
{              // play note for t ms
digitalWrite(DigitalOutSignal, HIGH);
delayMicroseconds(hperiod);
digitalWrite(DigitalOutSignal, LOW);
delayMicroseconds(hperiod - 1);     // - 1 to make up for fractional microsecond in digitaWrite overhead
}
}

# data[].attributes.attachment_link.description
Renowned for his kinetic sculptures, Swiss artist Jean Tinguely (1925-1991) created whimsical machine-like contraptions of found metal parts, known as "metamechanics." Tinguely's art expressed his disillusioned view of industry, mass production, and their effect on society and humanity.

# data[].attributes.attachment_link.title
Michele Spanghero "dià" (2016) sound sculpture

# data[].attributes.attachment_link.description
Michele Spanghero "dià" sound sculpture (2016) varnished fiberglass (176x85x283 cm) dià (from greek διά, through) is a sculpture installed on a piece of no man's land on the top of mount Pal Piccolo on the border between Italy and Austria, where World War I was fought.

# data[].attributes.attachment_link.description
Self-made amplified instrument using piezo pickups. An introduction video for an accompaniment DVD of Nicolas Collins' outstanding book "Homemade Electronic Music" (Routledge 2009). http://www.adachitomomi.com/