Foulplay

that is very odd. everything looks ok to me on my norns. have you updated foulplay?

are you on a factory norns?

does your param menu look like this?

I’m using a shield, not sure how that would affect the result though. Here’s a much less classy version than yours, so you see what I’m seeing.

1 Like

Wowee! That is super strange :exploding_head:

Can you delete and re-install the script?

My memory is hazy here, but I believe this happened to me while developing my own ack-based script when I had a saved paramset that was from an old version of my script. So: maybe try deleting all the pset files in data/foulplay/? And make sure your ack is up to date as well :thinking:

1 Like

@SPIKE, i figured out the midi start/stop thing! i’ll have a fix tomorrow :grin:

1 Like

thank you!!!
sorry for opening a can of worms!

1 Like

FWIW, I removed & reinstalled FoulPlay, made sure Ash was up to date and removed pattern data. It still shows up wierd. Is there any other app that uses the same parameter sub-system ?

try updating Ack, not Ash

Cyrene also uses Ack (it’s the app I was developing where I said I saw something similar during development)

have you opened maiden to see error messages when this happens? seeing error logs would be helpful

Sorrt for that, but it was up to date too. here’s the log when I instantiate foulplay:

> 1
> 
> matron
> 
> sc
> 
> # script load: /home/we/dust/code/foulplay/foulplay.lua
> 
> # cleanup
> 
> # script clear
> 
> ERROR (i2c/hp) failed to write
> 
> pset >> write: /home/we/dust/data/system.pset
> 
> # script run
> 
> loading engine: Ack
> 
> >> reading PMAP /home/we/dust/data/foulplay/foulplay.pmap
> 
> m.read: /home/we/dust/data/foulplay/foulplay.pmap not read.
> 
> Engine.register_commands; count: 31
> 
> ___ engine commands ___
> 
> delayFeedback f
> 
> delayLevel f
> 
> delaySend if
> 
> delayTime f
> 
> disableLoop i
> 
> dist if
> 
> enableLoop i
> 
> filterCutoff if
> 
> filterEnvAttack if
> 
> filterEnvMod if
> 
> filterEnvRelease if
> 
> filterMode ii
> 
> filterRes if
> 
> includeInMuteGroup ii
> 
> kill i
> 
> loadSample is
> 
> loopPoint if
> 
> multiKill iiiiiiii
> 
> multiTrig iiiiiiii
> 
> pan if
> 
> reverbDamp f
> 
> reverbLevel f
> 
> reverbRoom f
> 
> reverbSend if
> 
> sampleEnd if
> 
> sampleStart if
> 
> speed if
> 
> trig i
> 
> volume if
> 
> volumeEnvAttack if
> 
> volumeEnvRelease if
> 
> ___ 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
> 
> ERROR: paramset cannot nest GROUPs
> 
> ERROR: paramset cannot nest GROUPs
> 
> ERROR: paramset cannot nest GROUPs
> 
> ERROR: paramset cannot nest GROUPs
> 
> pset >> read: /home/we/dust/data/foulplay/foulplay-01.pset
> 
> pset :: /home/we/dust/data/foulplay/foulplay-01.pset not read.
> 
> ERROR (i2c/hp) f

And Cyrene shows the same strange behavior in the parameters: Here’s the log for it

# script load: /home/we/dust/code/cyrene/cyrene.lua

# cleanup

# script clear

ERROR (i2c/hp) failed to write

### initializing data folder

including /home/we/dust/code/cyrene/lib/sequencer.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

including /home/we/dust/code/cyrene/lib/grids_patterns.lua

including /home/we/dust/code/cyrene/lib/euclidean.lua

including /home/we/dust/code/cyrene/lib/ui/euclidean.lua

including /home/we/dust/code/cyrene/lib/ui/util/label.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

including /home/we/dust/code/cyrene/lib/euclidean.lua

including /home/we/dust/code/cyrene/lib/ui/details.lua

including /home/we/dust/code/cyrene/lib/ui/util/label.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

including /home/we/dust/code/cyrene/lib/ui/pattern_and_density.lua

including /home/we/dust/code/cyrene/lib/ui/util/label.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

including /home/we/dust/code/cyrene/lib/ui/more_density.lua

including /home/we/dust/code/cyrene/lib/ui/util/label.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

including /home/we/dust/code/cyrene/lib/ui/euclidean.lua

including /home/we/dust/code/cyrene/lib/ui/util/label.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

including /home/we/dust/code/cyrene/lib/euclidean.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

including /home/we/dust/code/cyrene/lib/ui/grid.lua

including /home/we/dust/code/cyrene/lib/ui/util/devices.lua

pset >> write: /home/we/dust/data/system.pset

# script run

loading engine: Ack

>> reading PMAP /home/we/dust/data/cyrene/cyrene.pmap

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

Engine.register_commands; count: 31

___ engine commands ___

delayFeedback f

delayLevel f

delaySend if

delayTime f

disableLoop i

dist if

enableLoop i

filterCutoff if

filterEnvAttack if

filterEnvMod if

filterEnvRelease if

filterMode ii

filterRes if

includeInMuteGroup ii

kill i

loadSample is

loopPoint if

multiKill iiiiiiii

multiTrig iiiiiiii

pan if

reverbDamp f

reverbLevel f

reverbRoom f

reverbSend if

sampleEnd if

sampleStart if

speed if

trig i

volume if

volumeEnvAttack if

volumeEnvRelease if

___ 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

ERROR: paramset cannot nest GROUPs

ERROR: paramset cannot nest GROUPs

ERROR: paramset cannot nest GROUPs

ERROR: paramset cannot nest GROUPs

pset >> read: /home/we/dust/data/cyrene/cyrene-01.pset

pset :: /home/we/dust/data/cyrene/cyrene-01.pset not read.

ERROR (i2c/hp) failed to write

so starting from the top:

  1. your norns is up to date? Menu > System > Update shows “up to date.”?
  2. your ack is up to date? http://norns.local/maiden/ > Library > Installed shows ack at fbda143?
  3. your foulplay and cyrene are both up to date? (425e9a0 and 4642c46 in Maiden’s library, respectively)
  4. have you slept the device recently? Try sleeping & re-booting

The stack trace says it’s trying to nest param groups, which implies to me you have the new params system, but somehow your versions of the scripts are trying to add the wrong number of parameters in each group (so it starts the next group before it finishes the prior one). ack is the library @justmat and I are both using which manages its own parameters and we’re each putting inside our own custom groups-per-track, so the fact a) it’s broken in both of the scripts, and b) groups are what’s broken for you definitely still has me thinking that your ack is somehow out of date (or has otherwise been modified somehow)

1 Like

Unfortunately I’m rebooting often and my system is up to date. I’ve just gotten the system and Foulplay was the first community app I installed. Although I don’t know lua, I’m a developer by trade so if it helps, I can try to debug some stuff if you point me in the right direction.

Thanks for your time both of you !

In your video above, I see that you are missing a couple of params that were introduced to Ack back in April. Between, Filter env mod and dist, you should have params for sample rate and bit depth. That, plus your track 1 group containing 2 of track 2s params, definitely makes me think Ack is out of date, even though it’s showing the correct version number.

Maybe try deleting/re-installing Ack and sleeping?

2 Likes

WOW. That did it :smiley:
Thanks @Justmat

4 Likes

Yay! Glad you got it sorted! :partying_face:

2 Likes

running into an issue with Foulplay tonight.

i was loading samples and after about loading 5 samples it locked up on me.
maiden didn’t give a readout on anything.
:frowning:
norns was frozen.
i left it alone for a minute to set up some other noiz and came back to the frozen norns.
i refreshed maiden and sent it a ;restart.

tried loading samples again.
to test things…i loaded only four samples and it was playing and syncing to MIDI clock.
stopped everything.
started loading more samples but when i got to sample 6 it froze on me again.

same thing…left it alone for a minute or two and refreshed maiden.
sent a ;restart.

thanks for any help!

eek! :sweat: i will poke around with sample loading today and see if i can reproduce. :grin:

1 Like

Love this app!
I’ve been trying to sync up clock and start/stop between Foulplay and a Moog matriarch to no avail.

Is there anyway to implement a clock out in the parameters section like in the rudiments app?
The rudiments app which uses beatclock does successfully send clock and start/stop to my matriarch.

I’m completely new to scripting/lua so any guidance would be greatly appreciated…thx!

1 Like

Github says midi start/stop was added a couple months ago. Are you updated to the most recent version?

EDIT - although looking at the code, I don’t see actual midi start/stop anywhere - just clock start/stop

Clock should be sent if you have the params CLOCK section set to midi. Start/Stop may NOT be being sent tho… so something like this would be needed in the foulplay script:

(totally untested code)

m.event = function(data)
  local d = midi.to_msg(data)
  if d.type == "start" then
    if stopped then 
      clock.transport.start()
    end
  elseif d.type == "continue" then
    if not stopped then 
      clock.transport.stop()
    else 
      clock.transport.start()
    end
  end 
  if d.type == "stop" then
    clock.transport.stop()
  end 
end
2 Likes

Yeah, the midi start/stop in the commit history is just for Norns clock responding to midi start/stop messages. Foulplay doesn’t send midi s/s… yet. But, I see the value in it, and will try to implement it tomorrow. :sweat_smile:

Thanks for the code snippet @okyeron!!

3 Likes