HISE Logo Forum
    • Categories
    • Register
    • Login

    8 bit sample playback with various speed

    Scheduled Pinned Locked Moved General Questions
    19 Posts 5 Posters 438 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • griffinboyG
      griffinboy @Morphoice
      last edited by

      @Morphoice

      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.

      MorphoiceM 1 Reply Last reply Reply Quote 1
      • d.healeyD
        d.healey @Morphoice
        last edited by

        @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.

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        1 Reply Last reply Reply Quote 0
        • MorphoiceM
          Morphoice @griffinboy
          last edited by Morphoice

          @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...

          linndrum-card.jpg

          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

          https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

          griffinboyG 1 Reply Last reply Reply Quote 1
          • griffinboyG
            griffinboy @Morphoice
            last edited by

            @Morphoice

            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.

            LindonL 1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @griffinboy
              last edited by

              @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;
              
              

              HISE Development for hire.
              www.channelrobot.com

              griffinboyG MorphoiceM 2 Replies Last reply Reply Quote 1
              • griffinboyG
                griffinboy @Lindon
                last edited by

                @Lindon

                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

                1 Reply Last reply Reply Quote 0
                • modularsamplesM
                  modularsamples
                  last edited by

                  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

                  MorphoiceM 1 Reply Last reply Reply Quote 1
                  • MorphoiceM
                    Morphoice @Lindon
                    last edited by

                    @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 Snare

                    I'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

                    https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                    1 Reply Last reply Reply Quote 0
                    • MorphoiceM
                      Morphoice @modularsamples
                      last edited by

                      @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.

                      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                      modularsamplesM 1 Reply Last reply Reply Quote 0
                      • modularsamplesM
                        modularsamples @Morphoice
                        last edited by

                        @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..

                        MorphoiceM 1 Reply Last reply Reply Quote 1
                        • MorphoiceM
                          Morphoice @modularsamples
                          last edited by

                          @modularsamples have you had a look at Decimort? basically what we're trying to do

                          https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                          modularsamplesM 1 Reply Last reply Reply Quote 0
                          • modularsamplesM
                            modularsamples @Morphoice
                            last edited by

                            @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.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            29

                            Online

                            1.7k

                            Users

                            11.9k

                            Topics

                            103.3k

                            Posts