Changeset - fa2cc1f0e509
[Not reviewed]
default
1 0 1
drewp@bigasterisk.com - 8 years ago 2017-06-16 04:28:26
drewp@bigasterisk.com
1 file changed with 155 insertions and 81 deletions:
0 comments (0 inline, 0 general)
show/dance2017/readme.md
Show inline comments
 
file renamed from show/dance2017/readme to show/dance2017/readme.md
 
* 2017 problems
 
** ssd error on laptop
 
** paint mode not complete enough
 
** many mistakes where unset sticky devattrs would just use last-set value and the effect would look different later
 
** putting in 8 flashes of the same lights and same note tint color takes a huge amount of work. Add-momentary might have helped but it did nothing
 
** rdfdb file watcher breaks a lot and drops files. emacs focus-autosave may have made this worse. No workaround less than restarting rdfdb then all its dependents
 
*** the dependents ought to resync without a restart
 
*** rdfdb should have a UI showing loaded files and any parse errors
 
** bug in timeline loading note tint colors
 
** given a multicolor static effect, I'd like a way to quickly animate it by rotating hues, chase, blink, etc
 
** output fps is not great, many fades are bumpy
 
** effectsequencer gets behind running graph patches at 100ms each. They should be coalesced by rdfdb so ES never gets behind
 
** can't edit an existing effect in /live because it's not reading and writing rdf data like KC and /timeline do. /live should edit an unnamed-or-named effect just like other tools. Rename /live to effectedit
 
** ballyhoo light moves look lumpy- lights seem to speed up and slow down
 
** chrome stalls on page loads sometimes with 'resolving host', but the host is in /etc/hosts and there's no route to another DNS
 
** would be nice to be able to preview audio in the booth, maybe on a different asco screen so I don't accidentally play the next stage song in the booth #nomodes
 
** computer times might be 100ms off, and i don't know how to sync them without internet
 
** show had 2-3 cases where it would be nice to have a follow spot do a programmed move
 
** get a keyboard/trackpad combo for the 2ary box- fitting a normal mouse on the table is hard
 
** asco doesn't autoreconnect (nor does much else), and this means i can't do wall-mounted tablets backstage
 
** rdfdb shows tons of http11clientfactory stopping, which probably isn't great. move to zmq or grpc or fix the http to keepalive better. maybe i'm sending more concurrent requests than i have connections in my pool? patch coalescing should help that.
 
** besides being low frame rate, manual fades on KC kind of crash into black. they could probably use a better transfer function somewhere in the pipeline, maybe in the effect
 
** near the end of 2nd show, enttec dmx seemed to just stop outputting. stats shows no more writes happening. dmesg says nothing. restarted collector and it's counting writes again. no idea how that got jammed.
 
# 2017 problems
 

	
 
* ssd error on laptop
 
* paint mode not complete enough
 
* many mistakes where unset sticky devattrs would just use last-set
 
  value and the effect would look different later
 
* putting in 8 flashes of the same lights and same note tint color
 
  takes a huge amount of work. Add-momentary might have helped but it
 
  did nothing
 
* rdfdb file watcher breaks a lot and drops files. emacs
 
  focus-autosave may have made this worse. No workaround less than
 
  restarting rdfdb then all its dependents
 
  * the dependents ought to resync without a restart
 
  * rdfdb should have a UI showing loaded files and any parse errors
 
* bug in timeline loading note tint colors
 
* given a multicolor static effect, I'd like a way to quickly animate
 
  it by rotating hues, chase, blink, etc
 
* output fps is not great, many fades are bumpy
 
* effectsequencer gets behind running graph patches at 100ms
 
  each. They should be coalesced by rdfdb so ES never gets behind
 
* can't edit an existing effect in /live because it's not reading and
 
  writing rdf data like KC and /timeline do. /live should edit an
 
  unnamed-or-named effect just like other tools. Rename /live to
 
  effectedit
 
* ballyhoo light moves look lumpy- lights seem to speed up and slow
 
  down
 
* chrome stalls on page loads sometimes with 'resolving host', but the
 
  host is in /etc/hosts and there's no route to another DNS
 
* would be nice to be able to preview audio in the booth, maybe on a
 
  different asco screen so I don't accidentally play the next stage
 
  song in the booth #nomodes
 
* computer times might be 100ms off, and i don't know how to sync them
 
  without internet
 
* show had 2-3 cases where it would be nice to have a follow spot do a
 
  programmed move
 
* get a keyboard/trackpad combo for the 2ary box- fitting a normal
 
  mouse on the table is hard
 
* asco doesn't autoreconnect (nor does much else), and this means i
 
  can't do wall-mounted tablets backstage
 
* rdfdb shows tons of http11clientfactory stopping, which probably
 
  isn't great. move to zmq or grpc or fix the http to keepalive
 
  better. maybe i'm sending more concurrent requests than i have
 
  connections in my pool? patch coalescing should help that.
 
* besides being low frame rate, manual fades on KC kind of crash into
 
  black. they could probably use a better transfer function somewhere
 
  in the pipeline, maybe in the effect
 
* near the end of 2nd show, enttec dmx seemed to just stop
 
  outputting. stats shows no more writes happening. dmesg says
 
  nothing. restarted collector and it's counting writes again. no idea
 
  how that got jammed.
 

	
 
New timeline layout:
 

	
 
@@ -37,74 +64,121 @@ Perhaps use a row of timeline to show th
 
sections even faster.
 

	
 

	
 
New elements:
 
# New elements:
 

	
 
## light9-effect-scale (for use in KC and timeline attrs)
 

	
 
light9-effect-scale (for use in KC and timeline attrs)
 
  effect name
 
  big or normal colorvalue slider. Light up on non-zero values. Support KC mouse bindings.
 
  value number
 
  optional hue/sat widget
 
  optional editable effect uri
 
*  effect name
 
*  big or normal colorvalue slider. Light up on non-zero
 
   values. Support KC mouse bindings.
 
*  value number
 
*  optional hue/sat widget
 
*  optional editable effect uri
 
 
 
## light9-device-settings (for effectedit)
 
 
 
light9-device-settings (for effectedit)
 
  device and class
 
  each attr row has a 'set' checkbox. Editing anything sets everything, but you can unset them.
 
  whole widget has a 'clear' which zeros and unsets all
 
  rows are color-picker; slider; choice
 
  it would be nice to be able to set rx, ry, zoom on a little stage widget
 
  a settings element is selectable. on hover, all affected attrs light up as a hint. If they're offscreen, show a '5 more...' overlay on hover
 
*  device and class
 
*  each attr row has a 'set' checkbox. Editing anything sets
 
   everything, but you can unset them.
 
*  whole widget has a 'clear' which zeros and unsets all
 
*  rows are color-picker; slider; choice
 
*  it would be nice to be able to set rx, ry, zoom on a little stage
 
   widget
 
*  a settings element is selectable. on hover, all affected attrs
 
   light up as a hint. If they're offscreen, show a '5 more...'
 
   overlay on hover
 

	
 
## effect editor
 

	
 
effect editor
 
  one editor with an editable-resource choice. save null as new effect; edit existing; page has a session name, which could almost be automatic except it might be hard to rejoin your last anonymous session
 
  easy to pick groups or classes of lights to edit, maybe with hotkeys ('show just quantums')
 
  some lights should default to hidden or last
 
  allow multiselect
 
  copy from one dev to another(s). copy just one attr?
 
  line up devices in spreadsheet rows or cols to more easily see which attrs are different
 
  when editing a slider, show hints of what other devs are set to, and maybe even snap to those values
 
  this is a 'settings' editor. how does it deal with effect code?
 
  it would be nice to take 1 note in a song and quickly fork its effect for a custom edit, or even express overrides somehow
 
*  one editor with an editable-resource choice. save null as new
 
   effect; edit existing; page has a session name, which could almost
 
   be automatic except it might be hard to rejoin your last anonymous
 
   session
 
*  easy to pick groups or classes of lights to edit, maybe with
 
   hotkeys ('show just quantums')
 
*  some lights should default to hidden or last
 
*  allow multiselect
 
*  copy from one dev to another(s). copy just one attr?
 
*  line up devices in spreadsheet rows or cols to more easily see
 
   which attrs are different
 
*  when editing a slider, show hints of what other devs are set to,
 
   and maybe even snap to those values
 
*  this is a 'settings' editor. how does it deal with effect code?
 
*  it would be nice to take 1 note in a song and quickly fork its
 
   effect for a custom edit, or even express overrides somehow
 
  
 
## light9-color-picker
 
  
 
light9-color-picker
 
  try only waking on drag (not hover), but the big rainbow is offset so your drag starts at the current value
 
  skew the gradient even more towards desaturated colors. Currently, the lower half is almost all the same effect
 
*  try only waking on drag (not hover), but the big rainbow is offset
 
   so your drag starts at the current value
 
*  skew the gradient even more towards desaturated colors. Currently,
 
   the lower half is almost all the same effect
 

	
 
## timeline
 

	
 
timeline
 
  need to see autostop
 
  snap to autostop and to other curve points and to markers
 
  hotkeys to add markers
 
  note attrs box should let you swap the effect but not unlink/rename it
 
  progressive reveal of UI as note grows: first, effect. then add note controls, then add l9-effect-scale
 
  fade adjusters are very useful, but just grabbing the fade line should be enough. But don't let dragging the whole note move the origin, since that's way too easy to hit accidentally
 
  pack the rows down to the fewest required; don't waste 6 rows of space all the time
 
  more note operations:
 
    copy note, paste it repeatedly at multiple markers
 
    split note (to clear out a section for another effect, or to more easily say 'note ends here')
 
    adjust fade about its center
 
    animate scale at more points
 
    add more curves, like for rx,ry to do a follow spot
 
  take a few note effects and combine them into a new effect, like you would in KC
 
*  need to see autostop
 
*  snap to autostop and to other curve points and to markers
 
*  hotkeys to add markers
 
*  note attrs box should let you swap the effect but not unlink/rename
 
   it
 
*  progressive reveal of UI as note grows: first, effect. then add
 
   note controls, then add l9-effect-scale
 
*  fade adjusters are very useful, but just grabbing the fade line
 
   should be enough. But don't let dragging the whole note move the
 
   origin, since that's way too easy to hit accidentally
 
*  pack the rows down to the fewest required; don't waste 6 rows of
 
   space all the time
 
*  more note operations:
 
  *    copy note, paste it repeatedly at multiple markers
 
  *    split note (to clear out a section for another effect, or to
 
       more easily say 'note ends here')
 
  *    adjust fade about its center
 
  *    animate scale at more points
 
  *    add more curves, like for rx,ry to do a follow spot
 
*  take a few note effects and combine them into a new effect, like
 
   you would in KC
 

	
 
timeline internals
 
  syncedgraph -> diagram values -> diagram screen layout
 
  DV is just all the value() calls precomputed and maintained across patches, for performance
 
  DSL is the positions of everything, after zooming, after adjuster creation and layout
 
  inner-attrs probably don't need anything special, since we can always 
 
## timeline internals
 

	
 
KC rewrite
 
  drop qwerty controls
 
  the row that is mapped to hardware sliders needs to stick over restarts (and work when no browser is open, too)
 
  have effectsequencer run the effects; don't do it in the KC process (which wasn't reloading right anyway)
 
*  syncedgraph -> diagram values -> diagram screen layout
 
*  DV is just all the value() calls precomputed and maintained across
 
   patches, for performance
 
*  DSL is the positions of everything, after zooming, after adjuster
 
   creation and layout
 
*  inner-attrs probably don't need anything special, since we can
 
   always
 

	
 
## KC rewrite
 

	
 
*  drop qwerty controls
 
*  the row that is mapped to hardware sliders needs to stick over
 
   restarts (and work when no browser is open, too)
 
*  have effectsequencer run the effects; don't do it in the KC process
 
   (which wasn't reloading right anyway)
 

	
 

	
 
effects
 
  need more easy to use random primitives, or maybe i just always forget about noise()
 
  given some settings, have easy canned effects to add: chase, blink, hue rotate, offset lights (maybe just during fade-in)
 
## effects
 

	
 
*  need more easy to use random primitives, or maybe i just always
 
   forget about noise()
 
*  given some settings, have easy canned effects to add: chase, blink,
 
   hue rotate, offset lights (maybe just during fade-in)
 

	
 
effectsequencer
 
  drop sticky attributes for lights that are on- they lead to errors with unset values. Ok to be sticky when the light is off, but if it turns on with a setting at 0, you have to go to 0. Also, ES needs to look aheead at coming notes and plan how values change before the light is turned on
 
## effectsequencer
 

	
 
*  drop sticky attributes for lights that are on- they lead to errors
 
   with unset values. Ok to be sticky when the light is off, but if it
 
   turns on with a setting at 0, you have to go to 0. Also, ES needs
 
   to look aheead at coming notes and plan how values change before
 
   the light is turned on
 

	
 

	
 
collector
 
  drop the remap system and do it as a UI thing instead, where slider ranges are remapped on screen but you can see their ranges are adjusted. Then we don't need other translations later. I'm not sure if this will make trouble once we can copy rx,ry values between devices and they're not aligned. But if it does, do the remap at paste time.
 
## collector
 
  
 
*  drop the remap system and do it as a UI thing instead, where slider
 
   ranges are remapped on screen but you can see their ranges are
 
   adjusted. Then we don't need other translations later. I'm not sure
 
   if this will make trouble once we can copy rx,ry values between
 
   devices and they're not aligned. But if it does, do the remap at
 
   paste time.
 
  
0 comments (0 inline, 0 general)