Just to add my two rubles worth:
I'm almost certain you will want a time element associated with the commands recorded; I'd suggest a two dimensional array as discussed here.
Write to it when your switch case is true AND the global variable recording (bool) = true.
void loop()
{
if(old_recordingSTATE == false && recording == true){ // set millis() to 0}
getstr = Serial.read();
switch(getstr)
{
case 'f': forward();
SaveRecordingPath (recording, millis() , getstr);
break;
}
old_recordingSTATE = recording;
}
void SaveRecordingPath (bool isRECORDING, int long TIME, char COMMAND){
if (isRECORDING == true){
// write to array here
// increase array_slot
}
else{
array_slot = 0;
}
}