The keys have pressure sensitive film underneath that causes a voltage drop when you press on them. There's a wire from under each key that goes to an input on an MCP3008 ADC. There are 20 of those, each with 8 inputs, all connected on a SPI bus running at 2mhz. Effectively, this acts as a 160 channel digital voltmeter. The Pi can scan all the ADCs about 90 times per second, and it converts key pressure into midi commands that can be sent to an external synth or I can run a software synth locally on the Pi.