but the response time is to slow
How slow, the SR read should happen in < a couple of uS I would think.
when i put the datapin on pin 3 an write
attachInterrupt(1, doPiano, CHANGE); // pin 3
This will interrupt on the first change of state coming out of the SR's data pin and probably all others. The interrupt(s) will occur part way through the shiftin function so your doPiano function will be called at the wrong time and with dodgy data.
then the function doPiano is called continuos, without pressing or releasing any button.
Can't explain that, unless the code is dicking with the data pin there should be no changes if no keys are pressed.
Also have a look at the MAX6818, that will give you an interrupt on any input change of state.