acid test

thanks for the maiden trace @aeoner (thanks for asking for the trace @jaseknighter!).

this was my bad - I’m on my own branch of norns and didn’t realize that my version of lattice had diverged. I updated acid test so it includes the version of lattice I need. this should fix your’s too @renegog!

v0.2.0

  • added swing (PARAMS > sequence > swing) (ping @branch)
  • added note names in the main UI (ping @momone)

love your first trip!! (no bugs even? :wink: if you do find they are always appreciated :bug:)

that’s something like adding triplets, right? currently you can do note holds, so you can get multiples of the current division, but you can’t switch between a 1/4 and a 1/3 base division (i.e. between 1/8 and 1/12)…except you could programmatically by constantly setting the division parameter (i.e. mapping it to a midi device). I’ll have to think about it for adding it per-note…it might require another markov chain.

6 Likes

@infinitedigits, i found a small bug that prevented just friends mode from being enabled. i just submitted a PR with an update that should resolve the issue.

:heart:

2 Likes

Maybe I’m not using the correct terms. Triplets sounds like something else, I’m just talking about 16th notes. When placing notes in a grid of 16 I always alternate between 2 and 3 steps spacing. Doing this with another Markov chain sounds rather good.

Love the script - I tried it with Just Friends and it works great - it’s very different to acid basslines and I guess shows an alternative use for folks that haven’t used it yet.

8 Likes

@infinitedigits Ah, thank you for adding the notes! A minor issue though, whenever I load the script, it launches automatically when selected; however, once I stop the sequence, everything just stops responding. I have to relaunch once again to get it to run again.

When inside Markov Mode (accessing it while the sequence is running) I found I could stop/start the sequence; however, doing so on the main page just makes everything freeze up.

I’m including the traceback error if it helps, reckon the bug is in the redraw function. Reverting back to an old version of that function gets rid of that error and the script runs as intended. Will keep on going at it but reckon the more intelligent minds on here might fare better!

Apologies if this is unhelpful – today is the first time I actually have a go at Lua. :slight_smile:
`

matron
supercollider
stack traceback:
[C]: in function ‘error’
/home/we/norns/lua/core/clock.lua:65: in function ‘core/clock.resume’
norns.script.load(“code/acid-test/acid-test.lua”)

script clear

script clear

script clear

script load: /home/we/dust/code/acid-test/acid-test.lua

script load: /home/we/dust/code/acid-test/acid-test.lua

script load: /home/we/dust/code/acid-test/acid-test.lua

including /home/we/dust/code/acid-test/lib/mm.lua
including /home/we/dust/code/acid-test/lib/mm.lua
including /home/we/dust/code/acid-test/lib/mm.lua
including /home/we/dust/code/acid-test/lib/design.lua
including /home/we/dust/code/acid-test/lib/design.lua
including /home/we/dust/code/acid-test/lib/design.lua
including /home/we/dust/code/acid-test/lib/halfsecond.lua
including /home/we/dust/code/acid-test/lib/halfsecond.lua
including /home/we/dust/code/acid-test/lib/halfsecond.lua

script run

script run

script run

loading engine: AcidTest

reading PMAP /home/we/dust/data/acid-test/acid-test.pmap
m.read: /home/we/dust/data/acid-test/acid-test.pmap not read.

loading engine: AcidTest

reading PMAP /home/we/dust/data/acid-test/acid-test.pmap
m.read: /home/we/dust/data/acid-test/acid-test.pmap not read.

loading engine: AcidTest

reading PMAP /home/we/dust/data/acid-test/acid-test.pmap
m.read: /home/we/dust/data/acid-test/acid-test.pmap not read.

Engine.register_commands; count: 7
Engine.register_commands; count: 7
Engine.register_commands; count: 7
___ engine commands ___
___ engine commands ___
acidTest_bass fffff
acidTest_bass fffff
acidTest_bass_gate i
acidTest_bass_gate i
acidTest_delay fff
acidTest_delay fff
acidTest_drum sfff
acidTest_drum sfff
acidTest_lead fffff
acidTest_lead fffff
acidTest_lead_gate i
acidTest_lead_gate i
acidTest_reverb iff
acidTest_reverb iff
___ polls ___
___ polls ___
amp_in_l
amp_in_l
amp_in_r
amp_in_r
amp_out_l
amp_out_l
___ engine commands ___
amp_out_r
amp_out_r
acidTest_bass fffff
cpu_avg
cpu_avg
acidTest_bass_gate i
cpu_peak
cpu_peak
acidTest_delay fff
pitch_in_l
pitch_in_l
acidTest_drum sfff
pitch_in_r
pitch_in_r
acidTest_lead fffff
acidTest_lead_gate i
acidTest_reverb iff
___ 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

script init

connected to virtual
connected to virtual
starting halfsecond
starting halfsecond

script init

connected to virtual
starting halfsecond
lua: /home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/acid-test/acid-test.lua:523: attempt to index a nil value (field ‘?’)
stack traceback:
[C]: in function ‘error’
/home/we/norns/lua/core/clock.lua:65: in function ‘core/clock.resume’
lua: /home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/acid-test/acid-test.lua:523: attempt to index a nil value (field ‘?’)
stack traceback:
[C]: in function ‘error’
/home/we/norns/lua/core/clock.lua:65: in function ‘core/clock.resume’
lua: /home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/acid-test/acid-test.lua:523: attempt to index a nil value (field ‘?’)
stack traceback:
[C]: in function ‘error’
/home/we/norns/lua/core/clock.lua:65: in function ‘core/clock.resume’

Summary

This text will be hidden

`

2 Likes

You just made a bunch of tired devs smile and get all misty-eyed.

5 Likes

nice!!! that’s so cool. I’m so excited for you!! you know once you dip your toes in lua, there’s a lot of wonderful fun stuff in norns ocean :slight_smile:

I highly recommend some fun education norns scripts - there are bunch to play with and will give you SO much knowledge on how to make your own scripts (and fix problems / add features to ones that already exist):

  • first light - a small instrument you code
  • norns studies - comprehensive practical norns coding (I made a script based on one of the studies! barcodes. that’s how much fun these are)
  • splice - a simple but complex sequencer
  • nornsilerplate - a nice boilerplate when making your first script

(you don’t have to make your own scripts. but its still nice to know how they work because no one minds if you want to scratch out a bunch of a existing script to make it your own - I do this all the time :). also everyone here is learning too so don’t hesitate to ask questions if you get stuck learning.)

I really appreciate the error snippets!!! :smiley: I think you might’ve found the error with them. on line 523 of acid-test.lua I am referencing a variable designs[1] and assuming it has a property .seq:

 if designs[1].seq~=nil and designs[1].seq.data~=nil then

its possible there is a race condition where designs[1] isn’t assigned and doesn’t have the seq property and I haven’t checked for it here. so could you try changing it to this line?

if designs~=nil and designs[1]~=nil and designs[1].seq~=nil and designs[1].seq.data~=nil then

that will thoroughly check whether designs is assigned before calling it and pushing an error.

(it might not be the only problem, I will take a look as well, but that is my first guess that you are welcome to try :slight_smile: )

5 Likes

@infinitedigits
i ran into the same problem tonight.
:stuck_out_tongue:
i’m still running the previous OS (not running: 220129) on all norns and i haven’t run any script updates for the past several days.

still got plenty of noiz out of it but the screen would freeze.

1 Like

Was just getting started, pulled the latest version, and lo and behold it’s working now, didn’t realize the last commit was an hour ago! :grin:

In any case, still really neat to dive into it and really appreciate the encouragement and the references. Think I’ll spend more time with the tutorials and maybe have a go at editing the script to enable switching the base division, i.e. 1/32 → 1/16 – might be more difficult than it sounds but I’m excited!

Again, thank you everyone for your encouragement and support! Cheers!

1 Like

v0.2.1

  • bug fix: freezing problem caused by nil variable (I think this should help your issue @SPIKE)

oops! I had a bit of time and wasn’t sure I gave you the right instructions, so I tried it myself and it fixed it… so the instructions were good. in any case, now there is a play-by-play on bug fixing :slight_smile:

that sounds cool! let me know if you have questions. and feel free to send a PR if you’d like to merge your change into moonraker. (or feel free to make your own fork i.e. momone-moonraker! either way makes me happy to see community code changes to a script).

1 Like

Not sure how helpful this is but this strongly reminded me of The Endless Acid Banger, which is on Github and might give you some ideas.

5 Likes

Has anyone gotten this to work with the Behringer TD-3? For mine, it seems to play the first bar or two and then then I get no sound after that.

So, I recorded the midi sequence from acid-test into Ableton and this is what I see.

https://imgur.com/wn5dYpF

I am able to replicate this issue by replaying this back into the TD-3. I suspect it is due to the long held notes generated by acid-test that is confusing the TD-3.

1 Like

@infinitedigits
hey ya!

i’m not sure if this is a bug or not…but it is an issue.

running into a MIDI issue.
i have an Avalon…and…well i figured this would BE a great script to run with it. :stuck_out_tongue:
problem is…it’s not triggering any notes on the Avalon.

i tested a few other scripts…(Flora, Groovecats, Cheat Codes 2)
AWAKE works great…but every other script i tried didn’t trigger the Avalon.

just not sure now why AWAKE will work perfectly but nothing else.

i know acid test triggers the Virus B just fine.

thanks for any help!

2 Likes

yeah it does look like something is going on with the note off’s in acid test. I’ll look into this. I maybe didn’t notice it because I’ve just been using it with monosynths and one-shot samples.

1 Like

I keep getting “error: load fail” when trying to load the script.

script load: /home/we/dust/code/acid-test/acid-test.lua

cleanup

script clear

including /home/we/dust/code/acid-test/lib/lattice.lua

SCRIPT ERROR: load fail

/home/we/dust/code/acid-test/acid-test.lua:30: module ‘sequins’ not found:

no field package.preload[‘sequins’]

no file ‘/home/we/norns/lua/sequins.lua’

no file ‘/home/we/norns/lua/core/sequins.lua’

no file ‘/home/we/norns/lua/core/params/sequins.lua’

no file ‘/home/we/norns/lua/lib/sequins.lua’

no file ‘/home/we/norns/lua/softcut/sequins.lua’

no file ‘/home/we/dust/code/sequins.lua’

no file ‘/usr/local/share/lua/5.3/sequins.lua’

no file ‘/usr/local/share/lua/5.3/sequins/init.lua’

no file ‘/usr/local/lib/lua/5.3/sequins.lua’

no file ‘/usr/local/lib/lua/5.3/sequins/init.lua’

no file ‘/usr/share/lua/5.3/sequins.lua’

no file ‘/usr/share/lua/5.3/sequins/init.lua’

no file ‘./sequins.lua’

no file ‘./sequins/init.lua’

no file ‘/usr/local/lib/lua/5.3/sequins.so’

no file ‘/usr/lib/arm-linux-gnueabihf/lua/5.3/sequins.so’

no file ‘/usr/lib/lua/5.3/sequins.so’

no file ‘/usr/local/lib/lua/5.3/loadall.so’

no file ‘./sequins.so’

no file ‘/home/we/dust/code/acid-test/lib/sequins.so’

no file ‘/home/we/dust/code/acid-test/lib/sequins.so’

stack traceback:

/home/we/norns/lua/core/norns.lua:144: in function </home/we/norns/lua/core/norns.lua:144>

[C]: in function ‘require’

/home/we/dust/code/acid-test/acid-test.lua:30: in main chunk

[C]: in function ‘dofile’

/home/we/norns/lua/core/script.lua:186: in function </home/we/norns/lua/core/script.lua:186>

[C]: in function ‘xpcall’

/home/we/norns/lua/core/norns.lua:145: in field ‘try’

/home/we/norns/lua/core/script.lua:186: in function ‘core/script.load’

/home/we/norns/lua/core/menu/preview.lua:23: in function ‘core/menu/preview.key’

/home/we/norns/lua/core/menu.lua:140: in function </home/we/norns/lua/core/menu.lua:117>

script clear

lua: /home/we/norns/lua/core/clock.lua:71: bad argument #1 to ‘resume’ (thread expected)

stack traceback:

[C]: in function ‘coroutine.resume’

/home/we/norns/lua/core/clock.lua:71: in function ‘core/clock.resume’

Any thoughts on this would be much appreciated

Thank you

your norns needs to update to run this script

Thank you for the super quick response. Have to re-flash. Thank you again

1 Like

@infinitedigits I am just getting started with this script and I was wondering what the kick vol and snare vol are used for under the PARAMETERS / engine menu? Having tons of fun evolving three note sequences with a 1/10 division in the meantime =)

1 Like

kick and snare are drum sounds in the engine that are triggered if you uncomment these lines. :egg:

1 Like

Ooooh nice - thanks so much for the heads up and for acid test! Gonna go and try and scramble that :egg: =)

1 Like