Nueva versión de la guía para el módulo 1

En esta sección encontrarás lo fundamental para desarrollar un sonido sintético usando tu computador como un instrumento musical. Además de poder construir una escala musical pitagórica y compararla con una escala bien temperada.


modulo1_generación_sonido_digital

Licencia de Creative Commons

Modulo1_generacion_sonido by FreeAudioLab is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License. Creado a partir de la obra en freeaudiolab.wordpress.com.

Bacata_osc_PB12 Pista de audio CC

http://www.freesound.org/embed/sound/iframe/152906/simple/large/

This work was done with field recordings from the city of Bogotá, different days at different times have been recorded the sounds of the Plaza de Bolivar in the center of the city. The project has many layers, with multiple processes such as looping, filters, pitch shift, etc. .. This audio is being developed for the workshop on “the city in its acoustic dimension”, directed by Jorge Haro, musician and sound artist from Argentina.
————————————–
Este trabajo fue hecho con grabaciones de campo de la ciudad de Bogotá, distintos días en diferentes momentos se han registrado los sonidos de la Plaza de Bolivar en el centro de la ciudad. El proyecto tiene muchas capas, con múltiples procesos como el looping, filtros, cambio de tono, etc .. Este audio se estaba desarrollando para el taller de “la ciudad en su dimensión acústica”, dirigido por Jorge Haro, músico y artista sonoro de la Argentina.

Rutina ARDUINO No. 5 Tren de tonos aleatorios- duración ajustable

// TREN DE TONOS CON FRECUENCIA ALEATORIA DURACIÓN AJUSTABLE
// Este programa controla el sonido emitido usando la funcion TONE, a partir de un número pseudo-aleatorio, 
// conectando los extremos entre tierra y los 5V, y su pata central en el pin análogo A0 
// se controla la duración de un tren de pulsos que se emiten por un pequeño parlante conectado al pin digital 13 y a tierra.
// El parámetro temporal de la duración de cada pulso se controla por el potenciometro.
// sencilla rutina preparada para el proyecto FreeAudioLab- por Johan Bocanegra. https://freeaudiolab.wordpress.com

int sensorPin = A0;    // seleccione el pin de lectura del sensor
int soundPin = 13;      // seleccione el pin para emitir el sonido
int sensorValue = 0;  // variable para almacenar la lectura del sensor
int randNumber=0;    // variable para almacenar el número aleatorio
int ledPin= 6;       // Seleccione el pin del LED de operación

void setup() {

  pinMode(ledPin, OUTPUT);  
  pinMode(soundPin, OUTPUT);      // declara los pines de salida
}

void loop() {

  sensorValue = analogRead(sensorPin);     // lee el valor del sensor
  randNumber = random(1024); // genera un número pseudo-aleatorio
  noTone(13);		
    analogWrite(ledPin, sensorValue /4);    // Ajusta la intensidad del LED de operación
  tone(soundPin, randNumber/2,sensorValue*2); // genera un tono de frecuencia aleatoria, con duración proporcional al valor del sensor
delay(sensorValue*2);        // espera un lapso de tiempo

}

Rutina ARDUINO No. 4 Tren de tonos con frecuencia ajustable

// GENERADOR DE ONDAS CON AJUSTE DE FRECUENCIA Y LED DE INTENSIDAD VARIABLE
// Este programa controla el sonido emitido usando la funcion tone, a partir de la lectura de un potenciometro, 
// conectando los extremos entre tierra y los 5V, y su pata central en el pin análogo A0 
// se controla la frecuencia, 0hz - 1024hz, de un tren de pulsos que se emiten por un pequeño parlante conectado al pin digital 13 y a tierra.
// El parámetro temporal de la duración de cada pulso, y del tiempo entre pulsos y pulso se varía desde esta rutina.
// Adicionalmente se controla desde el mismo sensor la intensidad de un LED usando la función ANALOGWRITE
// sencilla rutina preparada para el proyecto FreeAudioLab- por Johan Bocanegra. https://freeaudiolab.wordpress.com

int sensorPin = A0;    // seleccionar la entrada para el sensor
int soundPin = 13;      // seleccionar el pin para la generación del tono
int ledPin = 11;        // seleccionar un pin que permita usar la opcion PWM
int sensorValue = 0;  // variable para almacenar el valor de la lectura del potenciometro
int timer = 200;      // seleccionar el parámetro temporal

void setup() {
  // declara los pines como salidas:
  pinMode(soundPin, OUTPUT);  
  pinMode(ledPin, OUTPUT);    
}

void loop() {
  // Lee el valor del sensor:
  sensorValue = analogRead(sensorPin);    
  noTone(13);		
    analogWrite(ledPin, sensorValue / 4);    // Prende el LED con una intensidad proporcionar al valor del sensorhe LED on
  tone(soundPin, sensorValue, timer);   // genera un tono de frecuencia igual al valor del sensor, y de una duración igual al parámetro timer
delay(timer);  // espera durante un tiempo
}

Rutina ARDUINO No.3 Tren de tonos con frecuencia y duración ajustable

La siguiente rutina permite controlar desde un potenciometro el tono y la duración de un tren de tonos. El prototipo cuenta con LED de operación.

// TREN DE TONOS Y DURACIÓN VARIABLE Y LED DE OPERACIÓN
// Este programa controla el sonido emitido usando la funcion tone, a partir de la lectura de un potenciometro, 
// conectando los extremos entre tierra y los 5V, y su pata central en el pin análogo A0 
// se controla la frecuencia de un tono, 0hz - 1024hz, seguido por otro tono con justo la mitad de la frecuencia del original
// un tren de pulsos que se emiten por un pequeño parlante conectado al pin digital 13 y a tierra.
// El parámetro temporal se multiplica por el valor del sensor de modo que la duración de cada pulso depende del sensor.
// Adicionalmente un LED conectado al pin 12 titila con la emisión de cada pulso.
// sencilla rutina preparada para el proyecto FreeAudioLab- por Johan Bocanegra. https://freeaudiolab.wordpress.com

int sensorPin = A0;    // seleccione el pin para lectura del potenciometro
int soundPin = 13;      // seleccione el pin por el que se emiten los tonos
int ledPin = 12;        // seleccione el pin de conexión para el LED de operación
int sensorValue = 0;  // variablble para almacenar la lectura del potenciometro
int timer = 200;      // variable que controla la duración del pulso, milisegundos. 

void setup() {
  // declara los pines como SALIDAS:
  pinMode(soundPin, OUTPUT);  
  pinMode(ledPin, OUTPUT);    
}

void loop() {
  // Lee el valor del sensor:
  sensorValue = analogRead(sensorPin);    
  noTone(13);		
  digitalWrite(ledPin, HIGH);   // prende el LED
  tone(soundPin, sensorValue, timer * sensorValue); //emite un sonido con frecuencia ajustable desde la lectura del potenciometro, y duración igual al valor de timer
  tone(soundPin, sensorValue / 2, timer * sensorValue); // emite un segundo sonido de la misma duración, con una frecuencia igual a la mitad del valor del sensor
 digitalWrite(ledPin, LOW); // apaga el LED 
  delay(timer * sensorValue);  // espera por un tiempo igual al valor del parámetro timer. 
}