tapedeck

Excited to install this today, I think my first little norns project might be to tack on a really simple 2 channel asynchronous looper onto the front of this, to relieve ally desires for cassette or reel to reel loopers

5 Likes

will test it out tonight, was just looking at this at the front screen, as it was slow to respond to input.

did a couple of tests running audio through, was getting a fair bit of distortion, admittedly pouring in quite a flood of dense audio:

Summary

new script

os.execute("top -bn1 -p pidof scsynth")
top - 03:09:26 up 5:06, 0 users, load average: 1.07, 0.74, 0.51
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.0 us, 1.9 sy, 0.0 ni, 92.0 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 927748 total, 26948 free, 357096 used, 543704 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 423948 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5047 we -2 0 241660 173188 94236 S 93.8 18.7 26:49.61 scsynth
true exit 0
os.execute("top -bn1 -p pidof scsynth")
top - 03:10:23 up 5:07, 0 users, load average: 1.52, 0.92, 0.59
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.1 us, 1.9 sy, 0.0 ni, 91.9 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 927748 total, 26356 free, 357644 used, 543748 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 423444 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5047 we -2 0 241660 173188 94236 S 100.0 18.7 27:46.01 scsynth
true exit 0

then again with the tap turned right down:

Summary

os.execute("top -bn1 -p pidof scsynth")
top - 03:15:41 up 5:13, 0 users, load average: 0.72, 0.92, 0.70
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.3 us, 1.9 sy, 0.0 ni, 91.6 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 927748 total, 21380 free, 356808 used, 549560 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 418480 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5047 we -2 0 241660 173188 94236 S 50.0 18.7 31:47.02 scsynth
true exit 0

Would there be expected complications compiling Mads’ code, vs grabbing the convenient, norns pre-compile from your repo? To put it another way i guess: does this repo modify and differ from the upstream code?

PS Always fun when there’s an academic paper :nerd_face:

2 Likes

I love the idea and the demo sounds fantastic! Please excuse a newbie’s ignorance here however I’m wondering if this only takes external input through the audio jacks or if we can use internal sounds/recordings as well.

2 Likes

what do you mean “pouring in dense audio”? were you playing audio from TAPE on the norns? or just through the external in (which shouldn’t make a difference)? what kind of norns do you have (shield/grey box/fates)? what settings are you using to get to 100% cpu usage with tapedeck?

only minor complications. Mad’s port works perfectly well, but it depends on DasiySP which currently has a few lines that break on Raspberrry pi’s (see this issue). I modified those lines to fix it and compiled, I’d imagine you’d have to do the same to compile on yours. but then they should be identical…

by default, no. however it can be accomplished using jack_connect/jack_disconnect to reroute some of the JACK connections. I don’t have a norns with me atm to check the exact command but its something like:

jack_disconnect crone:output_5 SuperCollider:in_1; jack_disconnect crone:output_6 SuperCollider:in_2; jack_connect ?? SuperCollider:in_1; jack_connect ?? SuperCollider:in_2

and then you have to reverse that (or restart your norns) to get back to default. (not sure what the ?? should be, check the list with jack_lsp -c to choose).

2 Likes

I have a stock Norns Shield 200323, and this just taking in audio from AUM on the iphone, if the effects or settings are pushed up in either fx, there is a lot of distortion and then the system crawls and won’t release.

Summary

os.execute("top -bn1 -p pidof scsynth")
top - 05:29:47 up 3:37, 0 users, load average: 1.44, 1.36, 1.03
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.2 us, 2.0 sy, 0.0 ni, 91.7 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 927748 total, 321016 free, 341544 used, 265188 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 437844 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
593 we -2 0 241660 170768 93640 S 100.0 18.4 22:52.83 scsynth
true exit 0

Is the current example of it crawling and making it difficult to quit out of the script.

It makes me very happy when I adjust a mapped parameter and it displays what I am changing on the screen (regardless of the “page” displayed)… wish all scripts did that. More importantly, it sounds great. Thanks for your work on this!

3 Likes

Mapped everything to midi and I’m finding that when I twiddle knobs something in the high/low/shelf of the distortion crashes the audio engine until I reload the script. Will look at maiden output next time

trying to install Tapedeck and am getting this error from Maiden on boot.


loading engine: Tapedeck

reading PMAP /home/we/dust/data/tapedeck/tapedeck.pmap

m.read: /home/we/dust/data/tapedeck/tapedeck.pmap not read.


meanwhile , it just hangs on the “loading…” prompt infinitely in norns. Looking in the script directory, I don’t see a tapedeck.pmap file.

  • now I’m seeing that error with a lot of scripts so I guess this is a larger problem.

** NVM! restart fixed everything :person_shrugging:

just for background on that pmap message: when a script is loaded, norns tries to pull up any existing MIDI mapping previously made for the script. if there’s no MIDI map file, then it won’t load and that message will print to maiden. not an error, just a report :slight_smile:

glad it all worked out with a restart! stoked for you to dig in :gem:

1 Like

Tested it out yesterday and it sounds great! This + the Norns compressor basically takes care of my longing for a “last in the chain” FX unit like an OTO BOUM or Analog Heat. Any idea how easy it would be for me to port some of the other plug-ins available?

3 Likes

I’m getting this error on Fates:

CALL STACK:
	DoesNotUnderstandError:reportError
		arg this = <instance of DoesNotUnderstandError>
	Nil:handleError
		arg this = nil
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError
		arg this = <instance of Thread>
		arg error = <instance of DoesNotUnderstandError>
	Thread:handleError
		arg this = <instance of Routine>
		arg error = <instance of DoesNotUnderstandError>
	Object:throw
		arg this = <instance of DoesNotUnderstandError>
	Function:protect
		arg this = <instance of Function>
		arg handler = <instance of Function>
		var result = <instance of DoesNotUnderstandError>
	SynthDef:build
		arg this = <instance of SynthDef>
		arg ugenGraphFunc = <instance of Function>
		arg rates = nil
		arg prependArgs = nil
	Function:play
		arg this = <instance of Function>
		arg target = <instance of Group>
		arg outbus = [*2]
		arg fadeTime = 0.02
		arg addAction = 'addToHead'
		arg args = nil
		var def = nil
		var synth = nil
		var server = <instance of Server>
		var bytes = nil
		var synthMsg = nil
	Engine_Tapedeck:alloc
		arg this = <instance of Engine_Tapedeck>
	< FunctionDef in Method CroneEngine:init >  (no arguments or variables)
	Routine:prStart
		arg this = <instance of Routine>
		arg inval = 8.015889906
^^ ERROR: Message 'ar' not understood.
RECEIVER: nil

e: well a reinstall fixed it. Who knows!

1 Like

its all SuperCollider based and there are loads of other great SuperCollider fx out there. GitHub - 21echoes/pedalboard: A simple collection of chainable effects for the Norns sound computer. is a script that manages tons and tons of fx.

there are more fun things to play with in the PortedPlugins as well as Mi-Ugens (which has also been ported to norns but with a SuperCollider you can trick out your own specialized Mutable Instruments fx system).

great! maybe it needed to rebuild SC classes…don’t know either :slight_smile:

8 Likes

tapedeck sounds really fabulous and is so flexible and lovely to use, much gratitude!

2 Likes

I’m getting the hang on loading too. I reinstalled it and it’s the same thing. Any ideas?

I’m on a shield and the latest image.

did you follow the extra instructions to install the ported plugins? have you restarted your norns?

Plugs yep, restart I did I’ll get the graphic but it’s not responding. I installed lots of things this eve tbh and a lot of them are flaky. I’m wondering if I should just write down everything I have and start a new image.

can you copy and paste the output of maiden when it stops working?

Weirdly, it froze and I didn’t want to yank the power to restart it. So I tried the restart command in Maiden and it came to life with the restart. Have no idea what’s going on today.
If it freezes up again I’ll copy and paste.