ayuda operación con pulsadores

bueno vuelvo a poner el codigo que me equivoque en algo

int a;   int b; int z;
int pul1 = 2;   int p1 = 0;
int pul2 = 8;   int p2 = 0;
int s7;   int v7;    int c8;
void setup() {
pinMode(pul1, INPUT);
pinMode(pul2, INPUT);
Serial.begin(9600);
}
void loop() {
c8 = digitalRead(pul1);
v7 = digitalRead(pul2);
if ((v7 == HIGH)&&(z=12)) {  
(a = 39);
(b = a+z);
}
if (v7 == LOW){
(z==0);
}
if ((c8 == HIGH)&&(z=12)) {

(a = 39);
(b = a-z);

if (c8 == LOW){
(z==0);
}

s7 = digitalRead(pul1);
if (s7 == HIGH) {
a = 36;
no(159,b,127);         
}
if (s7 == LOW ) {
a = 36;
no(143,b,0);        
}    
}
void no(byte cmd, byte note, byte velocity){
Serial.println(cmd);
Serial.println(b); <<<<< este valor se debe sumar y restar al presionar los pulsadores
Serial.println(velocity);
delay(1000); 
}

la idea es que cada vez que oprima s7 el valor de b sea constante y al presionar v7 o c8 se sume o se reste este valor con 12 osea z=12 si a=39

lo que trato de hacer es algo parecido en C++ aqui dejo el ejemplo, ya lo hize con un pic pero no he podido realizarlo en arduino:

void main(void)

{int a=0,b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0, j=0, k=0, l=0, m=0, n=0;
set_tris_a( 0xff );
set_tris_b( 0xff );
set_tris_e( 0xff );

while(true)
{

if(input(PIN_E0)==1)
{a=a+12;
while(input(PIN_E0)==1)
{}}
if(input(PIN_E1)==1)
{a=a-12;
while(input(PIN_E1)==1)
{}}
if ((input(PIN_B7)==1)&&(b==0))
{

fputc(146,mic);
fputc(60+a,mic);
fputc(126,mic);

b=5;}
if ((input(PIN_B7)==0)&&(b==5))
{ fputc(130,mic);
fputc(60+a,mic);
fputc(126,mic);

b=0; }
if ((input(PIN_B6)==1)&&(c==0))
{

fputc(146,mic);
fputc(61+a,mic);
fputc(126,mic);

c=5; }
if ((input(PIN_B6)==0)&&(c==5))
{fputc(130,mic);
fputc(61+a,mic);
fputc(126,mic);

c=0; }
if ((input(PIN_B5)==1)&&(d==0))
{

fputc(146,mic);
fputc(62+a,mic);
fputc(126,mic);
d=5; }
if ((input(PIN_B5)==0)&&(d==5))
{
fputc(130,mic);
fputc(62+a,mic);
fputc(126,mic);

d=0; }
if ((input(PIN_B4)==1)&&(e==0))
{

fputc(146,mic);
fputc(63+a,mic);
fputc(126,mic);
e=5; }
if ((input(PIN_B4)==0)&&(e==5))
{
fputc(130,mic);
fputc(63+a,mic);
fputc(126,mic);

e=0; }
if ((input(PIN_B3)==1)&&(f==0))
{

fputc(146,mic);
fputc(64+a,mic);
fputc(126,mic);
f=5; }
if ((input(PIN_B3)==0)&&(f==5))
{
fputc(130,mic);
fputc(64+a,mic);
fputc(126,mic);

f=0; }
if ((input(PIN_B2)==1)&&(g==0))
{

fputc(146,mic);
fputc(65+a,mic);
fputc(126,mic);
g=5;}
if ((input(PIN_B2)==0)&&(g==5))
{
fputc(130,mic);
fputc(65+a,mic);
fputc(126,mic);

g=0; }
if ((input(PIN_B1)==1)&&(h==0))
{

fputc(146,mic);
fputc(66+a,mic);
fputc(126,mic);
h=5; }
if ((input(PIN_B1)==0)&&(h==5))
{
fputc(130,mic);
fputc(66+a,mic);
fputc(126,mic);
h=0;
}
if ((input(PIN_B0)==1)&&(i==0))
{

fputc(146,mic);
fputc(67+a,mic);
fputc(126,mic);
i=5;}
if ((input(PIN_B0)==1)&&(i==5))
{
fputc(130,mic);
fputc(67+a,mic);
fputc(126,mic);
i=0;
}
if ((input(PIN_A0)==1)&&(j==0))
{

fputc(146,mic);
fputc(68+a,mic);
fputc(126,mic);
j=5;}
if ((input(PIN_A0)==0)&&(j==5))
{
fputc(130,mic);
fputc(68+a,mic);
fputc(126,mic);
j=0;
}
if ((input(PIN_A1)==1)&&(k==0))
{

fputc(146,mic);
fputc(69+a,mic);
fputc(126,mic);
k=5;}
if ((input(PIN_A1)==0)&&(k==5))
{
fputc(130,mic);
fputc(69+a,mic);
fputc(126,mic);
k=1;
}
if ((input(PIN_A2)==1)&&(l==0))
{

fputc(146,mic);
fputc(70+a,mic);
fputc(126,mic);
l=5; }
if ((input(PIN_A2)==0)&&(l==5))
{
fputc(130,mic);
fputc(70+a,mic);
fputc(126,mic);
l=0;
}
if ((input(PIN_A3)==1)&&(m==0))
{

fputc(146,mic);
fputc(71+a,mic);
fputc(126,mic);
m=5; }
if ((input(PIN_A3)==0)&&(m==5))
{
fputc(130,mic);
fputc(71+a,mic);
fputc(126,mic);

m=0; }
if ((input(PIN_A4)==1)&&(n==0))
{

fputc(146,mic);
fputc(72+a,mic);
fputc(126,mic);
n=5; }
if ((input(PIN_A4)==0)&&(n==5))
{
fputc(130,mic);
fputc(72+a,mic);
fputc(126,mic);
n=0;
}
}
}

gracias!