As has been pointed out, Firmata turns your Arduino into a dumb slave. It does ONLY what the driver application tells it to do.
Now, you can ditch Firmata (which I strongly recommend) and develop your own protocol to enable communication between the PC and the Arduino.
The PC could send, for instance, to have the Arduino read digital pin 8, or to have the Arduino read analog pin 4, or <S13,0> to have the Arduino set pin 13 to low.
The Arduino simply needs to, on each pass through loop, collect any serial data. When it has a complete packet (the end of packet marker (>) has arrived), it suspends reading serial data, parses the command, executes the command, returns a reply, is appropriate, and resumes reading serial data AND DOING WHATEVER ELSE YOU PROGRAM IT TO DO. Unlike the Firmata case, where ALL it does is read serial data, and act on the commands it receives.