I have a non Varibright 128 and was wondering if its posisble to adapt some if the scripts that require them (hello_ack, step) to work with my setup.

Earthsea and/or Polysub bug?

With a midi controller attached to earthsea, sending a note number larger than 64 will result in the note not sustaining. I get an attack, then the note drops out and then comes back on at release. Everything seems normal below note number 64.

first thought is that sounds like the filter envelope is sweeping past nyquist and blowing up (or something)

looking at polysub, its a little wonky, final cutoff hz should be clamped after here:
[ https://github.com/monome/dust/blob/master/lib/sc/Engine_PolySub.sc#L64 ]

worth a try

I just created an issue to add support for non-varibright devices to step. In practice this amounts to displaying the playback position at maximum led level. (i have a non-vari grid to test with)

hello_ack should work right now except that the backlight of the row of buttons referring to channels are not lit. Note that my hello scripts are very rudimentary - kind of like “hello world” scripts showcasing an engine.

2 Likes

Should be technically possible. Some apps will require more rethinking than others, though.

1 Like

In a quick review of the Ack info in github, it looks like there was a start on supporting a gate for that engine, but that it was commented out. Any chance of getting that working? It’s the perfect engine to support some of the stuff I want to do with single cycle waveforms (ala http://scw.sheetsofsound.com/editor.html) and dedicated delay effect, but I need more control over gate time that trig gives me.

@jah Might this be possible? Even probable?

What commented out section do you refer to?

Ack voices are automatically freed on end of the AR volume envelope or cut when a new trigger is received for a running voice (voices are monophonic, basically). Gate could in some way be exposed to release voices before AR envelope is released, ie. with a new ”release” command.

I don’t consider Ack a general purpose sample player, though. Ideally, such an engine would feature a ADSR envelope for volume and gate on/off. Should be noted also that SuperCollider has a couple of UGens specific to single-cycle waveforms that might lead to better results.

Have you tried loading single-cycle waveforms in Ack?

I have, and they work great. But I’d like to control how long a note is held, and trig(voice) doesn’t do that. Maybe I’m missing something (and am assuming that is what gate would provide)?

I’m just looking on the sc definition in github. Ack fits all my other needs (good for SCW’s, built-in delay, filter and resonance control)!

[ddg]

@jah - this implies some other way of turning a voice on and off other than a trig. Is that possible?

On the 180906 release, Ack, Gong, and Step do not respond to my vari-bright Grid 128.

It is detected on all USB ports but the Grid does not light up and pressing pads does nothing.

The result is the same whether I start with Grid plugged in or not; and starting from sleep or from a hard reboot.

The grid does work with other scripts (e.g. Earthsea, Boiing, Flin, et al.).

Am I missing something?

1 Like

I believe these scripts might not have been updated for the new grid connection routines.

1 Like

not sure how this was missed, i apologize. i have an update on the way, will correct these scripts.

Do the scripts work if you reattach the grid? They do for me. But this should get fixed.

A new release command would effectively act as a note off or note kill command. Note thoughthat since the ack engine volume envelope has no sustain segment max attack and release time together is the longest note on duration.

FWIW - I rewrote the step grid stuff in my break_step script

All three scripts work when disconnecting and reconnecting the grid. Thanks for your help.

cool! the reason i haven’t switched over step yet is that the new way of handling grid devices do not support retrieval of connected grid’s width. (well not the last time i checked anyway)

You can get the width via grid.devices[index].cols but the index here is the device index, not the vport index, so it makes it a little more tricky. I think you’d need to compare grid.devices[index].name against grid.vport[p_index].name to be sure?

You can confirm the p_index with

gr = grid.connect()
p_index = gr.index -- gets the vport for this connection
print (p_index)

Maybe there’s a feature request here to get the device port or cols/rows added to the connect object?

EDIT: Just submitted an issue to possibly address this

ekombi

obviously you don’t have to use it but this name was the first thing to enter my mind

a nigerian genre of dances and the polyrhythmic music used for ensemble perfomances (mostly drums and reeded instruments)

11 Likes

FYI. With https://github.com/monome/dust/pull/198 Ack now has a kill command to stop a running voice/channel

2 Likes