Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add place sensitive cue points in editor #651

Open
2 tasks
capital-G opened this issue Feb 22, 2024 · 3 comments
Open
2 tasks

Add place sensitive cue points in editor #651

capital-G opened this issue Feb 22, 2024 · 3 comments
Labels
concept a place for meta discussion UX Improvments for user experience

Comments

@capital-G
Copy link
Member

A place for discussion and sketches on how to implement location based services in the editor of Gencaster

Elementary

  • Fire "triggers" based on location which jump to a direction within the graph?
  • Circles are enough for now - polygons would be top
  • Is there a way to include relative positions?
  • Can a POI create a trigger? Or something like a magnet?

ToDo

  • @vin-ni Sketches for editor
  • @capital-G How to intertwine the current (absolute/single execution) graph based approach with "location based triggers"

See also

@capital-G capital-G added concept a place for meta discussion UX Improvments for user experience labels Feb 22, 2024
@capital-G capital-G added this to the GPS improvements milestone Feb 22, 2024
@vin-ni
Copy link
Member

vin-ni commented Mar 5, 2024

Frame 139

@capital-G
Copy link
Member Author

capital-G commented Mar 5, 2024

We had an exchange today on how to tackle the difficulties of generative playback, absolute positions on a map as well as relative/generated positions on a map.

The main idea is to

  • create a map node, which can be entered like any other node and exited based on conditions such as
    • minutes passed
    • exited area
    • visited all areas
  • A map consists of multiple areas (polygons) - these can be entered and if entered, the associated script cells will be executed in a blocking manner. There should be the possibility to exit early (aka not execute all script cells) in case we exit the area. This allows for
    • having overlapping areas in sound as an async playback can be triggered or SuperCollider code can be executed
    • respecting the succession of areas visited by having the ability to block a node through e.g. sync playback
    • We still follow the graph approach: There is one node responsible and one node responsible to figure out what happens next - no triggers which would allow to jump in the graph to an arbitrary position
  • In order to reflect the idea of a OSM query, we should have something like a "node factory", which creates polygons on the map derived from a OSM query. A factory will then create a polygon "on the fly" for each object on the map and attach the script cells of the factor to each of these nodes.

See the sketch above

Open questions

  • Is it sufficient that an area is represented by a script cell or should it be more generic like a "sub-graph"

@capital-G
Copy link
Member Author

I think it would be a good idea to create sequence diagrams which cover the cases of

  • Audio-walk / sequenced
  • Overlaying audio walk / async
  • OSM factory nodes

I started with a simple mermaid diagram for now (yay, github finally has a way to display graphs which are stored as code)

sequenceDiagram
    create actor User
    create participant Start
    create participant BackgroundMusic
    create participant LocationB
    User-->>+LocationB: user entered location B
    Start->>BackgroundMusic: NormalFlow

    create participant MapNode
    BackgroundMusic->>MapNode : NormalFlow

    create participant LocationA
    %% create participant LocationB
    MapNode->>+LocationA : check if entered
    MapNode->>LocationB : check if entered
    LocationB->>MapNode: user entered B
    MapNode->>LocationB: run script cells
    LocationB->LocationB: execute script cell 1
    LocationB-->>-User: user left location B
    LocationB->>MapNode: script cell 1 executed - terminate?
    MapNode->MapNode: is exit condition met? -> No
    MapNode->>LocationB: continue
    User-->>+LocationA: user is in location A
    LocationB->LocationB: execute script cell 2
    LocationA->>MapNode: user entered A
    LocationA-->>-User: user leaves location A
    LocationB->>MapNode: finished
    MapNode->MapNode: is exit condition met? -> Yes

    create participant StopBackgroundMusic
    MapNode->>StopBackgroundMusic: jump to next node

    %% Alice->>+John: John, can you hear me?
    %% John-->>-Alice: Hi Alice, I can hear you!
    %% John-->>-Alice: I feel great!
Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
concept a place for meta discussion UX Improvments for user experience
Projects
None yet
Development

No branches or pull requests

2 participants