What's New?
Latest updates April, 2019. I don't claim to be an expert in any of the things on this page, but over time I've picked up a few things. I hope the information here teaches you something or at least inspires you in some way.
Useful links
The links below are related to projects in this section.
Music and MIDI
This section is devoted to music creation.. specifically but not limited to the Linux OS and Ubuntu Studio.
About me and why I care..
I started dabbling in computer audio in the early 80's, but wasn't serious at all. Writing programs on my dad's TI-994A just to make a bleep or boink noise just didn't seem to be the way of the future, so I lost interest fairly quickly. Back then, digital recording was out of reach on a low budget, although I never completely gave up trying. In the late 80's I bought an 8086 PC (AT&T PC-6300), and wrote GW-basic programs and assembly code to make the simplest of sounds "just because I could", but again, it was tedious and time consuming, so nothing ever came of it. At that point there were no real "sound cards" for computers, they just made basic beep sounds unless you knew enough to program something.
Then the AD-lib sound card came out, and even though it was pretty limited, it opened my eyes to a new world of music creation. Now that my PC could actually make some "real" sounds it was easier to make music with it, which was fun again. I also bought a midi pickup for my guitar which was awesome for a year or so, but Windows upgraded and new drivers were never released because Roland had bought the company that owned the guitar pickup. Anyway, that cool doo-dad was obsolete fairly quickly, but it did get me into MIDI stuff. It was several years later (when I got a MIDI keyboard) that I started getting back into the "MIDI thing". I still haven't forgiven Roland.
Fast forward 30 years and computers are well up to the task of audio processing. With a little software and maybe some extra hardware, the average person can set up a professional sounding "Digital Audio Workstation" with the ability to record and mix live sound, process midi inputs, synthesize new sounds and more. With this awesome magical power, it seems like everybody and their brother is using Frooty Loops or something to record their "jams", and I have to say, while the songs may be good, the quality of many of these recordings is horrible. In many/most cases these digital recordings could have sounded much better with a bit of information, and I hope to provide that information here.
Why use a computer for recording audio?
It's all about headroom! Once upon a time, we were taught to record audio at max levels, turning up the inputs (or preamp) as high as possible without clipping. If you wanted a fuzz/overdriven sound, you could increase those levels to a point of "saturation", and the clipping actually sounded cool. In the digital age, this is not the case. Because the signal is now ones and zeros, clipping actually causes complete signal loss and introduces distortion (not the cool kind). Try to keep your digital recording levels between 50% and 75% to avoid clipping. If the information has been accurately recorded, you can "process" it later with no loss of quality.
Recording Audio
How you record your audio tracks will depend on a few things. Are you using the audio built into your motherboard? Do you have a sound card with MIDI inputs? Are you using USB audio and an external preamp? While you can record with any of these setups, the quality of your recordings will be very different.
It can seem a bit overwhelming if you don't have the right information to get started.
Can I plug my guitar into my mic input? The truth is, yes you can. Depending on your guitar pickups, it might actually sound "ok". The trouble here is levels. The mic input expects a certain (very low) voltage level and your guitar probably provides a bit more than that. Carefully adjusting the volume on your guitar and setting the mic levels "just right" may get you a usable signal.
What about other inputs on my sound card? There are quite a few different sound cards out there, all with varying inputs and input levels. If your card has "Line Level", "Audio In", "External Audio", or some other such input, you can probably use one of those too. Again, the trouble is voltage level of whatever you plug into it. For example, the type of a pickup on a guitar (humbucker or single coil), or the type of microphone (low output vs high output) greatly affects the voltage level. No matter what combination of inputs and levels I used, I was not happy with the quality I was getting when playing my guitar into my computer.
Are external/USB devices any good? The truth is, I've only tried one, the Scarlett 2i4 - and I love it. Before I get into that though, here are a few USB facts: There are different versions of USB with different data speeds. Version 2.x uses a black internal connector color, and has a max speed of 480Mbps. Version 3.x uses a blue internal connector color, and has a max speed of 5Gbps. The USB connections (jacks) on your computer are color coded, and should either be black or blue. If your USB device uses the 3.1 standard, make sure to use a cable that matches the port color, and a color that matches (or exceeds) the standard used by your device. All modern USB Audio devices support at least the 2.0 standard.
The Focusrite Scarlett 2i4 (and Linux)
This one works with all OS's, and if you use Windows, it has a bunch of great software included. Did I mention that I use Linux these days? Well I do, so all of that free software was useless. It's a good thing Linux has alternatives to almost all of those packages! There are a few reasons that I use Linux, but I won't get into most of them. One of the main reasons was "Latency".
Latency is basically the time it takes for a signal to travel from one place to another. In our case, it's the time from when you play a note on a MIDI device, to when that note has been processed and played back or recorded by your PC. Windows has a lot of stuff going on, and latency can be a real problem. Many audio professionals use Apple products, but they are a bit on the pricey side, and then there's the software. So, several years ago, I stumbled across "Planet CCRMA" while looking for some kind of audio software for linux. More on that later.
MIDI connections
If you don't have any MIDI equipment, you don't need to worry about connecting it!
As with everything else, the type of equipment you have and the type of connections your equipment has will dictate how you connect your MIDI stuff. If you have multiple MIDI devices and a sound card/audio unit with multiple MIDI inputs/outputs, you probably don't need to worry too much about fancy setups. Just connect the outs to the ins, and you're good to go. If, on the other hand, you have multiple MIDI devices and only one MIDI input/output on your computer, you need to do a little bit more setup.
I've got two MIDI devices, and only one MIDI input/output on my PC. What do I do?
Daisy-Chain! Daisy-chaining is when you hook up the input of one device into the output of the second and then the input from your second device to the output of your computer. The MIDI input for the PC goes to the output from the first device. When connected this way, MIDI messages are sent everywhere via the MIDI out/thru ports. If you have everything hooked up right, playing a song on your PC will also cause it to play on your MIDI keyboard, and if you ALSO have a MIDI drum machine on MIDI channel 10, it will pick up those messages that are sent to channel 10. Depending on your hardware/software, you may need to adjust some settings in order for things to work properly with this arrangement. For example, if your software is listening on all midi channels and you don't want the drum machine getting in the way, you can exclude channel 10. You may also need to set your software to "block MIDI messages after receiving events". This stops the MIDI events from re-propagating and repeating things you don't want repeated.
The MIDI standard has been around for decades, and is used on almost all musical electronic equipment (and some things that are not musical). The MIDI format does not actually create a sound - it describes how a sound should be made, and leaves it up to a synthesizer to actually create the sound. This process chain can take time and introduce latency.
Latency
Latency is the amount of time it takes to process an audio signal. Once again, this will really depend on your hardware and software, and also your operating system. Latency, or lack thereof, is the main reason I prefer Linux to Windows when it comes to sound recording and audio processing. Using a real-time kernel with the Scarlett 2i4, latency can be reduced to less than 5ms, which is certainly acceptable.
There are a number of ways to reduce latency, but how you actually get it to a low enough time, will depend on your PC, the Operating System, other software running, etc.. This topic is way beyond a quick discussion, but if you have a relatively current PC, and an external USB device, you should be able to get it below 5ms. I'm currently at 2.7ms, recording at 44.1Khz, and that seems fine for me.
Free Audio Software!
Planet CCRMA and Ubuntu Studio
Both of these are flavors of the Linux OS, and have been tuned for audio/video creation.
The software included with both is open source, and some of it is professional grade software.
Both also use a low-latency or real-time pre-emptive kernel, which is tweaked for audio/video hardware and software use. Software included with Ubuntu Studio is listed below. All descriptions taken directly from the Ubuntu Studio website, but may have been modified.
This is not an exhaustive list. There are quite a number of other packages for almost anything related to audio.
Basic infrastructure
- alsa-tools - Console based ALSA utilities for specific hardware
- alsa-tools-gui - GUI based ALSA utilities for specific hardware
- qamix - Configurable mixer for ALSA
JACK and JACK Utilities
- jackd - JACK Audio Connection Kit (server and example clients)
- qjackctl - User interface for controlling the JACK sound server
- bitscope - diagnosis tool for JACK audio software
- jdelay - A small command line JACK app you can use to measure the latency of your sound card.
- meterbridge - A collection of Audio meters for the JACK audio server
- patchage - modular patch bay for Jack audio and Alsa Midi
- jack-tools - various JACK tools: plumbing, play, udp, ctl, scope, clock
Sound editing and recording
- audacity - Swiss army audio editor
- timemachine - JACK audio recorder for spontaneous and conservatory use
Audio playback
- audacious - Versatile lightweight audio player.
- audacious-plugins-extra - Plugin pack for Audacious.
Digital Audio Workstation software
- ardour - Digital audio workstation (graphical gtk interface)
- beast - music synthesis and composition framework
Synthesizers
- fluidsynth - Real-time MIDI software synthesizer
- bristol - vintage synthesizer emulator
- freebirth - Bass synthesizer/sample player/sequencer similar to Rebirth
- qsynth - fluidsynth MIDI sound synthesiser front-end
- zynaddsubfx - Realtime software synthesizer for Linux
- csound - powerful and versatile sound synthesis software
- swami - SoundFont editor
Sampling
- sooperlooper - Looping Sampler LADSPA plugin
Sequencing
- aconnectgui - graphical ALSA sequencer connection manager
- rosegarden - music editor and MIDI/audio sequencer
- hydrogen - Simple drum machine/step sequencer
- seq24 - Real time MIDI sequencer
- jackbeat - audio sequencer
- muse - Qt-based midi/audio sequencer
- tk707 - drum sequencer for a sound card or MIDI device
- shaketracker - MIDI sequencer with tracker GUI
Effects and signal processing
- jack-rack - LADSPA effects "rack" for JACK
- tapiir - A tool for real time audio delay and feedback effects
- freqtweak - Realtime audio frequency spectral manipulation
- jamin - Audio mastering from a mixed down multitrack source with JACK
- creox - real-time guitar effects
- jackeq - routes and manipulates audio from/to multiple sources
DJ tools
- terminatorx - A realtime audio synthesizer
- mixxx - A digital DJ interface (for beat-mixing)
MIDI Utilities
- timidity - Software sound renderer (MIDI sequencer, MOD player)
- vkeybd - Virtual Keyboard program
Musical typesetting
- denemo - A gtk+ frontend to GNU Lilypond
- lilypond-data - LilyPond music typesetter (data files)
- lilypond - A program for typesetting sheet music
Miscellaneous / uncategorized
- gtick - Metronome application
- puredata - realtime computer music and graphics system
- fluid-soundfont-gm - This is a GM SoundFont, for use with any modern MIDI synthesiser: hardware (like the emu10k1 sound card), or software (like FluidSynth).
- Audacity – Audio Wave Editor
- Qtractor – midi capable DAW
- Hydrogen – Drum machine / Sequencer
- Yoshimi – Software Synthesizer.
Audio plug-ins and other audio packags
ubuntustudio-audio-plugins
- aeolus - Aeolus is a synthesized (i.e. not sampled) pipe organ emulator
- blop - Bandlimited wavetable-based oscillator plugins for LADSPA hosts.
- caps - A collection of refined LADSPA plugins.
- cmt - (Computer Music Toolkit) A collection of LADSPA compatible plugins.
- fil-plugins - Parametric equalizer LADSPA plugin.
- hexter - Yamaha DX7 modeling DSSI plugin
- ladspa-sdk - Sample tools for linux-audio-dev plugin architecture.
- mcp-plugins - LADSPA plugins designed for Alsa Modular Synth.
- omins - Collection of LADSPA plugins geared at modular synthesizers.
- swh-plugins - Steve Harris's LADSPA plugins.
- tap-plugins - Tom's Audio Processing LADSPA plugins.
- vcf - Audio EQ biquad filter LADSPA plugins.
- dssi-example-plugins - Example DSSI plugins.
- dssi-host-jack - An example DSSI host.
- fluidsynth-dssi - Soundfont player/synth for DSSI.
- xsynth-dssi - A classic-analog style softsynth DSSI plugin.
- dssi-utils - Command-line utilities for sending commands to DSSI plugins.