Thanks for chiming in Alex!
Actually, this brings up a third option—one that is possibly most appealing to me—which is to treat drums/edrums like all the other instruments in Gibber, which would mean that passing a string to their constructor would specify a preset to use. It has always been a bit annoying to have the current inconsistency with other instruments. So:
drums = EDrums('xoxo')
drums = Drums('808').play('xoxo') // or .tidal here
This would make it much easier than it currently is to experiment with different drum sounds. Thanks for reminding me of this! I’d prefer to remove inconsistencies like these in Gibber, and then layer a simple DSL on top of Gibber enabling easier sequencing and targeting beginning programmers etc.
I chose to use
xoxo instead of
oxox like ixi because I liked that the standard kick-snare pattern was hugs and kisses And then that very tongue-and-cheek decision was mirrored by FoxDot and some audio objects for Scratch…
One of my favorite Gibber stories was having kids use the
Speak object in Gibber, but telling them they weren’t allowed to use any “naughty” words. When I told them they could reverse the samples the
Speak object makes, one of them immediately said “Make it say tub backwards.” At that point I just went along with it.
I think so? Every query basically has the signature
pattern, Arc. I need to play more with Tidal to see if this makes sense versus using Gibber’s API for pattern manipulation (which was in turn inspired by Tidal and that Laurie Speigel paper you’ve helpfully referenced over the years).