game-stop / veejay

Veejay is a visual instrument and realtime video sampler (for live video improvisation)
http://veejayhq.net
84 stars 12 forks source link

Tap tempo #134

Open d-j-a-y opened 8 years ago

d-j-a-y commented 8 years ago

Tap the tempo for rhythmic automation

TapTempo feature steps :

  1. Draft specifications
  2. Draft implementation
  3. Stable spec
  4. Stable implementation

    Draft specifications

    How to define the tempo ?

    • Client side : with a tap button on user interface (manually)
    • three/four hits and calc average then send VIMS_TEMPO_BPM
    • Server side : based on sound peak VIMS_TEMPO_SOUND_PEAK (ui to select "sound peak tempo") - Why not bpm detection? : (pro) peak based could start without delay , (pro) seems to be faster (less cpu cycles) than bpm detection. (con) ???
    • selection between low, high, med fi
    • drawing the tempo (sound or manually based) has fx anim curve
    • start / stop / pause the automation.

      How to choose what will be automated ?

    • Like MIDI learning ?
    • Widget Click + Modifier ?
    • VIMS edit list ?

      What could be automated ?

    • fx activation (enable/disable)
    • fx parameter value - bound could be defined
    • vims / vims bundle ?
    • macro slot

      Draft implementation

You can see progress in : https://github.com/d-j-a-y/veejay/tree/djay_fxtap

More definition to come and any idea welcome !

d-j-a-y commented 8 years ago

bug : (dc4c45f9d0e95) MT panel has disappeared !

FIXED by 5341266

d-j-a-y commented 8 years ago

Rename panel "FX Loop" to "Tempo Tap"

game-stop commented 6 years ago

How about a simpler solution ?

  1. You tap a button in the UI a few times
  2. Calculate the average time between taps
  3. Allow the user to send a bundle of VIMS messages to the server periodically using sayVIMS 3.1 The time between VIMS messages is the average time

VIMS bundles: Just a text blob containing VIMS messages

d-j-a-y commented 6 years ago
  1. Allow the user to send a bundle of VIMS messages to the server periodically using sayVIMS

Why not create let say 'tempo engine' server side ? and user vims to create/delete, start/stop/resume new tempo related jobs?