A basic audio interface that connects up to your computer via a USB cable
The software required would be a DAW, which allows the recording, editing and mixing of digitized audio.
The M-Audio Keystation is a four octave USB MIDI keyboard
Some people prefer a graphical or non-realtime way of entering notes by drawing them on the screen. If you are starting off with music production, this is a way to become familiar with recording software, and you can start immediately! You can then purchase equipment as your needs grow.
Software required would be a MIDI sequencer, which allows recording and editing of MIDI data, which can be played through various virtual instruments, eg. synths, drum machines, virtual pianos, etc.
What is an audio interface?
An audio interface is a device that facilitates the input and output of audio signals to and from your computer. Computers already have audio interfaces, or sound cards, built in. While they are much better quality than they used to be, they still lack in quality for professional audio recording. On top of that, they are also very limited in features, not least the lack of MIDI features. Most built in sound cards have only one stereo input and output. If you are serious about audio recording, you will be much better served by getting an external audio interface. There are many to choose from, with varying features, but even budget interfaces these days are very capable of allowing you to achieve good quality recordings.
Linux audio interface support
Choosing an external audio interface that best suits your needs can be time consuming. When choosing an audio interface to run under Linux, even more care needs to be taken. Unfortunately, compared to Windows and Mac, there are not as many devices that have support under Linux. Class compliant interfaces should work but they are not as common as they should be. Some manufacturers, while not releasing Linux specific drivers, have been helpful with information that has led to some interfaces having open source drivers created by the community.
Having said all that, there are many high end devices that are supported, it's just a matter of finding out which ones.
Where to find out if a device is supported
ALSA (Advanced Linux Sound Architecture) provides driver support for pretty much every supported audio interface on Linux, with the exception of firewire devices, which are supported by the FFADO project. If you're looking to find out if a device is supported under Linux, ALSA support is most likely what you will be looking for.
This is not a definitive guide but is a good starting point and might confirm for you if an interface you have in mind, is supported. If a device isn't listed, it doesn't necessarily mean it is not supported. In general, it is best to ask questions before committing to making a purchase. The Linuxmusicians forum is a useful place for this, as is the Linux Audio Users mailing list.
If you have a firewire device, check out the FFADO (Free FireWire Audio Drivers) project for driver support. This project provides open source drivers for many firewire devices.
Most USB 1.1 interfaces are class complaint, meaning, they should work out of the box on Linux, or any operating system, with no special drivers. USB 1.1 is quite old and has restricted bandwidth compared to what is available today. For modest work, this shouldn't be a problem but it does restrict how many inputs and outputs a USB 1.1 interface can have, and can also restrict sample rate and bit depth, eg. The Edirol AU-25 is a USB 1.1 device capable of 24 bit/96khz, however, due to bandwidth limitations, 24/96 is restricted to either playback or recording, not both at the same time.
USB 2.0 devices have larger bandwidth and can handle more channels than USB 1.1, but a lot of these devices aren't class compliant. While this is the case, some are class compliant and others do work due to drivers being worked on by the community. Just be careful when doing your research as support for these devices under Linux is hit and miss. This situation has somewhat improved in recent years with manufacturers making some USB 2.0 devices class compliant, due to the popularity of Ipads. Android has also recently (July 2014) included a patch that will allow for class compliant audio interface support. This may further improve the situation.
Currently there are very little USB 3.0 audio interfaces, let alone any that are likely to be supported on Linux. The bandwidth of USB 2.0 is sufficient for audio work, even with high channel counts. USB 3.0 offers little gains and so far, companies have been reluctant to release audio interfaces that support it.
FireWire devices have good performance if they are supported and are capable of a high number of inputs and outputs at high sample rates/bit depth and are good for low latency audio.
PCI device performance is also very good. These devices have large bandwidth, allowing for a high number of inputs and outputs and high sample rates/bit depth.
Converters and Preamps
Some audio interfaces only contain analog to digital/digital to analog converters and don't include preamps. This is another thing to consider. Some include both and allow you to bypass the preamp if you prefer. This way you can use an external preamp and not be tied to the one that is built is. Be sure to check an interfaces specifications to know which one you are getting. Having said that most newer interfaces include both converters and preamps.
Audio interfaces provide various types of inputs and outputs. When choosing an interface it is important to get one that suits your needs. A few questions you might ask yourself are -
- What do I want to record?
- How many inputs do I need?
- What kind of inputs do I need?