People make mistakes. That’s why anyone worth their salt is using version control systems like Git for their code these days. The closest we can currently come to version control for Drupal products, is use of the revisioning system. And if you’re here, I’ll assume that you know what that is, and what it does. Continue Reading
Open Layers are great, Drupal are great, and the OpenLayers and associated Drupal modules that combine the two are especially great. Unless, like most modern security-conscious websites, you’re using encrypted connections to your server with SSL. In that case, maps are unfortunately invisible wherever they’re used, both on public pages, and in administrative and content editing pages. Continue Reading
At the end of last month KDE announced a new Open Hardware project to create a Raspberry Pi-like computer called “Improv“, produced by “Make Play Live” of Coherent Theory LLC. This is an important development that I’m delighted to see, and I plan to pre-order and get mine in March.
Marketing Free Software and Open Hardware based products, and specifically marketing to Free Software communities, is a fascinating and complex challenge. Let’s see if we can learn something from observing the journey of Make Play Live’s new product. Continue Reading
For I ❤ Free Software, I’m taking time to tell you about some Free Software that I love. And as everybody knows, I love Git.
I sing it’s praises, often literally, everywhere I work. Git provides the plumbing of my design, development, and decision making. No, it’s more like the golden contacts along which colleagues creative energies zip. It provides the neural pathways by which our collective brain may think. It is always there, the stalwart friend by my side, adapting to my needs, taking ever new and more serpentine challenges in its stride. I love Git. Continue Reading
So you’re in front of your shiny new laptop / netbook/ ultrabook / toaster, you’ve put Fedora 20 on a USB stick, filled up the progress guitar pick, only to be dropped to an emergency shell with errors like:
dracut-initqueue: Warning: Could not boot.
dracut-initqueue: Warning: /dev/disk/by-label/Fedora-Live-Desktop-x86_64-20-1 does not exist
Starting Dracut Emergency Shell...
Warning: /dev/disk/by-label/Fedora-Live-Desktop-x86_64-20-1 does not exist
Warning: /dev/mapper/live-rw does not exist
If you’re using a Wacom intuos 3 graphics tablet with Gnome 3, then this little button layout illustration should be useful. Gnome’s built in Wacom configuration tool is great, but the numbers it assigns to the tablet buttons are not intuitive. Use this diagram to avoid a trial and error approach to function assignment. Continue Reading
So you’re using Fedora 19, you update yum one day, and a few days later you find some strange lockscreen behaviour. The look of your lockscreen has changed – a different background colour, clock size, and password box positioning. So far so good. But wait, why does a second lockscreen appear after you shoo away the first? Why can’t you type your password to the input field? Why can’t you get back to your desktop and unsaved work? Continue Reading
Had an error like this while upgrading your system lately?:
insufficient disk space
need 40M free on /boot (0M free)
If so, it’s likely because you have lots of kernels installed and the automatic size of your /boot partition, as configured during Fedora’s installation wizard, has become insufficient. In my case I have real-time kernels installed from Standford University’s CCRMA repos, in addition to the standard Fedora kernels. Here’s how to free up some space. Continue Reading
Objective: achieve a reverse reverb effect using only MIDI and Free Software audio plugins. What we’re aiming for is the same piano effect that’s used on “Planisphere” by Justice (one of my favourite tracks).
Approach: I’ll use Qtractor Digital Audio Workstation (DAW), with a piano MIDI instrument, and the Impulse Response (IR) LV2 plugin. You could use any other DAW that supports LV2 plugins, e.g. Ardour.
- Make sure you’re using a GNU/Linux distribution that is configured to run with a real-time kernel, and has the JACK audio server set up and working.
- Open Qtractor, and create a new track, and set it up as your favourite MIDI piano instrument. In my case I used Calf Fluidsynth (available in many distribution repositories as part of the calf-plugins pack), loaded with a grand piano soundfont.
- Create a new clip and edit it with the “piano roll” (MIDI) editor to add some notes. Play the clip and make sure you can hear the sound. Here’s the clip that I used.
- Make sure you have the IR.LV2 plugin installed. This will handle the work of applying the reverse reverb effect. If it isn’t in your distribution’s software repositories, it can be easily compiled. Just download the source code, extract it, cd into its directory and run make, then make install. You’ll also need to install zita-convolver before compiling.
- In Qtractor, add IR as a secondary plugin to your piano instrument. IR should appear listed below the existing instrument plugin in the mixer window with a green light next to it showing that it’s enabled. If the IR plugin gui hasn’t appeared automatically, open it by double clicking on the IR plugin listed under the piano MIDI instrument in the mixer window.
- To make IR apply a reverb effect, we need an impulse response file to tell it what reverb pattern to use. I recommend the True M7 Impulse Pack, which contains a variety of high-quality WAV samples. Once downloaded and extracted, load a sample into IR by clicking “Open File” on the GUI. I’m using a room sample called “Blue Room L”. Here’s how my clip sounds with reverb applied.
- By this stage, a reverb effect should have been applied to your piano, and if you play it you should hear the difference. To get reverse reverb, we have to do some configuration however. Try setting the following:
Predelay = 0
Attack, Envelope, Length, Strech = 100%
Stereo In = 150%
Reverse = on (toggled)
Dry = Mute
Wet = -6dB
You can save this preset by clicking “Add” under “Bookmarks”. Choose somewhere sensible for the file and give it a name.By this stage you should see that the wave form in the graph preview window has changed, and that it illustrates a build up in volume representing the reverse reverb. Play your clip again – you should hear the desired effect!
- You’ve now achieved the desired sound effect, but one problem remains – there’s now an audio delay between then the MIDI note should be played according to the tract, and when you hear the sound through speakers. This will obviously cause havok with the timing of your track and the other instruments that don’t have any delay in playback. There may be a more elegant solution to this problem, but here’s a workaround that works for me. Simply shift your piano clip(s) two beats (half a bar) earlier (to the left). With the IR settings above, this should correctly compensate for the delay. Now if you add other tracks, they should sound syncronised with your reverse reverbed track.
- That’s it, good luck!
SoundFont is a technology for generating sample-based instrument sounds. It’s supported on GNU/Linux by a variety of apps, including Qsynth, which can be used as an external JACK instrument and connected to Digital Audio Workstations like Ardour 3 and Qtractor.
Many SoundFont instruments are freely available, but some of them are compressed and instead of of the .sf2 file extension, are .sfArk files. sfArk is a custom compression system, but fortunately these too can be used on GNU / Linux. Here’s how.
- Install the dependencies (this command is for Debian / Ubuntu based systems):
sudo apt-get install git zlibc
- Clone the sfArkLib repository:
git clone https://github.com/raboof/sfArkLib.github
- Compile and install sfArkLib by following the github instructions
- Clone the repository of the sfArkXTm command line utility:
git clone https://github.com/raboof/sfArkXTm
- Compile sfArkXTm:
Note: the sfArk command line utility for extracting sfArk files is only installed in directory that you compiled it in. Unless you move the binary to a system directory, or create a synlink to it, you will always have to specify the path to the binary when you use the utility.
- Convert your .sfArk file to a standard .sf2 file:
~/sfArkXTm/sfArkXTm yourSfarkFilename.sfArk yourSfarkFilename.sf2
That’s it. Good luck!