Recherche sonore


Varier le son avec des potentiomètres

(Félix et Nina)

Les deux potentiomètres nous on permis de régler l’intensité du son et le temps de changement de celui-ci ainsi que l’intensité de lumière de la LED verte. Maintenant nous pouvons créez de petites musiques ! UwU

int filou = A0 ; // le potentiomètre
int tiroirFilou = 0 ; 
int ledValeur = 0;
int ledbValeur = 0;
int led = 9; 
int ledb = 10;

void setup() {
pinMode(led, OUTPUT);
pinMode(ledb, OUTPUT);
pinMode(filou, INPUT);
Serial.begin(9600);
}

void loop() {
tiroirFilou = analogRead(filou);
ledbValeur = map(tiroirFilou, 0, 1023, 0, 255);
ledValeur = map(tiroirFilou, 0, 1023, 0, 255);
Serial.println(tiroirFilou);

analogWrite (led, ledValeur);
analogWrite (ledb, -ledbValeur);

Serial.print(tiroirFilou); 
Serial.print("\t"); 
Serial.print(ledValeur); 
Serial.print(ledbValeur);

}

Thérémine

(Félix et Nina)

Le thérémine, inventé en 1920, est le premier instrument électronique. Le mouvement des mains change la fréquence produite par l’instrument et permet de recréer des notes.

Nous avant chercher à en recréer un, mais à la place des antennes nous avons utilisé des capteurs ultra son. Cependant ça n’a pas fonctionné, surmenant à cause d’une erreur dans le code. Mais nous gardons la tête haute, et avec comme objectif de créer un instrument, pourquoi pas en y ajoutant un écran.

#include  <NewTone.h>
#include <NewPing.h>
#include <SPI.h>

#define MIN_DISTANCE  35 

NewPing sonar(5, 6, 35); // the first and the second number are the pins  of the sensor of volume, the third is the maximum distance

// For SPI
byte  address = 0x00;
int CS= 10;

int echo = 3;                            
int  trigger = 4;

int distance;
int PotValue;

unsigned long TimeResponse;
float  distance2;
float tone1;

void setup() {
  // set all the pins 
  Serial.begin(9600);  
  pinMode(trigger, OUTPUT); // tone sensor                    
  pinMode(echo,  INPUT); // tone sensor    
  pinMode (CS, OUTPUT);
  SPI.begin();

  // this has the speaker emit a start up sound from Low to High to Low
  digitalPotWrite(255);
  
  for (int i = 50; i <= 400; i++)
  {
    pinMode(9, OUTPUT);
    NewTone(9,i);
    delay(10);
  }
  
  delay(500);
  
  for (int i = 400; i >= 50;  i--)
  {
    pinMode(9, OUTPUT);
    NewTone(9,i);
    delay(10);
  } 
}

void loop() {  
  digitalWrite(trigger, HIGH);           
  delayMicroseconds(10);   // creates a 10 microsecond pulse                      
  digitalWrite(trigger, LOW);                   
  TimeResponse = pulseIn(echo,  HIGH);  // records how long it took to receive echo of the pulse
  distance2  = TimeResponse/58;  // calculates distance in centimeters

  if (distance2  < MIN_DISTANCE) { 
    // conversion of distance into a value for a sound 
    tone1 = 50.0*pow(2,(distance2/12.0));  // calculate frequency, range of about  50-360 Hz
    pinMode(9, OUTPUT);
    NewTone(9,tone1);
  } else {
    pinMode(9, OUTPUT); // this sets the sound to a high pitched noise when no distance  is detected
    NewTone(9,0);
  }
 
  distance = sonar.ping_cm(); //  uses the library NewPing to calculate distance

  // distance is converted  to Potentiometer relevant values
  int PotValue = map(distance, 0, 35, 240, 255);  // only use a range of resistance which is very low otherwise the speaker is too  quiet because it is only a 8 ohm speaker

  if (distance == 0) // sets volume  to max when no hand is detected or if hand is too far away
  {
    PotValue  = 255;
  }

  digitalPotWrite(PotValue);
  delay(10);  
}

int  digitalPotWrite(int value) {
  digitalWrite(CS, LOW); // this uses SPI protocol  to communicate with the potentiometer and sets the resistance
  SPI.transfer(address);
  SPI.transfer(value);
  digitalWrite(CS, HIGH);
}

3 STEP SEQUENCER

-Nil Didek 3a cinema d’animation-

image du séquenceur en cours de démontage (il manque les potentiomètres) :

l’idée m’est venue de cette video YouTube :

DIY Arduino Synth – 3-Step Sequencer Tutorial

Il s’agit de générer 3 signals « square wave » et de définir leur durée et la repetition à laquelle ils sont joués à l’aide de potentiomètres.

le signal est géneré a partir des sorties analogiques de l’Arduino

les potentiometres modulent le signale via les sorties digitales « PWM ».

Composents:

1x Arduino (Uno, Mega, or Nano – whichever you prefer)

4x Potentiometers (the value isn’t important)

3x LEDs (to show the active step) 3x Resistors (I use 230Ω, for the LEDs)

1x Small Breadboard (for the extra potentiometer)

1x Regular Breadboard (for the main circuit) Jumper wires (male-to-male)

Optional: Piezo speaker or small audio jack (connected to pin 9 for sound output)

code :

int speed;

int freq1;

 int freq2;

 int freq3; 

void setup() { 

//LED pinMode(5, OUTPUT);

 pinMode(6, OUTPUT);

 pinMode(7, OUTPUT); } 

void loop() { 

//freq 1-3 freq1 = map(analogRead(A0), 0, 1023, 30, 800); 

freq2 = map(analogRead(A1), 0, 1023, 30, 800);

 freq3 = map(analogRead(A2), 0, 1023, 30, 800); 

//bpm speed = map(analogRead(A3), 0, 1023, 10, 1000);

 //1st digitalWrite(7, HIGH);

 tone(9,freq3); 

delay(speed);

 digitalWrite(7, LOW);

 //2nd digitalWrite(6, HIGH);

 tone(9,freq2); 

delay(speed);

 digitalWrite(6, LOW); 

//3rd digitalWrite(5, HIGH); 

tone(9,freq1);

 delay(speed); 

digitalWrite(5, LOW); }

Synthétiseur

Nous avons décidés de nous unir pour créer un objet autour du son, un synthétiseur à partir d’un tutoriel en particulier, pour ensuite pouvoir en créer un à notre image.

      le tuto : https://note.com/solder_state/n/nf6c29a7075cd?app_launch=false

      le matériel : https://note.com/solder_state/n/n8ef0479418a0


      Félix (L2 animation), Nil (L3 animation) et Nina (L2 Scénographie)