implement initial gesture path

implement initial gesture path

In Gesture Synthesis, a path is a primitive construct that builds up a single gesture from a list of values, which are referred to as gesture vertices. A gesture vertice has 3 components: a scalar value, a rate multiplier that determines duration, and a behavior parameter that determines how to interpolate to the next value.

task id: implement-gesture-path

2024-06-10 08:30: gesture path would be nice this week #implement-gesture-path

2024-06-13 14:21: Gesture Path Initial Scaffolding #implement-gesture-path #timelog:00:55:03

2024-06-13 15:39: Let's see if I can get this design right for choosing the next vertex #implement-gesture-path #timelog:00:15:17

2024-06-13 16:02: Got an initial trait that compiles. Not sure this is the design I want though. #implement-gesture-path

2024-06-14 12:36: Setting up example file scaffolding #implement-gesture-path #timelog:00:14:18

2024-06-14 12:54: Trying to work out how path arguments will work #implement-gesture-path #timelog:00:13:59

I think the path argument might just be a reference to an array of gesture vertices, which seems to mean lifetimes. no no, this will be good for me.

2024-06-14 12:58: Refreshing myself on lifetimes in the Rust book #implement-gesture-path

In theory, I think I have something that might work. But now I have to get back to interfaces.

2024-06-14 13:08: Trying to get the traits working to fit my mental model #implement-gesture-path #timelog:00:41:46

2024-06-14 13:51: Let's see what works and what breaks in the example #implement-gesture-path #timelog:00:59:04

Amazingly, it seems to mostly work.

2024-06-14 14:40: There's a bit of a logic bug. #implement-gesture-path

Right now the example timings are off.

2024-06-14 14:53: Get the example to sing tom's diner #implement-gesture-path #timelog:00:30:20

I realized I had to make sure behavior logic was working as expected (Aval -> (A_dur, A_bhvr) -> B_val)

2024-06-14 15:24: It's working! Adding example to this repo #implement-gesture-path