Skip to content

Instantly share code, notes, and snippets.

@trentgill

trentgill/geode.lua

Created Jun 11, 2020
Embed
What would you like to do?
--- An exploration of Just Friends' Geode
j = ii.jf -- alias used throughout
function init()
j.mode(1)
input[1]{ mode = 'change'
, direction = 'rising'
}
output[1]( lfo( 5,1) )
voice( 1, 4, 3 ) -- 4 triggers in a single beat
end
counter = 0
input[1].change = function( count )
j.tick(8)
-- incrementing counter
counter = counter +1
if counter > 16 then counter = 0 end
-- conditional rythmic events
if counter == 1 then
output[1]()
voice( 2, 10, 6 )
voice( 4, 3, 2 )
voice( 5, 5, 4 )
voice( 6, 7, 6 )
elseif counter == 8 then
voice( 1, 5, 16 )
elseif counter == 13 then
voice( 3, 7, 16 )
end
end
function voice( chan, divs, repeats )
j.play_voice( chan, vtoi(divs), vtoi(repeats) )
end
function note( divs, repeats )
j.play_note( vtoi(divs), vtoi(repeats) )
end
function vtoi(volts)
return volts/1638.3
end
@electricbard

This comment has been minimized.

Copy link

@electricbard electricbard commented Nov 21, 2020

@trentgill Can you confirm?

To avoid crashes:

ii.jf.trigger(0, 0)
j = ii.jf

@trentgill

This comment has been minimized.

Copy link
Owner Author

@trentgill trentgill commented Nov 21, 2020

@electricbard yes thatll do it. It just makes the alias work without using too much memory due to some weird dynamic loading under the hood

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment