Go Down

### Topic: Convert from int to hex? (Read 1 time)previous topic - next topic

#### lazzy_8

##### Feb 19, 2011, 09:55 pm
Hi, I'm trying to get a value from my analog in and then convert it to hex so I can send a midi note.

I'm trying to do something like this but I get an error:

int lightPin = 0;

lightnote = map (lightLevel 0, 900, 0x3A, 0x6A);  <-this has an error!

#### Groove

#1
##### Feb 19, 2011, 10:04 pm
Quote
map (lightLevel 0,

It has an error, because it missses a comma

#### lazzy_8

#2
##### Feb 19, 2011, 10:08 pm
OK, thanks!   Yep, just figured this out and then was about to delete the post.  Thanks!

#### lazzy_8

#3
##### Feb 19, 2011, 10:28 pm
My program is not working.  Anyone have an example of how to take analog input and then convert it to hex so I can output it as midi notes?

#### Groove

#4
##### Feb 19, 2011, 10:30 pmLast Edit: Feb 19, 2011, 10:33 pm by Groove Reason: 1
We can't see your program, or know why it isn't working.
Any integer decimal value can be represented in hex.

#### lazzy_8

#5
##### Feb 20, 2011, 12:17 am
Sorry,  here it is:

/*
MIDI note player

This sketch shows how to use the serial transmit pin (pin 1) to send MIDI note data.
If this circuit is connected to a MIDI synth, it will play
the notes F#-0 (0x1E) to F#-5 (0x5A) in sequence.

The circuit:
* digital in 1 connected to MIDI jack pin 5
* MIDI jack pin 2 connected to ground
* MIDI jack pin 4 connected to +5V through 220-ohm resistor
Attach a MIDI cable to the jack, then to a MIDI synth, and play music.

created 13 Jun 2006
modified 2 Jul 2009
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/MIDI

*/

int note;
int lightPin = 0;
int lightnote;
//int hexnote;

void setup() {
//  Set MIDI baud rate:
Serial.begin(31250);
}

void loop() {
// play notes from F#-0 (0x1E) to F#-5 (0x5A):
for (int note = 0x3A; note < 0x6A; note ++) {

lightLevel = map (lightLevel, 0, 900, 5, 100);

lightnote = map (lightLevel, 0, 900, 0x3A, 0x6A);

lightnote = constrain (lightLevel, 0x3A, 0x4A);

//hexnote = (lightnote, HEX);

//Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
noteOn(0x90, lightnote, 0x7F);
delay(lightLevel);
//Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
noteOn(0x90, note, 0x00);
// delay(lightLevel);
}
}

//  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.print(cmd, BYTE);
Serial.print(pitch, BYTE);
Serial.print(velocity, BYTE);
}

#### Groove

#6
##### Feb 20, 2011, 12:20 am
We can see your program, but don't know why you think it isn't "working"