Ir al contenido principal

ELECTRICIDAD, código comunicación MIDI












COMUNICACIÓN MIDI










#include <MIDI.h>

const int sustain = 7; 
int a = 0;
int b = 0;


const int analogInPin3 = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin3 = 11; // Analog output pin that the LED is attached to

const int analogInPin = A2;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

const int analogInPin2 = A1;  // Analog input pin that the potentiometer is attached to
const int analogOutPin2 = 10; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;  

int sensorValue2 = 0;        // value read from the pot
int outputValue2= 0; 

int sensorValue3 = 0;        // value read from the pot
int outputValue3= 0; 

void setup() {
  MIDI.begin();
  Serial.begin(31250);
  pinMode(sustain,INPUT);
}

void loop() {
  ////////////////////////////////////////////pitch bend//////////////
 sensorValue = analogRead(analogInPin);            
  // map it to the range of the analog out:
  outputValue = map(sensorValue,0, 1023, -8190, 8190);  
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);           
 delay(7);
  //////////////////////////////////modulacion//////////////////////////////
  
 sensorValue2 = analogRead(analogInPin2);            
  // map it to the range of the analog out:
  outputValue2 = map(sensorValue2, 0, 1023, 0, 127);  
  // change the analog out value:
  analogWrite(analogOutPin2, outputValue2);           
 delay(7);
  ////////////////////////////////////volumen///////////////////
  sensorValue3 = analogRead(analogInPin3);            
  // map it to the range of the analog out:
  outputValue3 = map(sensorValue3, 0, 1023, 0, 127);  
  // change the analog out value:
  analogWrite(analogOutPin3, outputValue3);    
   delay(7);
  
  ////////////////////////////////////aquitermina//////////////////////////////
  
   int b = digitalRead(sustain);
   
    if(b==HIGH){  b =   127;  }
  
    controlChange(1, 7,outputValue3);
    PitchWheelChange(1, outputValue);  
    controlChange(1, 1,outputValue2);
    controlChange(1, 64,b); 
    delay(7);
   
}

//  plays a MIDI note.  Doesn't check to see that
//  cmd is greater than 127, or that data values are  less than 127:
void noteOn(int cmd, int pitch, int velocity) {
  Serial.write(cmd);
  Serial.write(pitch);
  Serial.write(velocity);
}

void PitchWheelChange(int channel, int value)  
{ /// value -8192,8191 (14 bits)
unsigned int change = 0x2000 + value;

unsigned char low = change & 0x7F ;   //low 7 bits

unsigned char high = (change >> 7)& 0x7F; //high 7 bits
Serial.write(B11100000 + channel-1);
Serial.write(low);
Serial.write(high);
}
void controlChange(int channel, int control, int value)
{
Serial.write(0xB0 + channel-1);
Serial.write(control);
Serial.write(value);

}


Entradas populares de este blog

ELECTRICIDAD, como conectar arduino a teclado

Sobre agregar pitch bend, modulación, volumen y sustain  a un teclado que no lo contiene, habría que saber sobre que manera nos podrá funcionar bien, a la cual me incline por la placa Arduino, después de conocer el entorno de programación para arduino en los post anteriores, ya estamos listos, ademas tendremos que saber como conectar la placa arduino a nuestro teclado, pero primero veremos como conectar la botonera y potenciometros, las características del teclado es que tenga las entradas MIDI que es donde nos conectaremos arduino a nuestro teclado musical, necesitaremos los siguientes materiales para armarlo: - placa arduino - cable usb - potenciometros - resistencias 330 ohms - programa arduino - cautin(soldador) - estaño - jack MIDI(para salida) - switch - botones interruptor - programa de control(para cargarlo en arduino) Ahora solo necesitamos tener conocimientos básicos de electrónica para armarlo. para este prototipo instalaremos los siguientes contro...

Versiones y tipos de micro PLC

Micro PLC y versiones de LOGO! Versiones de LOGO! de Siemens y Micro PLC de otras marcas Versiones de LOGO! de Siemens LOGO! 8: La versión más reciente y avanzada, con conectividad Ethernet, programación remota, y soporte para IoT. LOGO! 7: Predecesor de LOGO! 8, adecuado para aplicaciones pequeñas y medianas. LOGO! Soft Comfort: Software de programación para simular y supervisar sistemas. LOGO! Modulares: Expansión mediante módulos adicionales para entradas, salidas o conectividad. Micro PLC de otras marcas Allen-Bradley (Rockwell Automation) Micro820: Hasta 36 puntos de entrada/salida, compatible con Ethernet/IP. Micro850: Capacidad de expansión modular para proyectos más grandes. Micro810: Ideal para aplicaciones pequeñas, con interfaz HMI integrada. Schn...