Ejemplo n.º 1
0
void playVPiano() {
	
	unsigned char usrExit[] = {0};
	char keyNote = 0;
	unsigned int xCoord = 0;
	unsigned int yCoord = 0;
	unsigned char sendBuf[3] = {0};
	
	while(1) {
		if (RF_gets_nblk(usrExit) != 0) {
			if (strncmp (usrExit, "STOP", 4) == 0) {
				break;
			}
		}
		else {
			getTsXY(&xCoord, &yCoord);
			keyNote = piano_key_match(xCoord, yCoord);
			halMcuWaitMs(20);
			if (keyNote) {
				//send the note over rf and serial
				sendBuf[0] = 0;					//Channel
				sendBuf[1] = keyNote;		//Note
				sendBuf[2] = 0x7f; 			//Attack Velocity //TODO: use pressure
				halMcuWaitMs(50);
				RF_Send(sendBuf, 3);
			}
		}
	}//while(1)
}
Ejemplo n.º 2
0
/***********************************************************************************
* @fn      getTsXY
*
* @brief   Send X and Y Coordinates to Host
*
* @param   unsigned int xCoord
*			 X-Coordinate
*		   unsigned int yCoord
*			 Y-Coordinate
*
* @return  none
*/
void sendData(unsigned int xCoord, unsigned int yCoord) {
  //static   char byte[5];

//    xCoord -= 1100;
//    yCoord -= 700;
  	unsigned char keyNote = 0;

    if((signed int)xCoord < 0)  xCoord = 0;
    if((signed int)yCoord < 0)  yCoord = 0;


    sprintf(str_buf, "X: %d, Y:%d\n\r",xCoord, yCoord);
    tx1_send(str_buf,strlen(str_buf));
	
	keyNote = piano_key_match(xCoord, yCoord);
	//keyNote = drum_key_match(xCoord, yCoord);
	tx1_send(&keyNote, 1);
	RF_Send(&keyNote, 1);

}