I thought I would answer too. Even though there are quite a few tips here already, some other things need to be listed to actually answer the question, from my personal experience of course. Here are the things I would most likely use to achieve what you are trying to do:
- ZynAddSubFX is a good synth that you can control with your midi keyboard.
- Audacity is great to record and edit samples, extract bits and pieces from bigger recordings and apply a myriad of effects to them.
- FreeSound is a good website to find open-license samples and recordings. The Internet Archive can also provide sounds, if you are looking for more obscure materials - same, open licenses are the norm there.
- Hydrogen is a good advanced drum-machine that will let you create nice drum loops.
- LMMS is a digital audio workstation that will let you use plugins to produce sounds (including Hydrogen and ZynAddSubFX amongst others), and use your existing samples at the same time, to put them all together into a song. Version 1.0.0, which is a huge improvement in usability and capabilities (and probably stability as tons of bugs have apparently been fixed) has been released at the end of March 2014.
- I believe it is worth mentioning Qtractor, an Audio/MIDI multi-track sequencer. I have only played with it for a few hours, but I find it very powerful, lightweight and smooth, and it is very frequently updated and augmented. Automation, plugins, Jack, very intuitive controls and shortcuts make it a very useful piece of software. I really recommend it!
- SooperLooper and Freewheeling are live looping samplers that would be great for live performances but also to record a track on the go.
- Pure Data is a visual programming language to process and generate sound and more - more for an experimental project; software "written" with it can be used for live performance too.
- And Jack + QJackCtl if you want to link all of those pieces of software and experiment with connections and parameters, as well as making sure you have control over your sound server!
All the software mentioned is open source, which is even better than just free :)
If you want to start with just one element, I recommend you try LMMS or Qtractor. They are the two pieces of software in the list that include the most functionalities with what you want to do. So if they suit you and see where you need to extend afterwards, or if you need to replace them with single separate elements instead.
Interestingly, while answering this question, I realised that many of the projects I thought had been abandoned for years have seen new versions released recently. Open source sound production on Linux is alive and well! :)