Nekaj o SE;DSP (soundengine) je procesor-predvajalnik zvoka ali sample player,ki lahko predvaja 24 tonov(samplov) polifonicno.Vsak ton je vzorcen(semplan) posamezno.Ima 1Gb flash v katero lahko shranimo 128 sound banks,v eni sound banki ja lahko 88 zvokov (semplov).Podpira vecino MIDI ukazov.
Ko sem pomislil,kako bi izvedel MIDI tester sem pomislil na hitro resitev z arduinom.Uporabil sem arduino nano modul.Programcek je v prilogi.Ce si boste tester izdelali,ne pozabite naložiti zadnje MIDI.h knjiznice.S testerjem lahko testirate tudi vseh 24 tonov polifonije,kar je meni prislo zelo prav.MIDI latency testirate od pritiska tipke do zaigranega tona.Upostevati morate tudi da je 1ms sam MIDI signal torej;31250k 10bit=330us,trije ukazi (MIDI CHANNEL,NOTEON ali NOTEOFF,Velocity)=0.96ms.Pri meritvah sem dobil 5.7ms s cirkularnim bufferjem(zajem word-a) DSP-ja,kar je odlicno.
Izdelate si lahko tudi pcb (eagle shema v prilogi).
http://audiologs.com/MIDI-tester/MIDI-o ... ibrary.ino
http://audiologs.com/MIDI-tester/DEMI-MIDI-tester.sch
Koda: Izberi vse
#include <MIDI.h>
// Button variables
int buttonVal = 0; // value read from button
int buttonPlay = 3; // pin D3 Predvajaj
int ledPin = 13; // ledika
// Created and binds the MIDI interface to the default hardware Serial port
MIDI_CREATE_DEFAULT_INSTANCE();
void setup()
{
MIDI.begin(MIDI_CHANNEL_OMNI); // Listen to all incoming messages
//postavitev tipke
pinMode(buttonPlay, INPUT);
digitalWrite(buttonPlay,HIGH);
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
}
void loop()
{
// Read the state of the button
buttonVal = digitalRead(buttonPlay);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonVal == LOW) {
// play&turn LED on:
play();
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
// Read incoming messages
//MIDI.read();
}
void play()
{
// Send note 42 with velocity 127 on channel 1
MIDI.sendNoteOn(60, 127, 1);
MIDI.sendNoteOn(62, 127, 1);
MIDI.sendNoteOn(64, 127, 1);
MIDI.sendNoteOn(66, 127, 1);
MIDI.sendNoteOn(68, 127, 1);
MIDI.sendNoteOn(70, 127, 1);
MIDI.sendNoteOn(72, 127, 1);
MIDI.sendNoteOn(74, 127, 1);
MIDI.sendNoteOn(76, 127, 1);
MIDI.sendNoteOn(78, 127, 1);
MIDI.sendNoteOn(80, 127, 1);
MIDI.sendNoteOn(82, 127, 1);
MIDI.sendNoteOn(84, 127, 1);
MIDI.sendNoteOn(86, 127, 1);
MIDI.sendNoteOn(88, 127, 1);
MIDI.sendNoteOn(90, 127, 1);
MIDI.sendNoteOn(92, 127, 1);
MIDI.sendNoteOn(94, 127, 1);
MIDI.sendNoteOn(96, 127, 1);
MIDI.sendNoteOn(98, 127, 1);
MIDI.sendNoteOn(100, 127, 1);
MIDI.sendNoteOn(102, 127, 1);
MIDI.sendNoteOn(104, 127, 1);
MIDI.sendNoteOn(106, 127, 1);
delay (1000);
MIDI.sendNoteOn(60, 0, 1);
MIDI.sendNoteOn(62, 0, 1);
MIDI.sendNoteOn(64, 0, 1);
MIDI.sendNoteOn(66, 0, 1);
MIDI.sendNoteOn(68, 0, 1);
MIDI.sendNoteOn(70, 0, 1);
MIDI.sendNoteOn(72, 0, 1);
MIDI.sendNoteOn(74, 0, 1);
MIDI.sendNoteOn(76, 0, 1);
MIDI.sendNoteOn(78, 0, 1);
MIDI.sendNoteOn(80, 0, 1);
MIDI.sendNoteOn(82, 0, 1);
MIDI.sendNoteOn(84, 0, 1);
MIDI.sendNoteOn(86, 0, 1);
MIDI.sendNoteOn(88, 0, 1);
MIDI.sendNoteOn(90, 0, 1);
MIDI.sendNoteOn(92, 0, 1);
MIDI.sendNoteOn(94, 0, 1);
MIDI.sendNoteOn(96, 0, 1);
MIDI.sendNoteOn(98, 0, 1);
MIDI.sendNoteOn(100, 0, 1);
MIDI.sendNoteOn(102, 0, 1);
MIDI.sendNoteOn(104, 0, 1);
MIDI.sendNoteOn(106, 0, 1);
}