Forum Replies Created
-
AuthorPosts
-
could this be a pseudo-random problem?
where it has a pattern with the first random?i’ve noticed the same ‘increment only’ thing going
on with the other pitch modulator (-360<>+240) in the
other mode. this is a show stopper at the moment.it is NOT the negative values. it’s working fine with
the other modulators with negative range.well i tried that, and it didn’t work either.
end up with a table of 61 items, as a panel pre-load table,
and then do:
rnd=math.random(tbl_multipitchval[1],tbl_multipitchval[61])
and it’s very odd but it still goes always incrementing,
even if the jumps are random.
must be something else i’m doing wrong.edit: i realise that, above isn’t correct, btw, because it’s only
taking the values of the keys. i tried doing:for j=1,61 do pval = tbl_multipitchval[j] end
in order to define pval as the thing to randomise, followed by:
rnd=math.random(pval)
didn’t work either. *still* went incrementing…something odd here.
(er, no: just wrong, because i’m still getting the value of the key,
not the key, with that…start again)ok so now i’ve applied your advice with this:
function randMultistep() -- This variable stops index issues during panel bootup if panel:getRestoreState() == true or panel:getProgramState() == true then return end -- ----------------------------------------------------- math.randomseed(Time.getMillisecondCounterHiRes()) --[ seeder for 32bit ]-- -- ----------------------------------------------------- local param=nil -- local min=nil -- local max=nil local rnd=nil for i=1,1 do param=tbl_multistepParam --[ multistep params ]-- --[any value range]-- min = -36 --param:getProperty("modulatorMin") max = 24 --param:getProperty("modulatorMax") rnd=math.random(min,max) param:setModulatorValue(rnd*10,false,false,false) end for i=2,4 do param=tbl_multistepParam --[ multistep params ]-- --[any value range]-- min = param:getProperty("modulatorMin") max = param:getProperty("modulatorMax") rnd=math.random(min,max) param:setModulatorValue(rnd,false,false,false) end end
and it’s working and i’m getting divisions in 10s.
however: all that parameter is doing is incrementing, in
a loop: stepping up to maximum, and then starting again
at the minimum. does this have anything to do with it
using a mix of negative and positive values? should i just
have a translation table for it to fetch end values from?
could be the simplest solution. (but why does it do this???)Goodweather and Possemo will be able to tell you all about that.
am not familiar with it, but it will involve a timer callback.
maybe you will find what you need in the Pro2 panel. or perhaps
the matrix1000 panel.ok, i didn’t apply your method yet. but i’m observing
something strange with the randomising of this parameter,
which goes from -360 to +240: it just seems to be going
in incrementing direction – ?? – and then looping round
to the start again. very odd, can’t explain this.
i’m going to reload the previous version to see if it
was doing this ( i just copied this modulator several
times – but they all have unique names so it shouldn’t
matter?)the random script is same as before.
the other parameters ones are ok.current version of the file: >>
for anyone who wants to have a look.
i’ve found the sizes and layout for a 6oct representation
of a keyboard with labels, with a reasonable size for text
here.
also created a lot more display space for the controls,
whilst making the overall size smaller, so should be able
to do something with that. could be interesting for display
of all 12 ‘multi’ key offsets together – with a few presets
maybe, for quick setup.NB: this is more of a study in UI design than a proper panel
project, still, at this stage. lol was hoping to engage a bit
more discussion … 🙂>obviously not a final colours and layout view, still in roughcut.
really have to see how parameters update with button select, to
see what’s going on – keys also display on keyboard when clicked,
not visible here.Attachments:
You must be logged in to view attached files.getting more elegant with the layout, smaller/more compact.
still got loads to figure out. one or two little tricks in
Lua though – hey i eventually learnt to do a few things with
it :pso it looks like the only way to amend table entries would
be to rewrite the table, maybe using a temporary local table?
i’ll check this out again later.>>panel version below
- This reply was modified 5 years, 10 months ago by human fly.
Attachments:
You must be logged in to view attached files.yes that seems to be the simplest.
s’pose if it was for min/max, can do the same,
dividing it first.would like to randomise and overwrite a key/index
in a table, for 12 consecutively numbered tables.
ie: get the first key, ‘pitch offset’, for each
of the 12 multi-step pads, and perform operations,
usch as randomise, reset, pitch ascending, descending,
etc.wondering how i can do this if i only have one set of
modulators… each pad recalls a table of values to send
to the modulators. it has to rewrite the tables, randomising
the value of myTable..n[ 1 ], for 12 individual pad tables.
and then retrieve the appropriate table depending on which
pad is currently selected. (…)re-arranged, simplified the UI:
(ahem.. quite chuffed with this: memorizes and retrieves
tables for Voice, KeyAssign, and the Multi steps – check
by randomizing pad values, changing keydata, etc.)
‘dev reload’ resets everything. single/multi assigns
current selected pad to 12 top pads in that KeyData memory.
(none of the other left side buttons do anything yet, apart
from save which collects some info on keydata to console,
and keybd/pad which toggles the keyboard display view, in
progress)so this is more or less the structure for the operation
of the panel. now needs work on LCD layout, more info in
the Multi display – and MIDI channel and note in/out.- This reply was modified 5 years, 11 months ago by human fly.
Attachments:
You must be logged in to view attached files.last version for today. now only shows
the current kit button in multimode.
have to exit to change kits now.
>panelAttachments:
You must be logged in to view attached files.sorry, that one crashes a method, try this one,fixed.
Attachments:
You must be logged in to view attached files.now memorising and recalling offset parameters for
12 multisteps x 5 user keydata.ie: each ‘keydata’ memory can only have one multi,
the multi just replaces the regular ‘key assign’ status
of those pads. that would mean you can set up 5 multis
using all 5 user keydata.using same sort of thing as with writing voices and
keyassign parameters.
value change triggers buildMultistep method.
fetchMultistep is in LibraryA
added a couple of new tables for it.
(a bit of a mess in there still but it sort of hangs
together)Attachments:
You must be logged in to view attached files.slightly improved version. that’s it for today.
Attachments:
You must be logged in to view attached files.note that it captures last selected Key as the source
of the Voice that will be place across the top row.(all very rough-sketched, proof of concept etc.)
edit: there’s a bug if you click ‘Keyboard'(/’Pads’)
when ‘Multi’ is enabled: the pad uiTabs disappears.have to select ‘Single’ and operate the Keyboard/Pads
button to restore view.little bit of progress.
see what you think of this version > panel below
(these panels have no external resources so they
should run straight off as intended)it’s happening in ‘panelSelect’ method – very drawn out
in there at the moment, with parts repeated – why i wanted
to use subfunctions – but it’s beginning to behave like the
multi-voice mode. have not yet built the pitch etc. offsets
per ‘multi-key’ (toprow 1-12) – and: not confident yet how
many voices can be multikey: i assume one multikey per
‘keydata’ set? ie: 0-4maybe that’s wrong: you were talking about being able to
have one multi on each midi channel. what happens on the
machine is you get to job# 03? and it says multi or voice?
and you go ‘yes’ to go multi with that Voice. eg: all the
top row ‘Keys’ of that RAM keydata group now adopt that
Voice, and the Multi pitch offset etc. parameters.the remaining bottom row behave as before, with their
individual ‘Key Assign’ parameters dictating their pitch,
and other Key Assign parameters.yup, so that answers it for me: 5 multi tables needed,
working in same way as tables for the Voice and Key Assign
tabs. (when Multi is selected, the uiTabs calls a 3rd page.
these parameters will use the same system for retrieving
and writing to individual tables, is the plan.)feel free to point out if that’s wrong, it’s how i
interpret it atm.also, one thing that is confusing in the sysex spec is
where the midi note and channel settings belong:
note and channel in, but also
note and channel out, which appear to be in separate
parameter categories. eg: per voice, or key, or system.Attachments:
You must be logged in to view attached files.‘general’, ‘resources’, ‘utility’.
panel:getModulatorByName(“myName”):setValue(myValue, false, false)
this one will send the changed value to the midi-out. Usually you don’t want that to happen so this is not the best way of setting a value. AFAIK the two booleans (false,false) do not do anything. Correct me if I am wrong.[quote]far be it from me to correct anyone ! 🙂 *however* 🙂 i’ve got a setValue working here with
true, true
– as suggested to me by … (? will have to check)
seems to work, anyway (needs investigating further). this is how i’ve got it currently,
having changed it from this version below:panel:getModulatorByName(“myName”):setModulatorValue(myValue, false, false, false)
One of the three booleans will prevent sending the changed parameter to midi-out if set to “false”. I don’t remember which one it is, but it does not matter as the two other ones are useless. So set them all to “false”.ok, so i shall revert back to this (was first way that i was using).
panel:getComponent(“myName”):setValue(myValue, false, false)
Yes this does work as well. But why should you use this one? Well first it won’t send the value to midi-out. That’s one good point. Much more important: I suspect that Ctrlr will handle this somewhat “multithreaded”. You will see it when you let move a modulator by script forth and back (think as a software LFO). It will work much smoother than doing it with “getModulator…”. But alas there are drawbacks too. Sometimes it will just not get the right value when trying to get it by ..getValue(myValue). Erratic behavior – sometimes it works as expected, sometimes not.surprised by this one, as i didn’t think a ‘component’ could have a value property.
i tend to think of the ‘modulator’ as the absolute, and the ‘component’ as the screen
identity/display, something like that. cannot find anything there to do with ‘value’.anyway, i’ve just found something really strange with one of my sliders not
displaying the modulator value correctly in the Utility page. have a feeling
i might have to re-create that slider/modulator, if i’ve managed to create
new properties somehow (can happen, and i’ve forgotten how to sort that out).(sorry, seem to have messed up with italics, thought i was being clever.)
uiTabs turned out fine, just had to specify/call the
tab with setProperty.i make a little progress, slowly slowly. 🙂
yeah well, it’s getting horribly complicated with the
‘multi’ thing.what happens on the drum machine itself is that you
get the top row all the same voice, with pitch offset,
and then the rest retain their normal function.trying to represent this in Lua is total :p
nowhere near sending a sysex message yet !i will have to do a simple panel with a few faders to
test that.or maybe just skip Multi for the time being. made a start
on it anyway; found out how to have the same voice for all
12 pads, or revert back to normal selection if not the top row.
(actually almost about the sell the machine anyway)- This reply was modified 5 years, 11 months ago by human fly.
-
AuthorPosts