Edit [4 dec 20]: worst post, writer advice.
Using linear interpolation to generate 1D Perlin Noise in pico8:
function _init()  -- 1d noise vars  octavescount=6  fscalingbias=1.5  --size1d=2^n  --size1d=128 -> end=start  --size1d=256 -> end!=start  size1d=256  noutputsize=size1d  fnoiseseed1d=fillrandom1d()  fperlinnoise1d=perlinnoise1d(noutputsize,fnoiseseed1d,octavescount,fscalingbias) end function _draw()   cls()   drawpn1d() end function perlinnoise1d(ncount, fseed, noctaves, fbias)  foutput={}  for x=0,(ncount-1) do   fnoise=0.0   fscaleacc=0.0   fscale=1.0   for o=0,noctaves-1 do    npitch=ncount/(2^o)    nsample1=flr(x/npitch)*npitch    nsample2=flr((nsample1+npitch)%ncount)    fblend=(x-nsample1)/npitch    fsample=((1.0-fblend)*fseed[nsample1])+(fblend*fseed[nsample2])    fscaleacc+=fscale    fnoise+=fsample*fscale    fscale=fscale/fbias    end   foutput[x]=fnoise/fscaleacc   end  return foutput end function fillrandom1d()  rndvector={}  for i=0,size1d-1 do   rndvector[i]=rnd(1)  end  return rndvector end function drawpn1d()  for i=0,size1d-1 do   aux=fperlinnoise1d[i]*80   rect(i,128-aux,i,128,12)  end end
A poem to an old messed up post.