|
|||||||
![]() |
|
|
Thread Tools |
|
|
#1 |
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
K1.3 8-Voice Drawbar Organ (3538)
Despite the availabilty of very good VSTi Drawbar Organs these days, I couldn't resist spending some time implementing the drawbar principle in DSP microcode. (What can I say, I'm a sucker for those 'ol' keys.) http://members.home.nl/nahutec/kxleslie/k13.png A real Hammond organ has about 80 to 91 tone generators (tonewheels or electronics) and 9 drawbars to perform it's additive synthese. To keep DSP resource usage reasonable I settled for; 8 voices polyphony and 4 drawbars. (4/9*3 = 1.3, hence the name k1.3 ) Each voice uses 4 sine oscilators so we have a total of 8*4=32 sine oscilators. That plus the additional microcode for gating, VCA, Percussion, Filter, Rotary etc. already makes it a hefty resource eater. I have followed Hammond design 'rules' as much as possible; - Register frequencies (pipelenghts) as hammond - Foldback on high pitches - Percussion re-triggers only when all keys released - High Cut filter on Swell pedal etc.. How does it sound? http://members.home.nl/nahutec/kxleslie/kx_drawbars.mp3 Not as a B3 of course. The sines are to 'clean'. Nevertheless I have fun playing/messing around with it eventhough I own a copy of NI's B4. Usage: -Select MIDI-IN Device and Channel as you would do in any other Midi app. You can NOT use any kX Control Midi Port! (because a kX plugin runs as a thread from kxmixer.exe) To play directly from your Midi Keyboard, simply select kX UART. To play from a sequencer, you'll need MIDIYOKE virtual midi driver. The last Midi Settings are remembered and used the next time you load the plug. -kX Automation is not used! Instead the Organ uses it's own MIDI implementation. So far the mapping is; -Drawbar 1 to 4 = CC12,13,14,15 -Volume = Volume CC07 -Slow/fast = Modulation -Swell = Expression -If the Organ recieves Midi data correctly, it's indicator will turn Green and 'Voices in use' are displayed. (Use this to check connections) -Percussion: The organ uses (steals) the 4th drawbar for percussion. To get authentic Hammond Percussion set the 4th bar's combo to [2 2/3'] or [4] Download for 3545; http://members.home.nl/nahutec/kxleslie/3545/organ.kxl Update "8-voice Drawbar Organ v1.1b (3538)": -Fixed a small bug in pitch calculation. http://members.home.nl/nahutec/kxleslie/organ.kxl 3537 version; Compiled for 3537 driver version. (with build-in driver version check) http://members.home.nl/nahutec/kxleslie/organ_3537.zip /LeMury Last edited by Lex Nahumury; Aug 19, 2008 at 07:37 AM. Reason: update |
|
|
|
|
|
#2 |
|
Long Time ***** Friend
|
LOL LeMury:
This sounds good man! And that's some mighty fine playing youre doing! Very cool playing, indeed! Tell me it's you playing and not a MIDI file you got from somewhere?
__________________
![]() May a song always touch you in a positive way. SONAR X1D Expanded, Windows 7 Pro 64Bit, MOTU UltraLite MK3, 150 GB HDD, 250 GB HDD, 1 TB x2 HDD 7200 rpm My Music Production: Top 40, Contemporary Christian, Pop/Rock, Decent Rap, Inspirationals, and Children Songs Last edited by thomasabarnes; Apr 28, 2005 at 12:40 AM. |
|
|
|
|
|
#3 |
|
DriverHeaven Senior Member
Join Date: Dec 2002
Location: Brazil
Posts: 1,137
Rep Power: 0 ![]() |
That's really awesome LeMury! And by the way, where has that "old" rotary speaker effect you were programming gone? Is it the one built in here? Have you tried using one of the fuzz/distortion effects to make it dirtier?
__________________
www.palcomp3.com.br/ed |
|
|
|
|
|
#4 |
|
kX user
Join Date: Apr 2004
Posts: 851
Rep Power: 0 ![]() |
Very nice! You could use parabolas instead of sines for a more "dirty" sound and this will save you quite a lot of registers in expense for instructions. The only bad thing I see is the high resource usage, but I think this is compensated by the great sound.
This is the first completely finished kX instrument! I'm so happy, I knew someday we'd come to this level of development . Kx gives us so many possibilities.
__________________
Miss you, Steve... |
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
Jamming along with the drum track I got pretty off beat at times but I decided to leave it this way and not to quantize. All you here is drum & Organ. Pretty amazing what 'only' 8 voices can do isn't it? The initial idea was to play the bass line with some Bass guitar, but before I knew I found myself playing the bass line on the organ. /LeMury |
|
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
Long time no see. (spending to much time on your emu-card ?)Yep. The build-in rotary is a somewhat simplified version. I haven't spend much time on it, so there's room for improvement there. Yes I have plans to implement some build-in distortion but haven't experimented yet. /LeMury |
|
|
|
|
|
|
|
||
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
Although I doubt it will improve the sound drasticly, shifting resource usage from GPRs towards Instructions sounds interresting. Quote:
without using a substantial amount of DSP resources. Oh what am I talking,..You know that just as well as I do Tiger! Anyway, .On to something more constructive; What really may 'beaf up' the sound is feeding each voice's output into a seperate soft clipper (eventualy followed by lowpass filtering to roll off the highs) That would mean; 8*clipper microcode. Since you are the expert here on clipping, do you have any suggestions on very 'small footprint clipping code'? Clipping Parameters would be global for all 8 voices. /LeMury |
||
|
|
|
|
|
#8 |
|
kX user
Join Date: Apr 2004
Posts: 851
Rep Power: 0 ![]() |
In your code you use two state registers per sine oscillator. With the following sine approximation you use only one state register, but one more instruction:
Code:
macw counter, counter, frequency, 1 tstneg tmp, counter, counter, 0 interp out, counter, tmp, 0 It is not a perfect sine, so you have several frequencies above the base and this may probably substitute a 'footprint' soft clipper. Otherwise, you could use the 'log' instruction for soft clipping, but it's not very good in my oppinion, since the curve is not perfect, so we end up with much more frequencies than we want and aliasing could easily step up ![]() As we know we have twice more instructions available than registers, so this ratio in my oppinion should be maintained for all effects.
__________________
Miss you, Steve... |
|
|
|
|
|
#9 |
|
DriverHeaven Addict
Join Date: Feb 2003
Location: slovenia
Posts: 269
Rep Power: 0 ![]() |
damn man that sounds superSWEET!
nice playing too. the drum track is tight! will this work on 37?
__________________
[kokoon] |
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
I'll implement it to see how it sounds as a whole and report back. /LeMury |
|
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
I doubt any 38 kxl will run on <38, but it's no big deal to compile the Organ for 3537 (or older) if people want that. Come to think of it,.. most musicians probably still use 3537 because of Max's excellent UFX. /LeMury Last edited by LeMury; Apr 28, 2005 at 07:24 PM. Reason: typo |
|
|
|
|
|
|
#12 |
|
DriverHeaven Junior Member
Join Date: Mar 2004
Posts: 35
Rep Power: 0 ![]() |
Hello LeMury
Im using an EMU1820 card now, but I kept the 3537 driver on my old computer and I keep returning to this forum just for the reading. About this B3-clone, I'm totally amazed. You kx-programmers are so much more "creative" (haha) then the EMU-people. Keep up the good work - and I would love to be able to try your drawbar organ with ver 3537. //W2L |
|
|
|
|
|
#13 | |
|
kX user
Join Date: Apr 2004
Posts: 851
Rep Power: 0 ![]() |
Quote:
__________________
Miss you, Steve... |
|
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
It started to sound more like an Accordion (Harmonica? don't know what it's called in english). That's a pitty since it is indeed easier to program a stable osc with your algoritme. Anyway;.. it tells me that the typical 'tonewheel sound' is not a matter of adding harmonics to the fundamentals. (makes sense since adding harmonics is what the drawbars are for..duh) The dirty B3 sound is more about picking up all kinds of mechanical noises, rummble, crosstalk etc. etc. Add to that the overall (tube) distortion from both Leslie as well as B3 pre-amp and voila..! /LeMury Last edited by LeMury; Apr 28, 2005 at 07:46 PM. Reason: typos |
|
|
|
|
|
|
#15 |
|
kX user
Join Date: Apr 2004
Posts: 851
Rep Power: 0 ![]() |
You could try implementing a global waveshaper, which would saturate just slightly. You could use the same sine approximation formula with a slight modification:
f(in)=in*(1-abs(in)*0.5) It clips very softly and might add that little 'touch' that you need to make the sound more realistic. Anyway, it sounds very good the way it is.
__________________
Miss you, Steve... |
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Update "8-voice Drawbar Organ v1.1b":
-Fixed a small bug in pitch calculation. (See download link in first post) /LeMury |
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
On user request:
3537 version. (See first post for download link) /LeMury |
|
|
|
|
|
#18 |
|
DriverHeaven Junior Member
Join Date: Mar 2004
Posts: 35
Rep Power: 0 ![]() |
Thanks for the 3537-version, LeMury. Now I know what to do this weekend........
//W2L |
|
|
|
|
|
#19 |
|
DriverHeaven Addict
Join Date: Feb 2003
Location: slovenia
Posts: 269
Rep Power: 0 ![]() |
wow this really sounds great... it sounds really versatile. thanks alot for this 3537 version.
i wouldn't mind some more complete synths built this way...
__________________
[kokoon] |
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
Hmm,..let's see what that brings. /LeMury |
|
|
|
|
|
|
#21 | |
|
Apple Fanboy?
|
Quote:
__________________
Chris - The Aussie Super Mod
Hardwareheaven Rules - Sig Request Thread How you can help HardwareHeaven by using Digg! Hardwareheaven Super-Moderator |
|
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
http://members.home.nl/nahutec/kxSyn..._That_Bass.mp3 /LeMury |
|
|
|
|
|
|
#23 |
|
Apple Fanboy?
|
i'll take a listen when i get home
__________________
Chris - The Aussie Super Mod
Hardwareheaven Rules - Sig Request Thread How you can help HardwareHeaven by using Digg! Hardwareheaven Super-Moderator |
|
|
|
|
|
#24 |
|
DriverHeaven Addict
Join Date: Feb 2003
Location: slovenia
Posts: 269
Rep Power: 0 ![]() |
sir please let us have this
__________________
[kokoon] |
|
|
|
|
|
#25 |
|
Long Time ***** Friend
|
LeMury that's cool man, dude you be jamming!!!!!!
|
|
|
|
|
|
#26 |
|
Apple Fanboy?
|
that synth owns
__________________
Chris - The Aussie Super Mod
Hardwareheaven Rules - Sig Request Thread How you can help HardwareHeaven by using Digg! Hardwareheaven Super-Moderator |
|
|
|
|
|
#27 |
|
Alternative Audioproductions
Join Date: Sep 2003
Location: Germany / Sachsen-Anhalt
Posts: 1,710
Rep Power: 0 ![]() ![]() |
I would say: HAMMERGEIL! Unbelievable! And you think ít´s unfinished? It sounds cool for now, not really necessary to finish it in any kind
. I think about a new setup only with synths and organs and so on, seems I can sell my other stuff someday.
|
|
|
|
|
|
#28 |
|
kX user
Join Date: Apr 2004
Posts: 851
Rep Power: 0 ![]() |
I noticed that the amplitude of the signal is not equal at all pitches it, varies even on two neighbouring keys. This is most probably due to the sine algorithm. I used the same one when I started doing synthesis on the emu dsp and I left it off because of this problem, which deepens when the algorithm is used for FM.
Are you reinitializing the two state registers after frequency change?
__________________
Miss you, Steve... |
|
|
|
|
|
|
|
|
DH Senior Member
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64 ![]() ![]() ![]() ![]() |
Quote:
(You probably didn't 'switch off' the rotary entirely) /LeMury |
|
|
|
|
|
|
#30 |
|
kX user
Join Date: Apr 2004
Posts: 851
Rep Power: 0 ![]() |
On the higher pitches. It seems that the higher bands dissappear.
http://img.photobucket.com/albums/v4...tinTT/test.jpg
__________________
Miss you, Steve... |
|
|
|
![]() |
| Thread Tools | |
|
|