tapedeck

tapedeck

live tape fx (saturation, distortion, wow/flutter).

moonraker

this is a tape deck emulator - providing four stages of effects:

  1. tape bias/saturation
  2. tape distortion
  3. wow / flutter
  4. low-pass / high-pass filtering

this script is built off the shoulders of many extraordinary feats of ingenuity - this norns engine combines the incredible plugins ported by Mads Kjeldgaard (@madskjeldgaard) (portedplugins) which are ported from Jatin Chowdhury’s ChowDSP-VCV-rack project. the key here is Jatin Chowdhury’s open-source code for physical modeling of tape machines, which is beautifully detailed in this paper. this script merely bundles these things into a convenient script.

a demo

best listened with headphones. tape fx begin around 10 seconds. audio from the leftmost norns is going into the rightmost norns which is running tapedeck. (the leftmost norns is running another script I’m working on which is sequencing the strega which is the only sound source here).

Requirements

Documentation

see the PARAMS menu for all the parameters.

parameters are accessible through the main UI too -

  • K2/K3 toggles between stages (tape, distortion, wow/flutter)
  • E1/E2/E3 manipulate parameters for that stage

some notes:

note 1: when starting this script it will turn your monitor down all the way to only hear the incoming sound through the tapedeck. when you exit the script, the monitor will be returned to you previous setting.

note 2: the “dist fx” (stage 2) has a lot of gain - you can either adjust the input levels (via the MIXER screen) or the wet/drive level of the effect to manipulate the effect of this gain.

note 3: the “wow / flutter” (stage 3), when activated (i.e. non-zero) will act on a delayed buffer of the live input - expect a latency of 100-200 ms when this is activated.

Install

the install process requires 3 steps to properly install!

  1. install via script manager, or open maiden and below the “matron” tab enter:
;install https://github.com/schollz/tapedeck
  1. in the same “matron” tab install the plugins with this command:
os.execute("cd /tmp && wget https://github.com/schollz/tapedeck/releases/download/PortedPlugins/PortedPlugins.tar.gz && tar -xvzf PortedPlugins.tar.gz && rm PortedPlugins.tar.gz && sudo rsync -avrP PortedPlugins /home/we/.local/share/SuperCollider/Extensions/")
  1. restart your norns.
112 Likes

I’m excited to try this out, and also I really want to read that paper but the link is broken.

Edit: https://dafx2019.bcu.ac.uk/papers/DAFx2019_paper_3.pdf which is linked from github

5 Likes

wow! no way! i’ve been using chow tape for work on an installation that’s going up next month and this helps a ton :fire::heart:

1 Like

20 characters of This looks cool!

You are on fire.
:v:t4::v:t4::crossed_fingers:t4::v:t4::v:t4:

3 Likes

Love it! Just put a track I’m working on through it and it sounds great!

1 Like

Been putting almost every recording thru Chow tape and/or Airwindows ToTape recently so very stoked for this

2 Likes

You are one prolific dude.

1 Like

This is so great - also this is one of the nicest Strega clips I’ve heard so far!

I’m looking forward to using this. I have been using cassette loops in my experiments recently and having fun sending them into Strega. With this I could send the cassette loop audio into norns through ‘tapedeck’ and record onto another cassette loop for instant cassette player ageing :slight_smile:
Another cool idea would be to playback ‘lithops’ loops through ‘tapedeck’ and record to cassette loop, as lithops lets you specify the length of the loop so it’s easy to make a good fit. Thanks for this infinitedigits! :smiley:

2 Likes

Getting a small repeating error, with thread does not exist :

Summary

script clear

script load: /home/we/dust/code/tapedeck/tapedeck.lua

initializing data folder

calling: broadcast mod init

script run

loading engine: Tapedeck

reading PMAP /home/we/dust/data/tapedeck/tapedeck.pmap
m.read: /home/we/dust/data/tapedeck/tapedeck.pmap not read.
Engine.register_commands; count: 24
___ engine commands ___
amp f
dist_bias f
dist_oversample f
dist_wet f
drive f
drivegain f
flutter_amp f
flutter_fixedfreq f
flutter_variationfreq f
highgain f
hpf f
hpfqr f
lowgain f
lpf f
lpfqr f
mode f
saturation f
shelvingfreq f
tape_bias f
tape_oversample f
tape_wet f
wobble_amp f
wobble_rpm f
wowflu f
___ polls ___
amp_in_l
amp_in_r
amp_out_l
amp_out_r
cpu_avg
cpu_peak
pitch_in_l
pitch_in_r

script init

metro_stop(): pthread_cancel() failed; error: specified thread does not exist

It stalls out and hangs for quite some time, and then everything becomes treacle until I reboot norns.

Maiden shows a repeating:

Summary

/home/we/norns/lua/core/menu/select.lua:130: attempt to index a nil value (field ‘?’)

stack traceback:

/home/we/norns/lua/core/menu/select.lua:130: in function ‘core/menu/select.add_favorite’

/home/we/norns/lua/core/menu/select.lua:92: in function ‘core/menu/select.enc’

/home/we/norns/lua/core/menu.lua:113: in function ‘core/encoders.callback’

/home/we/norns/lua/core/encoders.lua:60: in function ‘core/encoders.process’

lua: /home/we/norns/lua/core/menu/select.lua:130: attempt to index a nil value (field ‘?’)

stack traceback:

/home/we/norns/lua/core/menu/select.lua:130: in function ‘core/menu/select.add_favorite’

/home/we/norns/lua/core/menu/select.lua:92: in function ‘core/menu/select.enc’

/home/we/norns/lua/core/menu.lua:113: in function ‘core/encoders.callback’

/home/we/norns/lua/core/encoders.lua:60: in function ‘core/encoders.process’

lua: /home/we/norns/lua/core/menu/select.lua:130: attempt to index a nil value (field ‘?’)

stack traceback:

Summary

This text will be hidden

1 Like

Oddly enough so have I - it’s fantastic, and this is one of those Norns scripts that makes me want to get another Shield as soon as possible.

6 Likes

I’m also starting to get this urge :see_no_evil:

6 Likes

I’m not much of a developer and don’t understand a lot of the more technical stuff in Norns. I’m stuck on trying to get PortedPlugins installed, which I’m guessing I have to have for Tapedeck to run. Can anybody point me to a n00b beginner tutorial on getting that on my Norns so Tapedeck will work? Right now when I select TD in the menu it gets stuck on the loading… screen forever.

Thanks!
David

1 Like

Have you tried to do steps 2 & 3 here? That should take care of it

3 Likes

I did and I was getting an error on the first install command, that was another thing I was trying to diagnose but if I hit the main menu button once or twice it would show the tapedeck UI, so I thought maybe I got it working. Nothing works when it gets stuck like that, I end up having to restart norns because other scripts won’t start after that.

I thought I was missing something else because o that error.

1 Like

Ah yes, that sounds like a Thing for sure. If you wouldn’t mind sharing the error from Matron, somebody might be able to get you back on track.

1 Like

Ayyyy i got it working this morning. Maybe it was restarting my computer or just trying fresh but the commands worked this time! thanks for talking it out with me! Not really sure what’s different, but it’s working. :slight_smile:

4 Likes

the “thread does not exist” is benign I think.

how reproducible is the stalling/hanging? does it happen every time?

Have done a reset on the Shields as it seemed to be getting buggy on a few scripts, so at the moment the purge appears to be working, though did note the CPU usage was at 100 as i pushed the effect parameters. There was some lag in responding to the encoders and buttons, but no crash and no errors thrown up in Maiden.

Feel like this is appropriate to most instances.
Pilot: Something loose in cockpit.
Service Tech: Something tightened in cockpit.