# multiple if syntax question

Home Forums General Programming multiple if syntax question

Viewing 20 posts - 1 through 20 (of 40 total)
• Author
Posts
• #71243
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

i have 4 partials and they can have 16 combinations.
i’ve decided the best way to do this is to just list
all 16 combinations, as it isn’t very long.

say the partials are called P1, P2, P3, P4
and i want to say, for example:
if P1==1, P2==0, P3==0, P4==1

ie: partial states are on, off, off, on

what is the correct way to do this? i’ve just put a
comma there for the example.

#71246
dasfaker
Keymaster
• Topics: 80
• Replies: 793
• Total: 873
• ★★★

Yes, you can do it something like this (not tested)

``````local p1 = nil
local p2 = nil
local p3 = nil
local p4 = nil
local sum = nil
if panel:getModulatorByName("P1"):getValue() == 0 then p1 = 0 else p1 = 1 end
if panel:getModulatorByName("P2"):getValue() == 0 then p2 = 0 else p2 = 1 end
if panel:getModulatorByName("P3"):getValue() == 0 then p3 = 0 else p3 = 1 end
if panel:getModulatorByName("P4"):getValue() == 0 then p4 = 0 else p4 = 1 end

sum = (p1*1) + (p2*2) + (p3*4) + (p3*8)``````

sum variable will give you a unique value for every possible combination.

#71247
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

oh…
that looks pretty inscrutable to me.
i looked at the D-50 panel, and it has this:

— Called when a modulator value changes
— @mod http://ctrlr.org/api/class_ctrlr_modulator.html
— @value new numeric value of the modulator

–PartialsOnOff = function(value)

P1 = panel:getModulatorByName(“Partial1_OnOff”):getModulatorValue()
P2 = panel:getModulatorByName(“Partial2_OnOff”):getModulatorValue()
P3 = panel:getModulatorByName(“Partial3_OnOff”):getModulatorValue()
P4 = panel:getModulatorByName(“Partial4_OnOff”):getModulatorValue()

—LowerPartial = (LowerP1 + LowerP2)
—UpperPartial = (UpperP1 + UpperP2)

if P1 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x02, 0x6e, 0x01, 0x0f, 0xf7})) end
if P2 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x02, 0x6e, 0x02, 0x0e, 0xf7})) end
—if LowerPartial == 2 then
—panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x02, 0x6e, 0x03, 0x0d, 0xf7}))
—elseif LowerPartial == 0 then
—panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x02, 0x6e, 0x00, 0x10, 0xf7}))
end

if P3 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x01, 0x2e, 0x01, 0x50, 0xf7})) end
if P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x01, 0x2e, 0x02, 0x4f, 0xf7})) end
—if UpperPartial == 2 then
—panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x01, 0x2e, 0x03, 0x4e, 0xf7}))
—elseif UpperPartial == 0 then
—panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x00, 0x14, 0x12, 0x00, 0x01, 0x2e, 0x00, 0x51, 0xf7}))
end

end

#71248
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

seeing that the D50 is not strictly the same as the D110,
i messed around a bit, and thought of what could be needed,
ie: why not a condition for each of the available possibilities
-this was mainly to have a look at it, and think about it/show
what i’m after – so (don’t laugh) this is where i got to:
(hopefully you can see what i’m getting at)

``````if P1 == 0 + P2 == 0 + P3 == 0 + P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x00, 0x00, 0xf7})) end

if P1 == 1 + P2 == 0 + P3 == 0 + P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x01, 0x00, 0xf7})) end

if P1 == 0 + P2 == 1 + P3 == 0 + P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x02, 0x00, 0xf7})) end

if P1 == 1 + P2 == 1 + P3 == 0 + P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x03, 0x00, 0xf7})) end

if P1 == 0 + P2 == 0 + P3 == 1 + P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x04, 0x00, 0xf7})) end

if P1 == 1 + P2 == 0 + P3 == 1 + P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x05, 0x00, 0xf7})) end

if P1 == 0 + P2 == 1 + P3 == 1 + P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x06, 0x00, 0xf7})) end

if P1 == 0 + P2 == 1 + P3 == 1 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x07, 0x00, 0xf7})) end

if P1 == 0 + P2 == 0 + P3 == 0 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x08, 0x00, 0xf7})) end

if P1 == 1 + P2 == 0 + P3 == 0 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x09, 0x00, 0xf7})) end

if P1 == 0 + P2 == 1 + P3 == 0 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0a, 0x00, 0xf7})) end

if P1 == 1 + P2 == 1 + P3 == 0 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0b, 0x00, 0xf7})) end

if P1 == 0 + P2 == 0 + P3 == 1 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0c, 0x00, 0xf7})) end

if P1 == 1 + P2 == 0 + P3 == 1 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0d, 0x00, 0xf7})) end

if P1 == 0 + P2 == 1 + P3 == 1 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0e, 0x00, 0xf7})) end

if P1 == 1 + P2 == 1 + P3 == 1 + P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0f, 0x00, 0xf7})) end``````

—————————————————————————–
so, now, i don’t know how to present the states of P1/P2/P3/P4
toggle buttons (0/1, off/on) but i thought it might not be too
terrible to have all 16 lines/possibles, and do something that
way. i have zero clue about programming or syntax, *obviously*.

(the message is wrong, but note the value changes. this is essentially
what i want to/need to achieve)

• This reply was modified 7 years, 5 months ago by human fly.
• This reply was modified 7 years, 5 months ago by human fly. Reason: typos
#71250
Possemo
Participant
• Topics: 14
• Replies: 638
• Total: 652
• ★★★

I think you are not far away. Correct syntax for such multiple if conditions: instead of your + symbol put an “and”, like this.

if P1 == 1 and P2 == 1 and P3 == 1 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0f, 0x00, 0xf7})) end

#71254
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

thank you both. very interested in dasfaker’s expression,
and how that works. different level for the no(ew)bie!
(and how do you show it in a box? i get a feeling it isn’t
good to post this stuff ‘raw’ in the forum text – this forum
takes ages to start up in my browser)
would be really good to get an explanation of what each
part means – or some simple reference to read(without
having to read the whole book, yet)
———–
right, so: i’ve tried to do the expression in full with checksums,
and for visibility/legibility i included the binary count, ren-ed
(if that’s what it’s called?) – which makes me think it’s more
convenient to list P1/P2/P3/P4 backwards as P4/P3/P2/P1 to match –
(but i didn’t yet)
so here’s what i’m suggesting, in full:
—————————————————————–

``````--
-- Called when a modulator value changes
-- @mod   http://ctrlr.org/api/class_ctrlr_modulator.html
-- @value    new numeric value of the modulator

-- Partials onoff = function(value)

---P1 = panel:getModulatorByName("Partial1_OnOff"):getModulatorValue()
---P2 = panel:getModulatorByName("Partial2_OnOff"):getModulatorValue()
---P3 = panel:getModulatorByName("Partial3_OnOff"):getModulatorValue()
---P4 = panel:getModulatorByName("Partial4_OnOff"):getModulatorValue()

-- 0000
if P1 == 0 and P2 == 0 and P3 == 0 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x00, 0x70, 0xf7})) end
-- 0001
if P1 == 1 and P2 == 0 and P3 == 0 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x01, 0x6f, 0xf7})) end
-- 0010
if P1 == 0 and P2 == 1 and P3 == 0 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x02, 0x6e, 0xf7})) end
-- 0011
if P1 == 1 and P2 == 1 and P3 == 0 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x03, 0x6d, 0xf7})) end
-- 0100
if P1 == 0 and P2 == 0 and P3 == 1 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x04, 0x6c, 0xf7})) end
-- 0101
if P1 == 1 and P2 == 0 and P3 == 1 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x05, 0x6b, 0xf7})) end
-- 0110
if P1 == 0 and P2 == 1 and P3 == 1 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x06, 0x6a, 0xf7})) end
-- 0111
if P1 == 1 and P2 == 1 and P3 == 1 and P4 == 0 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x07, 0x69, 0xf7})) end
-- 1000
if P1 == 0 and P2 == 0 and P3 == 0 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x08, 0x68, 0xf7})) end
-- 1001
if P1 == 1 and P2 == 0 and P3 == 0 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x09, 0x67, 0xf7})) end
-- 1010
if P1 == 0 and P2 == 1 and P3 == 0 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0a, 0x66, 0xf7})) end
-- 1011
if P1 == 1 and P2 == 1 and P3 == 0 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0b, 0x65, 0xf7})) end
-- 1100
if P1 == 0 and P2 == 0 and P3 == 1 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0c, 0x64, 0xf7})) end
-- 1101
if P1 == 1 and P2 == 0 and P3 == 1 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0d, 0x63, 0xf7})) end
-- 1110
if P1 == 0 and P2 == 1 and P3 == 1 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0e, 0x62, 0xf7})) end
-- 1111
if P1 == 1 and P2 == 1 and P3 == 1 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0f, 0x61, 0xf7})) end

end``````

——————————————————————————
how does that look? i don’t know how many ‘-‘ to use for a ‘ren’,
it doesn’t look like it matters too much (at least 2 with space?)

is this *too long*?
how does it compare with dasfaker’s? and is that a more elegant
formula? i don’t know the maths/logic, so …

(aaw f***, have 3 cats here, squabbling…f*** off you cats…)

• This reply was modified 7 years, 5 months ago by human fly.
#71256
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

ok, so i’m inputting that anyway for now, as ‘myMethod partials’.
i just pasted all that into luaModulatorValueChange, and it doesn’t
look like it’s right, because the bar is red..oh i don’t seem to be
able to examine it now…oh it’s because it’s already open in a window.

the ‘function’ tag was not highlighted blue, like in the example.
i used ‘add new method’don’t think it will work yet, this is a
familiarisation stage. all suggestions welcome at this point.

lets append the text file here>see attached:
lua method Partials select.txt

i’ve disabled ‘sysex’ at midiMessageType, but i’ve left the original
midiMessageSysexFormula where it was; don’t think that will do any harm.
——————————–
small separate question: i’m using the UIbuttonContent entry as
the button title display (Component) but i’ve got a feeling this
could interfere with the button’s state? or is it ok? i’ve got
the same thing for the pitchbend enable buttons, it was to save
UI space at construction stage. i guess i could find another way
for that if it’s problematic. i was just seeing what i could exploit
with the UI display options provided by the program, at the time.

###### Attachments:
You must be logged in to view attached files.
#71259
dasfaker
Keymaster
• Topics: 80
• Replies: 793
• Total: 873
• ★★★

You code is correct, just replace the “end” with “elseif”

``````if P1 == 1 and P2 == 0 and P3 == 1 and P4 == 1 then
panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, 0x0d, 0x63, 0xf7}))
elseif ....``````

My code just lacks the midi message, but you get the same result.

``````local p1 = nil
local p2 = nil
local p3 = nil
local p4 = nil
local sum = nil

if panel:getModulatorByName("P1"):getValue() == 0 then p1 = 0 else p1 = 1 end
if panel:getModulatorByName("P2"):getValue() == 0 then p2 = 0 else p2 = 1 end
if panel:getModulatorByName("P3"):getValue() == 0 then p3 = 0 else p3 = 1 end
if panel:getModulatorByName("P4"):getValue() == 0 then p4 = 0 else p4 = 1 end

sum = (p1*1) + (p2*2) + (p3*4) + (p4*8)

panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, sum, 112 - sum, 0xf7}))
``````
#71260
goodweather
Participant
• Topics: 45
• Replies: 550
• Total: 595
• ★★★

I support dasfaker’s way of programming.
Always try to analyze the logic and build a formula rather than coding all possible cases!
Easier maintenance, less text, less risk of errors (all or nothing works)… 🙂

Try to gradually learn that, human fly. You will feel good each time you derive some few lines formulas instead of trying enumerating all possibilities.
Good luck!

#71262
dasfaker
Keymaster
• Topics: 80
• Replies: 793
• Total: 873
• ★★★

Always try to analyze the logic and build a formula rather than coding all possible cases!
Easier maintenance, less text, less risk of errors (all or nothing works)… ?

Try to gradually learn that, human fly. You will feel good each time you derive some few lines formulas instead of trying enumerating all possibilities.

Wise words, Dominique

#71270
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

woo-hoo – do my little dance – so, what does elseif do/mean?
forgive me, but i do not have the slightest idea yet about
any of this 🙂

yes, i fully appreciate that a nice elegant form is more
economical and efficient, but that was the first time i’ve
even seen what dasfaker showed me. i have a fair experience
with boolean logic using synthedit, and have built some
fairly complex structures there with it – although i wouldn’t
say it was economical, i just had to get stuff to work. the
thing about that is that it is all visual, so you get immediate
feedback.

i will of course try to understand it now. i’m of the school
of get-it-working-and-sort-it-out-later. (and i think we’re all
learning Ctrlr that way, right?)

salut Dom’, Dom ici aussi 😉

#71271
goodweather
Participant
• Topics: 45
• Replies: 550
• Total: 595
• ★★★

Et bien, on est deux Dominique sur Ctrlr! 🙂

Try this course (just found it; seems to be some adds but seems covering Lua and teach you programming step by step – in french)
http://fr.craftstudio.wikia.com/wiki/Tutoriels/Apprendre_%C3%A0_programmer_en_Lua

#71272
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

so, if i may go through your expression, section by section:
(please tell me how to put this stuff in boxes like you do)

``````    local p1 = nil
local p2 = nil
local p3 = nil
local p4 = nil
local sum = nil``````

——————————————————————-
what are these for? local? remember, i don’t know anything about
programming, c++, etc.
——————————————————————-

``````    if panel:getModulatorByName("P1"):getValue() == 0 then p1 = 0 else p1 = 1 end
if panel:getModulatorByName("P2"):getValue() == 0 then p2 = 0 else p2 = 1 end
if panel:getModulatorByName("P3"):getValue() == 0 then p3 = 0 else p3 = 1 end
if panel:getModulatorByName("P4"):getValue() == 0 then p4 = 0 else p4 = 1 end``````

—————————————————————
ok, this refers to the Ctrlr modulator/button itself. k so the first part
is a scanning process? and if it doesn’t match it must be 1?
—————————————————————
`sum = (p1*1) + (p2*2) + (p3*4) + (p4*8)`
—————————————————————
sum. i don’t understand how this works. me cr*p at maths.
—————————————————————
`panel:sendMidiMessageNow(CtrlrMidiMessage({0xf0, 0x41, 0x10, 0x16, 0x12, 0x04, 0x00, 0x0c, sum, 112 - sum, 0xf7}))`
—————————————————————
? sum, 112 – sum, ? not recognising how this generates the checksum

hehe i’m english> Dominic 😉 no problem, i can read that.

• This reply was modified 7 years, 5 months ago by human fly.
#71274
goodweather
Participant
• Topics: 45
• Replies: 550
• Total: 595
• ★★★

Sorry Dominic. Try finding equivalent stuff where you will learn programming. In fact you can learn with whatever language. Each of them have their specific syntax that you must get used to, each of them have also specific ways of handling data BUT all share the same basic elements (declaring variables, loops, conditions, input/output, functions/subroutines…).

In the beginning above, you declare the variables (=placeholders) that will contain some data. They are initialized to nil which is a special wor din Lua saying “empty”

local means that the variables are only valid within this function. You can use the same variable name in another function and it will be different. If you are not using the keyword local then you can share the content of the same variables throughout your complete program/panel

Then you have 4 condition statements if something is true then do this else do that end
panel:getModulatorByName(“P1”):getValue() is something specific to Ctrlr implementation. You use it to retrieve a value from a modulator.

each Pn is a 0 or a 1 and thus represents a bit in binary (base 2)
a decimal number is a number in base 10. You can express the same number (0 to 15 for example) in binary with 4 bits (P1 to P4) by multiplying each bit to its corresponding value.

10 = 0 x (10 exp 0) + 1 x (10 exp 1) this is decimal representation
10 = 0 x (2 exp 0) + 1 x (2 exp 1) + 0 x (2 exp 2) + 1 x (2 exp 3) = 1010 in binary
10 = 0x1 + 1×2 + 0x4 + 1×8
You find back the formula used by dasfaker to calculate a sum…

THen you observer all your if statements and you will see that first a sum is calculated then 112-sum is also calculated. All the rest remaining the same…

To this explanation, you should know about hexadecimal representation… Like binary (base 2), decimal (base 10) you have hexadecimal (base 16)
In hexa, you go 01 to 09 then A, B, C, D, E and F to reach 15
So, 10 = 0A = 0101

Now you can understand dasfaker’s code and the message that is sent 🙂

So many things to learn…What a wonderfull world!

#71275
dasfaker
Keymaster
• Topics: 80
• Replies: 793
• Total: 873
• ★★★

Great. I couldn’t explain it better, I have no academic programming formation (what I know was learned here) and English is still a barrier for me. I even still get lost when talking about bits, binaries and all that naming stuff.

Einstein said once that you don’t understand something until you can make you grandma understand it… so there’s a long way ahead.

Human fly, to put code on a post, select the text and press the button “code”.

#71277
SWB
Participant
• Topics: 35
• Replies: 157
• Total: 192
• ★★

to put code on a post, select the text and press the button “code”.

Doesn’t seem to work for my code-snippet…

#71278
dasfaker
Keymaster
• Topics: 80
• Replies: 793
• Total: 873
• ★★★

`It works here`

I see two yellow text fields over the buttons saying:

“You can use BBCodes to format your content”
“Your account has the ability to post unrestricted HTML content”

Maybe some of you don’t have this option?

#71281
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

`trying again`

a- haa, worked this time: click code to create an
apostrophe, type whatever, and your ‘code’ button
now is ‘/code’ and when you’re done click it again,
and it closes the apostrophied part, and it comes
out in red like that.

that is a superb explanation, loads of starter info,
thanks.

• This reply was modified 7 years, 5 months ago by human fly.
• This reply was modified 7 years, 5 months ago by human fly.
• This reply was modified 7 years, 5 months ago by human fly.
• This reply was modified 7 years, 5 months ago by human fly.
• This reply was modified 7 years, 5 months ago by human fly. Reason: sussing something out
• This reply was modified 7 years, 5 months ago by human fly.
#71288
human fly
Participant
• Topics: 124
• Replies: 1070
• Total: 1194
• ★★★★

i did at one point have ambitions to write my sequencers
in C++, but i had to put it off. i think you might have
just got me a little bit closer to being able to do stuff
like that.

at least i know what ‘declaring variables’ means now lol.
i’m pretty conversant with hex, i keep a table on my desktop

sum = (p1*1) + (p2*2) + (p3*4) + (p4*8)
yes, of course, if high, bit=1, bit2=2 bit3=4, bit4=8,
and it’s either 0x or 1x

what does exp mean?
and where does 112 come from?

• This reply was modified 7 years, 5 months ago by human fly.
#71289
goodweather
Participant
• Topics: 45
• Replies: 550
• Total: 595
• ★★★

exp = exponent
2 exp 0 = 1
2 exp 1 = 2
2 exp 2 = 2 x 2 = 4
2 exp 3 = 2 x 2 x 2 = 8
etc…

Didn’t check the actual content/meaning of the message (just looked at it to explain) so I let dasfaker explaining the 112-sum…

4 cats here but they are sleeping right now…
Looks like many of us with synths are also having cats.
Worth a thesis to understand 😉

Viewing 20 posts - 1 through 20 (of 40 total)
• The forum ‘Programming’ is closed to new topics and replies.
There is currently 0 users and 62 guests online
No users are currently active
Forum Statistics
Threads: 2,495, Posts: 17,374, Members: 77,605
Most users ever online was 12 on January 22, 2019 3:47 pm