Native Instruments B4

The NI B4 is a Hammond B3 software clone which runs on a pc in either standalone form or as a plugin for sequencers etc. I first heard about this (and J.D.Petkov) in the alt.music.hammond-organ usenet channel.

Jordan Petkov produces a pcb containing a single chip micro together with a few ic's which encodes all of the B4 functions into MIDI data, suitable for feeding directly into the pc (the pcb also offers keyboard scanning if required). I would normally have produced a single-chip board, but most facilities for producing pcb's (especially a photo-plotter) are no longer available to me. However, I utilised one of my earlier pcb designs to filter/remap some of the MIDI data.

I use my Yamaha HS-8 multikeyboard as the main MIDI note source and to provide SWELL pedal data and also knee-lever on/off data for B4 rotor speed. (The normal HS-8 knee-lever function is for switching sustain on/off).

The HS-8 is also used for selecting B4 presets.

Chinwag mode off for now, let's have some pics.

 


The B4 controller (control surface) in situ.



Slider and pot-racks plus CV switch bracket.
Box made of 1/4" plywood/glue/black satin paint
C'mon, it's cheap


Encoder partly wired.

 



Racks opened-out for access to Jordan's encoder


Pots 10k LIN
These will fit on a 1" pitch horizontally and 1.5" vertically



Sliders 10k LIN
These will fit on a 0.5" pitch once the brown part has been sanded/filed flush ;)
(3mm bolts out of your pc bits box will fit)

 

 


Block diagram

Since I'm using a seperate MIDI note source (Jordan's board is not scanning keys in my case) I had to utilise a MIDI-merge unit. This caused problems, it seems that the merge unit doesn't like handling 'active sensing' or 'timing clock' data which the HS-8 produces in abundance, hung and/or missing notes was the result . The HS-8 also produces lots of aftertouch and swell pedal data. I decided therefore to use an old pcb design of mine to filter/limit some of these messages. I could also use it to remap some of the MIDI codes. The SWELL pedal and knee-lever needed remapping, not absolutely necessary since I had been using midiox and midiyoke for this (www.midiox.com). This pcb is also used to remap the HS-8 preset buttons (16 of them) into 2 groups of 8 (8 banks of 8 presets) thus giving 64 presets, something which I couldn't fathom using midiox. Jordan's board will encode 'preset switches' but since the HS-8 already had 16 buttons I wanted to use those.

 

FILTERED OUT COMPLETELY:
FE - Active sensing
F8 - Timing clock
D0 nn - Upper aftertouch
D1 nn - Lower aftertouch
B2 40 nn - HS-8 pedal sustain (this 'holds on' B4 pedals)
F0........F7 - Sysex

C2 00 to C2 0F - PKB preset change ch3 (HS-8 buttons 1 to 16) not reqd
CF 00 to CF 0F - Ch16 preset change ch16 (HS-8 buttons 1 to 16) not reqd

 

FILTERED OUT PARTIALLY:
BF 0B nn - Swell pedal - 50% of data removed

 

REMAPPING:
BF 0B nn to B0 0B nn - HS-8 swell pedal (Ch16 to ch1)
B0 40 nn to B0 01 nn - HS-8 UKB sustain (knee lever to rotor speed)
B1 40 nn to B1 01 nn - HS-8 LKB sustain (knee lever to rotor speed)

C0 00 to C0 0F - UKB preset change (HS-8 buttons 1 to 16)
C1 00 to C1 0F - LKB preset change (HS-8 buttons 1 to 16)
C0 00 to C0 07 and C1 00 to C1 07 (buttons 1 to 8) are used as presets within a 'BANK'
C0 08 to C0 0F and C1 08 to C1 0F (buttons 9 to 16) are used as preset 'BANKS'
I.e, button 11 selects BANK 3 then button 4 will select preset #20
      button 13 (BANK 5) will now produce #36
      button 6 will now produce #38 etc.

BUTTONS - PRESET - BANK

    BANKS
    9(1) 10(2) 11(3) 12(4) 13(5) 14(6) 15(7) 16(8)
P
R
E
S
E
T
S
8 8 16 24 32 40 48 56 64
7 7 15 23 31 39 47 55 63
6 6 14 22 30 38 46 54 62
5 5 13 21 29 37 45 53 61
4 4 12 20 28 36 44 52 60
3 3 11 19 27 35 43 51 59
2 2 10 18 26 34 42 50 58
1 1 9 17 25 33 41 49 57

 



Filter/Mapper
The case of an old CD-drive is ideal for housing this.

 

FILTER/MAPPER FILES - ASSEMBLY    IMAGE (INTEL HEX)   PRN file



 


The B4 pc sits underneath the HS-8
minus keyboard, mouse and monitor.
The pc is networked for modifying presets etc.

 

The pc has a Creative 'Audigy Player' soundcard (with ASIO drivers) purely for reverb (a slightly modified 'Garage reverb' sounds the best to me) plus a sniff of chorus. Latency is set at 35mS, 25mS may have been acceptable (I can't remember) but 35 gives some 'click overhead' and I find it quite alright for playing. Signal/noise ratio is quoted as 100db and if I release all notes I can't tell that it's switched on. Parameters are set at max treble and a tad above centre for bass. Too much bass and the overtones/undertones/general garbage (B3 emulation) on note B's becomes very noisy.

 


Here are some of the components that you'll need
(if you decide to go this way).

http://rswww.com
467-598 crimp contact

I solder to these instead of crimping
(I don't have a crimping tool) ;)

 


http://rswww.com
contact
shell

2w 296-4934 - 4w 296-4956 -
8w 296-5000
 

 

http://www.rapidelectronics.co.uk/
10k LIN

http://www.rapidelectronics.co.uk/
10k LIN 60mm

 

http://www.rapidelectronics.co.uk/

http://www.rapidelectronics.co.uk/

 

http://www.rapidelectronics.co.uk/


http://www.maplin.co.uk
Soft-Touch Knobs
NC58N - White

http://www.maplin.co.uk
Single Pole 16A Rocker Switch
CL91Y

 

 

http://www.geocities.com/JDPetkov/ or http://geocities.com/midiboutique/

NOTES:
1/. In Jordan's info sheet, slider #1 is the leftmost of each set.
2/. Pots common (up) = +5v goes to the ends of the sliders nearest to you ;)
3/. H14 (Power) I can't remember which is + (and I'm not removing all those knobs)
    so trace it back from the capacitor through the bridge :)

LINKS:
NI B4
J.D.Petkov
www.midiox.com
http://rswww.com
http://www.rapidelectronics.co.uk/
http://www.maplin.co.uk
http://geocities.com/midiboutique/ scroll down to B4CP and take a look
http://www.evolution-uk.com/moreinfo/hardware/uc33.htm
http://www.soundblaster.com/products/audigy/specs.asp

Rays Homepage