8 bit sample playback with various speed
-
@d-healey they just read out the rom faster and slow down or speed up the sampling rate ... a sampler would bring everything to 44.1 by interpolating it somehow
-
@Morphoice Try it and see how it sounds
-
@d-healey give me a bit to compare the approach with the real LinnDrum and post some audio samples. btw is it even possible to post audio samples in the forum?
-
Playback without interpolation is easy. But I'm pretty sure the hardware sound is more complex than that. It would be hard to recreate unless you can obtain sounds that have been sent through the machine, before and after to see exactly how the bit depth and aliasing ends up.
-
@Morphoice said in 8 bit sample playback with various speed:
btw is it even possible to post audio samples in the forum?
Not sure, but you could upload it to google drive or similar and share a link.
-
@griffinboy I do own the machine, so I could do those recordings but I think it's not really necessary. At normal pitch ranges you don't hear a lot of difference, the aliasing only ever really becomes audible at extremely low pitches...
I've seen a couple of companies emulate old 8bit DACs and I am simply curious how this is done. I'd give it a try if there was a simple way to turn interpolation off in the HISE sampler
-
Yeah you'll need a custom implementation.
I'm working on one but I can't promise it'll be done soon I've got lots of other work to to!
I do want to start handing out freebies, but as you can see lots of my work isn't quite ready : )It's amazing that you own this hardware, perhaps I should reach out, I was thinking to get in contact with someone who owns hardware to buy some specific recordings. I'm working on some realistic oscillator simulations and need validation data.
-
@Morphoice - theres a couple of faust implementations of bit reduction/down sampling on the tinter-webs you might want to try a couple of these, here's one:
declare id "bitdowner"; declare name "BitDowner"; declare category "Distortion"; declare author "Viacheslav Lotsmanov (unclechu)"; declare license "BSD"; declare copyright "(c) Viacheslav Lotsmanov, 2015"; import("stdfaust.lib"); gain = vslider("input_gain", 0, -40, 40, 0.1) : ba.db2linear : si.smooth(0.999) ; bitLimit = 16; downbit = vslider("bit_down", bitLimit, 1, bitLimit, 0.1) : (2 ^ (_-1)) ; downsampling = vslider( "downsampling", 1, 1, 200, 1) : int ; volume = vslider("volume", 0, -90, 12, 0.1) : ba.db2linear : si.smooth(0.999) ; // from 0 till x (ba.if x is 5 then [0,1,2,3,4]) counter(x) = int(_)~(_ <: ba.if(_<(x-1) , _+1 , 0)); // downsampling dsWet(s,c) = _~(ba.if(c == 0 , s , _)); ds(s) = // dry signal ba.if downsampling disabled ba.if(downsampling > 1 , dsWet(s,counter(downsampling)) , s) ; hardLimit(s) = ba.if(s>1, 1, ba.if(s<-1, -1, s)); // bitdowning bd = *(downbit) : floor : /(downbit) : hardLimit; chan = *(gain) : bd : ds : *(volume); process = _,_:chan,chan;
-
Yeah that'll help, I thought of that but didn't know whether that mirrors what one of these machines actually does. I'm not super knowledgable about early digital
-
These older samplers were more akin to a digital delay in the way they changed pitch, with a clock controlling the sample rate of the DAC. This is big part of their sound in addition to the low bit rate and anti-aliasing filters.
There's some good info here:
https://electricdruid.net/experiments-with-variable-rate-drum-sample-playback/And a few words from Mr. Linn himself:
https://www.kvraudio.com/forum/viewtopic.php?t=567891 -
@Lindon jesus christ that actually sounds fantastic and close enough to the real thing, if you tweak the downsampling just right and reduce to 8 bit.
the only difference is on the real LD on very low pitched samples there are some high pitched artifacts
check this recording from my LinnDrum SnareI'm not even sure though this is desirable in a plugin and I don't really know what causes it. Might well be the old DACs needing replacement. This unit needs quite a bit of repair, I've been at it with Bruce Forat for months and still couldn't bust all the bugs
-
@modularsamples absolutely correct! I've replaced those Curtis Filter chips many times, they are really hard to get by these days. It's especially important on the bass (kick) channel, it would sound utterly unusable otherwise. I remember burning an 808 sample onto an eprom and using it in the snare slot which isnt lowcut. The bunch of high frequency content was insane.
-
@Morphoice One of the first projects I started in HISE was gonna be an emulation of the Akai s612, it never got off the ground 'cos the sound wasn't even close (not least 'cos the ADC and pre-amp are doing something best described as magic). So I'm keen to see where you go with this.
Maybe this is the key to really nailing the sound? get it as close to the unfiltered sound as possible then everything falls into place after that..
-
@modularsamples have you had a look at Decimort? basically what we're trying to do
-
@Morphoice I hadn't, it sounds really nice though.. Having looked briefly at the manual, it appears the signal flow is essentially:
Gain > Bitcrusher > Low Pass Filter 1 > Sample & Hold > Low Pass Filter 2 > Multimode Filter
Nothing that can't be done in scriptnode, at least on paper.. To recreate how LPF 1 & 2 interact with with the sample and hold would be tricky, not sure how you'd approach that exactly, linking the controls but with the value going to the filter being passed through a cable_expr node, maybe.