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.
    • MorphoiceM
      Morphoice
      last edited by

      Ahoi!

      Here's another thing that's been going around in my mind, having a fair collection of drum machine eproms...

      How would I go about playing back an 8-bit sample with various speeds to get that oldschool 8-bit DAC grit sound without a lot of crazy interpolation? Is that even possible in HISE without having to code my own playback engine (which I surely can't) ;)

      I could simply multi- sample my LinnDrum voices in various pitches but that would not be what I want.

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

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

        @Morphoice If you stretch the sample across the sample map and enable pitch tracking (it's on by default) then the sample will be sped up or slowed down as it's played at different pitches.

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

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

          @d-healey but that will have a rather interpolated sound, that's not really reminiscent of an 80s drum machine, or is there an option to make it dirty and turn off the interpolation?

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

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

            @Morphoice I don't know what you mean by an interpolated sound. How does the 80s drum machine handle it?

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

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

              @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

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

              d.healeyD griffinboyG 2 Replies Last reply Reply Quote 0
              • d.healeyD
                d.healey @Morphoice
                last edited by

                @Morphoice Try it and see how it sounds

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

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

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

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

                  d.healeyD 1 Reply Last reply Reply Quote 0
                  • 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

                                          15

                                          Online

                                          1.7k

                                          Users

                                          11.9k

                                          Topics

                                          103.2k

                                          Posts