Archive for the 'Uncategorized' Category


The Black Widow Mk III MIDI

I described first of all the creation of the Black Widow Sample Player and Manipulator, and then some significant improvements in The Black Widow Mark II.

The improvements made in the Black Widow Mk III are not quite as significant, but add to the ease and accuracy of use by adding MIDI control.


The particular device I had in mind was my trusty Korg Nanokontrol v1, which I use for a number of other applications such as  the FXBOX and the REplay PLAYer .

With 9 sliders, 9 rotary controls and 18 buttons, the Nanokontrol gives access to a large number of parameters. All I had to do was link the CC  numbers output from the Nanokontrol to the inputs of the controls in the Pd (Pure Data) patch for the Black Widow.

In this case I didn’t need to use the Korg Editor application to reassign any of the default CC numbers, I just needed to use the default numbers appropriately in the Pd patch.

For the most part, this just meant creating a duplicate set of controls accepting MIDI input from the Nanokontrol, alongside the controls accepting ‘hid’ (Human Interface Device) input from the Black Widow throttle/joystick.  These are typical examples:

In the same way as the ‘hid’ inputs, all 4 samples can be operated by the same button, slider or rotary control; exactly which sample is to be affected is chosen beforehand.  Due to the complexity of the selection page relating to the ‘hid’ controls, the MIDI controls have been placed separately, but the typical output – e.g. [s filter1], [s filter2] etc. are identical to the outputs of the ‘hid’ controls elsewhere.

The main page of the Black Widow Pd patch has been changed to reflect the new additions:

At the same time, there have been a few other updates, including provision for the file names to be displayed on the Sample Monitor screen and improvements to the Track Active and Reverb/Echo on/off indicators:

These various updates have taken the current version number to 37.  This or a later version of the patch can be found here.  [Click ‘Save Link As’].


Alternative Keyboards 5 – postscript

[Note: this post was originally a comment I appended to the post ‘Alternative Keyboards 4‘, which was about my double QWERTY keyboard instrument.  In that place it was hard to find, and the illustrations disappeared when I changed my website, so I’m trashing the comment and transferring the text and images here].

In order to play the ‘blue’ keyboard (the left-hand one) properly, the Shift key needs to be pressed down so that it outputs different ASCII codes to the ‘red’ (right-hand) keyboard. Using ‘Caps Lock’ doesn’t work, as this only affects the letter keys, not the numbers or other characters.

It would be awkward to have to press the Shift key at the same time as pressing a note key every time, so this keyboard needed something to keep the Shift key pressed while playing. I didn’t want to do anything permanent to the keyboard, like gluing the key down, so I looked for a suitable clip, which could be slid on and off when needed.

There are two types of clips that do this job: a drawing board clip, used by artists and architects; and a table cloth clip, as used in the home. They all look something like this:

For a drawing board or table, the flat side would be on top and the bent side, which acts a spring, putting pressure on the end and holding it tight, would be out of the way underneath. For my application, I needed to use it the opposite way round, with the flat side underneath, so the keyboard could still stand on the desktop in the usual way.

I liked the look of the drawing board clip best, but in the end I found some table cloth clips in the sale in a local home shop, and bough those. They looked like this:

Because i thought they stuck up rather high and might interfere with playing, I experimented with bending them into flatter shapes. This is the one I currently use:

In this way, the ‘blue’ keyboard outputs different ASCII numbers from the ‘red’ keyboard, and can be interpreted separately by the program Pure Data which I use with the ‘double-keyboard’ arrangement.


Guitar FXBOX – Part 3, developments

After finishing the FXBOX foot controller, I started to use the FXBOX and soon decided on a few changes to the software.  There are now 3 areas in which there are differences from the original description of the software in Part 1 of this series of articles.

1  I had been using external pedals to add and change pitches, so I decided not to implement the ‘Pitch’ function.  I’ve left a reference to it on the main FXBOX screen, as it’s still for the time being referred to on the foot controller – and I may decide to bring it back in future.


2  The next change can be seen in the bottom right-hand corner of the main screen.  In order to enhance the shimmering effect of the spectral delay and the freeze I added a simple looper.  This would enable the delay and freeze effects to be repeated continuously, providing a background for melody or other sounds.

ishot-5I added a half-speed and double-speed playback facility, to allow for some variation in the sound produced.  The double-speed is particularly effective for higher-pitched ‘tinkling’ sounds.

Section 11 of the foot controller, which wasn’t being effectively used, was altered to allow for hands-off control of the various loop functions.


3  I added MIDI control for changing the variable parameters – volume, mix, chorus rate, depth, and so on.

I have a set of the original Korg ‘Nano’ controllers, NanoKeys, NanoPad and NanoKontrol, so I used the NanoKontrol for this application.  (This is a great device – very useful and usually quite cheap on eBay.  Versions 1 and 2 seem quite different in various respects, but I don’t think it would matter which you used for this application.  Version 2 doesn’t have the ‘scenes’ concept, but something else instead, I believe).

First of all I used Pure Data’s [ctlin] object to separate the incoming MIDI Channel, Continuous Control (CC) Number and Value information:

ishot-7then sent that information to control the values which would normally be set when the program opened, and altered by hand on the main screen –  a fiddly operation, on  top of having to stop playing in order to do it.

Here are a couple of examples of how it was done.  The calculations after the receipt of ‘midivalue’ are to translate the MIDI scale of 0-127 to the scale of the parameter being changed, which might be 0-1, 1-100, 1-128  or anything else.  The [loadbang] instruction ensures that, in this case, envelope sensitivity is only affected when CC Number 14 is received, and envelope attack is only affected when CC Number 15 is received.


As well as the CC Numbers having to be carefully specified, it was also important to ensure that the FXBOX responded only to messages on its own MIDI channel.  I used Scene 1 on the NanoKontrol; I can’t remember if MIDI Channel 11 was the default, or if I changed it to that using the Korg Editor:


In any event, it was set to Channel 11, and I amended the Setup screen so that the MIDI Channel received by the FXBOX could be changed:

ishot-3The revised files required to operate the FXBOX (the foot controller and MIDI control are entirely optional) are here:



This edited improvisation gives an idea of the sounds the FXBOX makes:



Sorry if you’ve been following the blog and have noticed there have been hardly any posts this year.  I’ve been ill – almost fatally – but have recovered and should be writing again in the new year!


August 2017
« Jun    

Enter your email address to follow this blog and receive notifications of new posts by email.