├── .env
├── .eslintrc.js
├── .github
└── workflows
│ ├── deploy.app.yaml
│ ├── deploy.docs.yaml
│ └── release.yaml
├── .gitignore
├── COPYING
├── CREDITS.html
├── README.md
├── docs
├── developer
│ ├── core
│ │ ├── assets
│ │ │ └── img
│ │ │ │ ├── asls-logo.png
│ │ │ │ └── asls.logo.blue.only.png
│ │ └── docma.json
│ └── ui
│ │ └── .storybook
│ │ ├── main.js
│ │ ├── manager-head.html
│ │ ├── manager.js
│ │ ├── preview-head.html
│ │ ├── preview.js
│ │ ├── preview.js.save
│ │ ├── static
│ │ └── images
│ │ │ └── asls.logo.white.png
│ │ └── theme.asls.js
└── manual
│ ├── .vitepress
│ ├── config.js
│ └── theme
│ │ ├── components
│ │ └── video.vue
│ │ ├── custom.css
│ │ ├── global.css
│ │ └── index.js
│ ├── index.md
│ ├── interface
│ ├── grouppool
│ │ └── index.md
│ ├── modifier
│ │ └── index.md
│ ├── patchbay
│ │ └── index.md
│ ├── toolbar
│ │ └── index.md
│ └── visualizer
│ │ └── index.md
│ ├── introduction
│ ├── index.md
│ ├── installation.md
│ ├── license.md
│ └── overview.md
│ ├── modifiers
│ ├── chase
│ │ └── index.md
│ ├── group
│ │ └── index.md
│ └── universe
│ │ └── index.md
│ ├── public
│ ├── ASLSlogo.png
│ ├── UI.png
│ ├── __favicon.img
│ ├── animated.gif
│ ├── animated.webm
│ ├── asls-logo.png
│ ├── asls.logo.blue.only.png
│ ├── asls.logo.white.only.png
│ ├── asls.logo.white.png
│ ├── hero.png
│ ├── interface
│ │ ├── chase_idle.png
│ │ ├── chase_playing.png
│ │ ├── chase_playing.webm
│ │ ├── group-pool_modulate-channels_new.png
│ │ ├── group-pool_new.png
│ │ ├── group_pool.webm
│ │ ├── group_pool_add_popup.webm
│ │ ├── group_pool_chasepool.webm
│ │ ├── modifier_chase.webm
│ │ ├── modifier_chase_timeline_widget.webm
│ │ ├── modifier_group.webm
│ │ ├── modifier_group_cue-settings_widget.webm
│ │ ├── modifier_group_cuepool_popup_add.webm
│ │ ├── modifier_group_cuepool_widget.webm
│ │ ├── modifier_group_cuepool_widget_add.webm
│ │ ├── modifier_group_cuepool_widget_edit.webm
│ │ ├── modifier_group_cuepool_widget_play.webm
│ │ ├── modifier_group_effect-tool_widget.webm
│ │ ├── modifier_group_fade-editor_widget.webm
│ │ ├── modifier_group_fixture-channels_widget.webm
│ │ ├── modifier_group_scene-fixtures_widget.webm
│ │ ├── modifier_group_settings_widget.webm
│ │ ├── modifier_universe.webm
│ │ ├── modifier_universe_2.webm
│ │ ├── modifier_universe_3.webm
│ │ ├── modifier_universe_4.webm
│ │ ├── modifier_universe_colorpicker_widget.webm
│ │ ├── modifier_universe_fixture_channels_widget.webm
│ │ ├── modifier_universe_fixture_settings_widget.webm
│ │ ├── modifier_universe_fixturepool_select_ctrl_widget.webm
│ │ ├── modifier_universe_fixturepool_widget_filter.webm
│ │ ├── modifier_universe_fixturepool_widget_select.webm
│ │ ├── modifier_universe_pantilt_widget.webm
│ │ ├── modifier_universe_settings_widget.webm
│ │ ├── patch_bay.png
│ │ ├── patch_bay.webm
│ │ ├── patch_bay_add_fixture.png
│ │ ├── patch_bay_delete_fixture.png
│ │ ├── patch_bay_filtered.png
│ │ ├── patch_bay_selected.png
│ │ ├── patch_bay_selected_grouped.png
│ │ ├── patch_bay_unfolded.png
│ │ ├── toolbar.png
│ │ ├── toolbar.webm
│ │ ├── toolbar_nav.png
│ │ ├── toolbar_nav_edit.png
│ │ ├── toolbar_nav_edit_redo.png
│ │ ├── toolbar_nav_edit_undo.png
│ │ ├── toolbar_nav_file.png
│ │ ├── toolbar_nav_file_export.png
│ │ ├── toolbar_nav_file_load.png
│ │ ├── toolbar_nav_file_new.png
│ │ ├── toolbar_nav_file_save.png
│ │ ├── toolbar_nav_preferences.png
│ │ ├── toolbar_nav_preferences_fixturelib.png
│ │ ├── toolbar_nav_preferences_io.png
│ │ ├── toolbar_nav_preferences_visualizer.png
│ │ ├── visualizer.webm
│ │ ├── visualizer_controls_discrete.webm
│ │ ├── visualizer_controls_rotate.webm
│ │ └── visualizer_controls_translate.webm
│ ├── overview.webm
│ ├── screenshot.png
│ ├── studio_standalone_logo.png
│ └── studio_standalone_logo_dark.png
│ ├── vite.config.js
│ └── workflow
│ ├── effects
│ └── index.md
│ ├── environment
│ └── index.md
│ ├── grouping
│ └── index.md
│ ├── patching
│ └── index.md
│ ├── scenes
│ └── index.md
│ └── triggering
│ └── index.md
├── index.html
├── jsconfig.json
├── package-lock.json
├── package.json
├── public
├── demo
│ ├── images
│ │ ├── asls.png
│ │ ├── asls2.png
│ │ ├── blank.png
│ │ └── blank2.png
│ └── showfiles
│ │ ├── blank.showfile.json
│ │ └── demo.showfile.json
├── docs
│ └── images
│ │ ├── asls.logo.blue.only.png
│ │ └── asls.logo.white.png
├── fixtures
│ ├── 5star-systems
│ │ └── spica-250m.json
│ ├── README.md
│ ├── abstract
│ │ └── twister-4.json
│ ├── acoustic-control
│ │ └── par-180-cob-3in1.json
│ ├── adb
│ │ ├── alc4.json
│ │ ├── europe-105.json
│ │ └── warp-m.json
│ ├── afx
│ │ └── lmh460z.json
│ ├── alien-pro
│ │ └── alien-s.json
│ ├── american-dj
│ │ ├── auto-spot-150.json
│ │ ├── boom-box-fx2.json
│ │ ├── cob-cannon-wash.json
│ │ ├── crazy-pocket-8.json
│ │ ├── dekker-led.json
│ │ ├── dotz-par.json
│ │ ├── encore-profile-1000-ww.json
│ │ ├── flat-par-qa12xs.json
│ │ ├── fog-fury-jett-pro.json
│ │ ├── galaxian-3d.json
│ │ ├── illusion-dotz-4-4.json
│ │ ├── inno-pocket-beam-q4.json
│ │ ├── inno-pocket-fusion.json
│ │ ├── mega-bar-50rgb-rc.json
│ │ ├── mega-bar-50rgb.json
│ │ ├── mega-bar-rgba.json
│ │ ├── mega-hex-par.json
│ │ ├── mega-tripar-profile-plus.json
│ │ ├── mega-tripar-profile.json
│ │ ├── pocket-pro.json
│ │ ├── quad-phase-hp.json
│ │ ├── revo-4-ir.json
│ │ ├── revo-burst.json
│ │ ├── revo-sweep.json
│ │ ├── saber-spot-rgbw.json
│ │ ├── starburst.json
│ │ ├── stinger-ii.json
│ │ ├── stinger-spot.json
│ │ ├── vizi-spot-led-pro.json
│ │ └── xs-400.json
│ ├── ape-labs
│ │ └── lightcan.json
│ ├── arri
│ │ ├── broadcaster-2-plus.json
│ │ ├── l10-c.json
│ │ ├── l5-c.json
│ │ ├── l7-c.json
│ │ ├── skypanel-s120c.json
│ │ ├── skypanel-s30c.json
│ │ ├── skypanel-s360c.json
│ │ └── skypanel-s60c.json
│ ├── astera
│ │ ├── ax3-lightdrop.json
│ │ ├── fp1-titan-tube.json
│ │ ├── fp2-helios-tube.json
│ │ ├── fp3-hyperion-tube.json
│ │ └── fp5-nyx-bulb.json
│ ├── audibax
│ │ └── boston-60.json
│ ├── ayra
│ │ └── tdc-triple-burst.json
│ ├── ayrton
│ │ ├── diablo-s.json
│ │ ├── diablo-tc.json
│ │ └── magicblade-fx.json
│ ├── beamz
│ │ ├── h2000-faze-machine.json
│ │ ├── panther-7r.json
│ │ ├── pls25-par.json
│ │ └── triple-flex-centre-pro-led.json
│ ├── big-dipper
│ │ ├── lp001.json
│ │ └── ls90.json
│ ├── blizzard
│ │ ├── puck-rgbaw.json
│ │ └── rokbox-rgbw.json
│ ├── boomtonedj
│ │ ├── crazy-spot-30.json
│ │ ├── silentpar-12x10w-5in1.json
│ │ ├── silentpar-12x10w-6in1.json
│ │ ├── silentpar-12x3w-3in1.json
│ │ ├── silentpar-5x10w-5in1.json
│ │ ├── silentpar-5x10w-6in1.json
│ │ ├── silentpar-5x3w-3in1.json
│ │ ├── silentpar-7x10w-5in1.json
│ │ ├── silentpar-7x10w-6in1.json
│ │ ├── silentpar-7x3w-3in1.json
│ │ └── xtrem-led.json
│ ├── briteq
│ │ ├── beamspot1-dmx-fc.json
│ │ ├── bt-coloray-120r.json
│ │ ├── bt-coloray-18fcr.json
│ │ ├── bt-coloray-60r.json
│ │ ├── bt-ledrotor.json
│ │ ├── bt-stagepar-6in1.json
│ │ ├── btx-titan.json
│ │ ├── cob-slim-100-rgb.json
│ │ ├── pro-beamer-zoom-indoor.json
│ │ └── pro-beamer-zoom-outdoor.json
│ ├── cameo
│ │ ├── auro-beam-150.json
│ │ ├── auro-spot-100.json
│ │ ├── auro-spot-200.json
│ │ ├── auro-spot-300.json
│ │ ├── auro-spot-400.json
│ │ ├── flash-matrix-250.json
│ │ ├── flat-par-can-rgb-10-ir.json
│ │ ├── flat-par-can-tri-5x-3w-ir.json
│ │ ├── flat-par-can-tri-7x-3w-ir.json
│ │ ├── flat-pro-18.json
│ │ ├── flat-pro-flood-600-ip65.json
│ │ ├── flat-pro-flood-ip65-tri.json
│ │ ├── gobo-scanner-80.json
│ │ ├── hydrabeam-100.json
│ │ ├── hydrabeam-300-rgbw.json
│ │ ├── instant-air-1000-pro.json
│ │ ├── instant-air-2000-pro.json
│ │ ├── ioda-1000-rgb.json
│ │ ├── ioda-400-rgy.json
│ │ ├── ioda-600-rgb.json
│ │ ├── multi-fx-bar.json
│ │ ├── multi-par-cob-1.json
│ │ ├── nanospot-120.json
│ │ ├── outdoor-par-tri-12.json
│ │ ├── root-par-6.json
│ │ ├── steam-wizard-1000.json
│ │ ├── steam-wizard-2000.json
│ │ ├── storm.json
│ │ ├── thunder-wash-100-rgb.json
│ │ ├── thunder-wash-100-w.json
│ │ ├── thunder-wash-600-rgb.json
│ │ ├── thunder-wash-600-rgbw.json
│ │ ├── thunder-wash-600-w.json
│ │ └── zenit-w600.json
│ ├── chauvet-dj
│ │ ├── colorband-pix-ip.json
│ │ ├── colorband-pix.json
│ │ ├── corepar-uv-usb.json
│ │ ├── eve-p-100-ww.json
│ │ ├── eve-p-130-rgb.json
│ │ ├── freedom-h1.json
│ │ ├── geyser-rgb.json
│ │ ├── gigbar-2.json
│ │ ├── intimidator-spot-110.json
│ │ ├── intimidator-spot-260.json
│ │ ├── kinta-x.json
│ │ ├── motiondrape-led.json
│ │ ├── slimpar-pro-h-usb.json
│ │ ├── slimpar-pro-qz12.json
│ │ ├── slimpar-pro-w.json
│ │ ├── slimpar-q12-bt.json
│ │ ├── slimpar-t12-bt.json
│ │ └── washfx.json
│ ├── chauvet-professional
│ │ ├── colordash-batten-quad-6.json
│ │ ├── ovation-f-915vw.json
│ │ └── rogue-r2-wash.json
│ ├── chroma-q
│ │ ├── color-force-ii-12.json
│ │ ├── color-force-ii-48.json
│ │ └── color-force-ii-72.json
│ ├── cinetec
│ │ └── par-18x15w-rgbwa.json
│ ├── clay-paky
│ │ ├── a-leda-b-eye-k10.json
│ │ ├── a-leda-b-eye-k20.json
│ │ ├── alpha-spot-qwo-800.json
│ │ ├── sharpy.json
│ │ ├── show-batten-100.json
│ │ └── spheriscan.json
│ ├── clf
│ │ └── hera.json
│ ├── coemar
│ │ └── prospot-250-lx.json
│ ├── contest
│ │ └── irledflat-5x12SIXb.json
│ ├── dedolight
│ │ ├── dled4-bi.json
│ │ └── dled7-bi.json
│ ├── dmg-lumiere
│ │ ├── maxi-mix.json
│ │ ├── mini-mix.json
│ │ └── sl1-mix.json
│ ├── dts
│ │ ├── scena-led-150.json
│ │ ├── xr1200-wash.json
│ │ └── xr4-spot.json
│ ├── elation
│ │ ├── acl-360-roller.json
│ │ ├── cuepix-blinder-ww2.json
│ │ ├── cuepix-blinder-ww4.json
│ │ ├── design-led-par-zoom.json
│ │ ├── platinum-hfx.json
│ │ ├── platinum-seven.json
│ │ ├── platinum-spot-15r-pro.json
│ │ ├── proteus-hybrid.json
│ │ ├── sixpar-100-ip.json
│ │ ├── sixpar-100.json
│ │ ├── sixpar-200-ip.json
│ │ ├── sixpar-200-wmg.json
│ │ ├── sixpar-200.json
│ │ ├── sixpar-300-ip.json
│ │ ├── sixpar-300-wmg.json
│ │ ├── sixpar-300.json
│ │ └── uni-bar.json
│ ├── eliminator
│ │ ├── stealth-beam.json
│ │ └── stealth-wash-zoom.json
│ ├── empire-lighting
│ │ └── 8x-3w-led-spider-effect.json
│ ├── epsilon
│ │ └── duo-q-beam-bar.json
│ ├── equinox
│ │ ├── gigabar.json
│ │ └── rgb-power-batten.json
│ ├── etc
│ │ ├── colorsource-par-deep-blue.json
│ │ ├── colorsource-par.json
│ │ ├── colorsource-spot-deep-blue.json
│ │ ├── colorsource-spot.json
│ │ ├── fos4PD16.json
│ │ ├── fos4PD24.json
│ │ ├── fos4PD8.json
│ │ ├── fos4PL16.json
│ │ ├── fos4PL24.json
│ │ ├── fos4PL8.json
│ │ ├── source-four-led-series-2-daylight-hd.json
│ │ ├── source-four-led-series-2-lustr.json
│ │ └── source-four-led-series-2-tungsten-hd.json
│ ├── eurolite
│ │ ├── led-b-40.json
│ │ ├── led-bar-3-hcl-bar.json
│ │ ├── led-big-party-spot.json
│ │ ├── led-big-party-tcl-spot.json
│ │ ├── led-fe-1500.json
│ │ ├── led-h2o.json
│ │ ├── led-kls-801.json
│ │ ├── led-ml-56-rgbw.json
│ │ ├── led-par-56-tcl.json
│ │ ├── led-party-spot.json
│ │ ├── led-party-tcl-spot.json
│ │ ├── led-pix-12-hcl.json
│ │ ├── led-pix-144.json
│ │ ├── led-ps-4-hcl.json
│ │ ├── led-sls-12-bcl.json
│ │ ├── led-sls-5-bcl.json
│ │ ├── led-sls-6-uv-floor.json
│ │ ├── led-svf-1.json
│ │ ├── led-tha-100f-mk2.json
│ │ ├── led-tha-100f.json
│ │ ├── led-tl-4-qcl.json
│ │ ├── led-tmh-17.json
│ │ ├── led-tmh-18.json
│ │ ├── led-tmh-7.json
│ │ ├── led-tmh-8.json
│ │ ├── led-tmh-9.json
│ │ ├── led-tmh-x12.json
│ │ ├── led-tmh-x25.json
│ │ ├── multiflood-pro-ip-smd-rgbw.json
│ │ ├── n-150.json
│ │ └── tmh-xb-130.json
│ ├── event-lighting
│ │ ├── par12x12.json
│ │ └── par5x12.json
│ ├── evolight
│ │ └── colours-archspot-54-rgb.json
│ ├── explo
│ │ ├── gasprojector-gx2.json
│ │ └── x2-wave-flamer.json
│ ├── eyourlife
│ │ └── led-rgbw-54x3-par64.json
│ ├── fiilex
│ │ └── p3-color.json
│ ├── fixture_list.json
│ ├── flash-professional
│ │ ├── led-moving-head-150w.json
│ │ ├── led-par-64-cob-300w-rgbwauv.json
│ │ └── led-par-64-slim-7x10w-rgbw-mk2.json
│ ├── fovitec
│ │ └── 600xb.json
│ ├── fractal-lights
│ │ ├── par-led-7x10w.json
│ │ ├── par-led-7x12w.json
│ │ └── par-led-7x9w.json
│ ├── fun-generation
│ │ ├── led-pot-12-1w-rgbw.json
│ │ ├── picobeam-30-quad-led.json
│ │ ├── picobeam-60-cob-rgbw.json
│ │ ├── picoblade-fx-4x10w-rgbw.json
│ │ ├── picospot-20-led.json
│ │ ├── picospot-45-led.json
│ │ ├── picowash-40-pixel-quad-led.json
│ │ ├── separ-quad-led-rgb-uv.json
│ │ └── separ-quad-led-rgbw.json
│ ├── futurelight
│ │ ├── dj-scan-250.json
│ │ ├── dmh-75-i-led-moving-head.json
│ │ ├── pro-slim-par-7-hcl.json
│ │ ├── sc-250-scanner.json
│ │ └── stb-648-led-strobe-smd-5050.json
│ ├── gantom
│ │ └── precision-dmx.json
│ ├── generic
│ │ ├── 4-channel-dimmer-pack.json
│ │ ├── cmy-fader.json
│ │ ├── cw-ww-fader.json
│ │ ├── desk-channel.json
│ │ ├── drgb-fader.json
│ │ ├── drgbw-fader.json
│ │ ├── grbw-fader.json
│ │ ├── pan-tilt.json
│ │ ├── rgb-fader.json
│ │ ├── rgba-fader.json
│ │ ├── rgbd-fader.json
│ │ ├── rgbw-fader.json
│ │ ├── rgbwauv-fader.json
│ │ ├── rgbww-fader.json
│ │ └── strobe.json
│ ├── ghost
│ │ ├── ip-spot-bat.json
│ │ └── ip-spot-pro.json
│ ├── glp
│ │ ├── force-120.json
│ │ ├── impression-fr1.json
│ │ ├── impression-laser.json
│ │ ├── impression-spot-one.json
│ │ ├── impression-x4-bar-10.json
│ │ ├── jdc1.json
│ │ ├── knv-arc.json
│ │ └── knv-cube.json
│ ├── glx
│ │ └── gls-4-led-stage-4.json
│ ├── griven
│ │ └── kolorado-4000.json
│ ├── gruft
│ │ ├── pixel-tube.json
│ │ └── ventilator.json
│ ├── hazebase
│ │ └── base-hazer-pro.json
│ ├── hive
│ │ ├── bee-50-c.json
│ │ ├── bumble-bee-25-cx.json
│ │ ├── hornet-200-c.json
│ │ ├── hornet-200-cx.json
│ │ ├── super-hornet-575-c.json
│ │ ├── wasp-100-c.json
│ │ └── wasp-100-cx.json
│ ├── hong-yi
│ │ └── hy-g60.json
│ ├── ibiza-light
│ │ ├── lp64-led-promo.json
│ │ ├── ls-005led.json
│ │ └── par-mini-rgb3.json
│ ├── ignition
│ │ └── led-accu-par.json
│ ├── infinity
│ │ ├── iw-340-rdm.json
│ │ └── iw-720-rdm.json
│ ├── jb-lighting
│ │ ├── jbled-a7.json
│ │ └── varyscan-p7.json
│ ├── jb-systems
│ │ ├── imove-5s.json
│ │ ├── irock-5c.json
│ │ └── twin-effect-laser.json
│ ├── kam
│ │ └── gobotracer.json
│ ├── lalucenatz
│ │ ├── 18leds-par-light.json
│ │ └── dj-lights.json
│ ├── laserworld
│ │ ├── cs-1000rgb.json
│ │ ├── ds-1000rgb.json
│ │ └── shownet.json
│ ├── ledj
│ │ ├── slimline-12q5-rgba.json
│ │ └── slimline-12q5-rgbw.json
│ ├── lep-laser
│ │ └── diamond-pro-2-8.json
│ ├── light-sky
│ │ └── aurora.json
│ ├── lightmaxx
│ │ ├── dj-scan-led.json
│ │ ├── easy-wash-quad-led.json
│ │ ├── led-nano-par.json
│ │ ├── led-par-56.json
│ │ ├── platinum-mini-tri-par.json
│ │ ├── vector-pixel-bar-18x-15w-rgbwa.json
│ │ └── vega-zoom-wash.json
│ ├── lite-tek
│ │ └── beam-230.json
│ ├── litecraft
│ │ └── washx-21.json
│ ├── litegear
│ │ ├── litemat-plus-1.json
│ │ ├── litemat-plus-2.json
│ │ ├── litemat-plus-2l.json
│ │ ├── litemat-plus-3.json
│ │ ├── litemat-plus-4.json
│ │ ├── litemat-plus-8.json
│ │ ├── litetile-plus-4.json
│ │ ├── litetile-plus-8.json
│ │ ├── s2-litemat-1.json
│ │ ├── s2-litemat-2.json
│ │ ├── s2-litemat-2l.json
│ │ ├── s2-litemat-3.json
│ │ └── s2-litemat-4.json
│ ├── lixada
│ │ ├── mini-beam-rgbw.json
│ │ ├── mini-gobo-moving-head-light.json
│ │ └── mini-moving-head-rgbw.json
│ ├── look
│ │ ├── cryofog.json
│ │ └── viper-nt.json
│ ├── magicfx
│ │ ├── psyco2jet.json
│ │ ├── smokejet.json
│ │ └── stage-flame.json
│ ├── manufacturers.json
│ ├── mark
│ │ ├── mbar-381-ip.json
│ │ └── superbat-led-72.json
│ ├── martin
│ │ ├── atomic-3000.json
│ │ ├── mac-250-beam.json
│ │ ├── mac-250-krypton.json
│ │ ├── mac-250-wash.json
│ │ ├── mac-600.json
│ │ ├── mac-700-wash.json
│ │ ├── mac-aura.json
│ │ ├── mac-axiom-hybrid.json
│ │ ├── mac-encore-performance.json
│ │ ├── mac-viper-airfx.json
│ │ ├── mac-viper-performance.json
│ │ ├── mac-viper-wash.json
│ │ ├── magnum-2500-hz.json
│ │ ├── mania-scx500.json
│ │ ├── roboscan-812.json
│ │ ├── rush-mh-2-wash.json
│ │ ├── rush-mh-3-beam.json
│ │ ├── rush-mh-5-profile.json
│ │ ├── rush-mh-7-hybrid.json
│ │ ├── rush-par-2-rgbw-zoom.json
│ │ ├── rush-scanner-1-led.json
│ │ ├── stagebar-54l.json
│ │ └── stagebar-54s.json
│ ├── mdg
│ │ ├── hazer-atmosphere-aps.json
│ │ └── theone-atmospheric-generator.json
│ ├── mega-led-lighting
│ │ ├── led-par-light-372.json
│ │ └── zoom-360.json
│ ├── minuit-une
│ │ ├── ivl-carre.json
│ │ └── m-carre.json
│ ├── nicols
│ │ ├── led-bar-123-fc-ip.json
│ │ └── pat-252.json
│ ├── orion
│ │ └── orcan2.json
│ ├── panasonic
│ │ ├── pt-rz120.json
│ │ └── pt-rz120l.json
│ ├── phocea-light
│ │ └── box-leds-batterie-6x15w.json
│ ├── powerlighting
│ │ └── wash-84w.json
│ ├── pr-lighting
│ │ └── xs-250-spot.json
│ ├── prolights
│ │ ├── diamond19.json
│ │ ├── pixpan16.json
│ │ ├── polar3000.json
│ │ ├── smartbat.json
│ │ └── v700spot.json
│ ├── qtx
│ │ ├── lux-ld01.json
│ │ └── lux-ld30w.json
│ ├── renkforce
│ │ └── gm107.json
│ ├── robe
│ │ ├── colorspot-2500e-at.json
│ │ ├── dj-scan-250-xt.json
│ │ ├── robin-300e-wash.json
│ │ ├── robin-600e-spot.json
│ │ ├── robin-ledbeam-100.json
│ │ ├── robin-ledbeam-150.json
│ │ ├── robin-ledwash-600.json
│ │ ├── robin-parfect-150.json
│ │ ├── robin-viva-cmy.json
│ │ └── spot-160-xt.json
│ ├── robert-juliat
│ │ └── 613sx.json
│ ├── rockville
│ │ └── rockpar50.json
│ ├── sgm
│ │ └── p-5.json
│ ├── shehds
│ │ └── led-flat-par-12x3w-rgbw.json
│ ├── showline
│ │ └── sl-nitro-510c.json
│ ├── showlite
│ │ └── lb-4390.json
│ ├── showpro
│ │ └── litebar-h9.json
│ ├── showtec
│ │ ├── archi-painter-24-8-q4.json
│ │ ├── atmos-2000.json
│ │ ├── club-par-12-4-rgbw.json
│ │ ├── compact-par-18.json
│ │ ├── compact-par-7-tri.json
│ │ ├── dominator.json
│ │ ├── horizon-8.json
│ │ ├── kanjo-spot-60.json
│ │ ├── kanjo-wash-rgb.json
│ │ ├── led-light-bar-rgb-v3.json
│ │ ├── phantom-140-led-spot.json
│ │ ├── phantom-25-led-wash.json
│ │ ├── phantom-3r-beam.json
│ │ ├── phantom-50-led-spot.json
│ │ ├── phantom-matrix-fx.json
│ │ ├── pixel-bar-12-mkii.json
│ │ ├── sunraise-led.json
│ │ ├── sunstrip-active-mkii.json
│ │ └── xs-1-rgbw.json
│ ├── showven
│ │ ├── sparkular-fall.json
│ │ └── sparkular.json
│ ├── silver-star
│ │ └── mx-indigo-6000xe.json
│ ├── skypix
│ │ └── ribalta-beam.json
│ ├── solaris
│ │ └── smart-36.json
│ ├── solena
│ │ ├── max-par-20.json
│ │ └── mini-par-12.json
│ ├── soundlight
│ │ └── 3204r-h.json
│ ├── stage-right
│ │ ├── mini-beam-rgbw.json
│ │ └── stage-wash-7x10w-led-moving-head.json
│ ├── stairville
│ │ ├── af-180-led-fogger.json
│ │ ├── af-250.json
│ │ ├── afh-600.json
│ │ ├── bel6-ip-bar-hex.json
│ │ ├── clb5-2p-rgb-ww-compact-led-par.json
│ │ ├── led-bar-240-8.json
│ │ ├── led-flood-panel-150.json
│ │ ├── mh-100.json
│ │ ├── mh-x25.json
│ │ ├── mh-x30-led-spot.json
│ │ ├── mh-x30.json
│ │ ├── mh-x50.json
│ │ ├── mh-x60.json
│ │ ├── octagon-theater-20x6w-cw-ww-a.json
│ │ ├── par-56.json
│ │ ├── revueled-120-cob-rgbww.json
│ │ ├── revueled-120-cob-true-white.json
│ │ ├── stage-tri-led.json
│ │ └── z120m-par-64-led-rgbw-120w.json
│ ├── starway
│ │ ├── servo-color-4k.json
│ │ └── stickolor-1210uhd.json
│ ├── studio-due
│ │ └── light-deflector.json
│ ├── sun-star
│ │ └── g-2011-nova.json
│ ├── tecshow
│ │ ├── nebula-18.json
│ │ └── nebula-6.json
│ ├── tiptop-stage-light
│ │ └── 3-10w-battery-led-wedge-par.json
│ ├── tmb
│ │ └── solaris-flare.json
│ ├── uking
│ │ ├── mini-led-spot-25w.json
│ │ └── par-light-b262.json
│ ├── ultratec
│ │ └── radiance-hazer.json
│ ├── update_fixturelist.js
│ ├── varytec
│ │ ├── bat-par-6-rgbuv.json
│ │ ├── bat-par-6-rgbwa.json
│ │ ├── easy-move-xs-hp-wash-7x8w-rgbw.json
│ │ ├── giga-bar-hex-3.json
│ │ ├── hero-wash-340fx-rgbw-zoom.json
│ │ ├── led-hellball-3-rgb.json
│ │ └── led-theater-spot-100.json
│ ├── velleman
│ │ └── aeron-250-ii.json
│ └── venue
│ │ ├── thintri64.json
│ │ └── tristrip3z.json
├── images
│ ├── Folder2.svg
│ ├── adjust.svg
│ ├── arrow.svg
│ ├── arrow_down.svg
│ ├── arrow_up.svg
│ ├── asls-logo.png
│ ├── asls.icon.black.png
│ ├── asls.icon.white.ico
│ ├── asls.logo.black.png
│ ├── cuepool_idle.svg
│ ├── diane-picchiottino-m1ONIaOCmSs-unsplash.jpg
│ ├── folder.svg
│ ├── hslwheel.svg
│ ├── knob.svg
│ ├── list_add_button.svg
│ ├── mixer.svg
│ ├── spline.svg
│ ├── studio_standalone_logo.png
│ ├── sun.svg
│ └── wave.svg
├── showfiles
│ ├── asls
│ │ └── default.json
│ └── qlc
│ │ └── default.qxw
└── visualizer
│ ├── models
│ ├── model_list.json
│ └── scenography
│ │ └── moving_head_lowpoly.glb
│ └── textures
│ └── environment
│ └── checkerboard_default.jpg
├── src
├── App.vue
├── assets
│ ├── fonts
│ │ └── Roboto
│ │ │ ├── LICENSE.txt
│ │ │ ├── Roboto-Black.ttf
│ │ │ ├── Roboto-BlackItalic.ttf
│ │ │ ├── Roboto-Bold.ttf
│ │ │ ├── Roboto-BoldItalic.ttf
│ │ │ ├── Roboto-Italic.ttf
│ │ │ ├── Roboto-Light.ttf
│ │ │ ├── Roboto-LightItalic.ttf
│ │ │ ├── Roboto-Medium.ttf
│ │ │ ├── Roboto-MediumItalic.ttf
│ │ │ ├── Roboto-Regular.ttf
│ │ │ ├── Roboto-Thin.ttf
│ │ │ └── Roboto-ThinItalic.ttf
│ ├── images
│ │ ├── noise.png
│ │ ├── studio_logo_textual.svg
│ │ └── studio_standalone_logo.svg
│ └── styles
│ │ ├── fonts.css
│ │ ├── fonts.scss
│ │ ├── global.css
│ │ └── global.scss
├── main.js
├── models
│ ├── DMX
│ │ ├── capabilityManager.model.js
│ │ ├── channel.model.js
│ │ ├── chase.model.js
│ │ ├── chase.pool.model.js
│ │ ├── cue.item.model.js
│ │ ├── cue.item.pool.model.js
│ │ ├── cue.model.js
│ │ ├── cue.pool.model.js
│ │ ├── effect.model.js
│ │ ├── effect.preset.model.js
│ │ ├── entityManager.model.js
│ │ ├── fade.model.js
│ │ ├── fixture.model.js
│ │ ├── fixture.pool.model.js
│ │ ├── group.model.js
│ │ ├── group.pool.model.js
│ │ ├── live.model.js
│ │ ├── master.model.js
│ │ ├── modifier.model.js
│ │ ├── output.pool.model.js
│ │ ├── scene.model.js
│ │ ├── show.model.js
│ │ ├── universe.model.js
│ │ └── universe.pool.model.js
│ └── utils
│ │ └── proxify.utils.js
├── plugins
│ ├── eventbus.js
│ ├── router.js
│ ├── visualizer
│ │ ├── animation_manager.js
│ │ ├── controls.js
│ │ ├── grid.js
│ │ ├── model_instancer.js
│ │ ├── moving_head.js
│ │ ├── orbitcontrol.zup.patch.js
│ │ ├── scene_manager.js
│ │ ├── shaders
│ │ │ ├── beam.fragment.glsl
│ │ │ └── beam.vertex.glsl
│ │ └── visualizer.js
│ └── webshow.js
├── singletons
│ └── show.singleton.js
├── views
│ ├── activities
│ │ ├── app
│ │ │ ├── _popups
│ │ │ │ ├── popup.error.vue
│ │ │ │ └── popup.splash.vue
│ │ │ ├── app.activity.vue
│ │ │ └── fragments
│ │ │ │ ├── group-pool
│ │ │ │ ├── _popups
│ │ │ │ │ └── popup.group.vue
│ │ │ │ └── group-pool.fragment.vue
│ │ │ │ ├── modifiers
│ │ │ │ ├── _widgets
│ │ │ │ │ ├── modifier.widget.colorpicker.vue
│ │ │ │ │ ├── modifier.widget.curve.vue
│ │ │ │ │ ├── modifier.widget.fixture.channels.vue
│ │ │ │ │ ├── modifier.widget.fixture.pool.vue
│ │ │ │ │ └── modifier.widget.pantilt.vue
│ │ │ │ ├── chase
│ │ │ │ │ ├── _widgets
│ │ │ │ │ │ └── chase.modifier.widget.timeline.vue
│ │ │ │ │ └── chase.modifier.fragment.vue
│ │ │ │ ├── group
│ │ │ │ │ ├── _popups
│ │ │ │ │ │ ├── group.effect.modifier.popup.channels.vue
│ │ │ │ │ │ ├── group.modifier.popup.cuepool.vue
│ │ │ │ │ │ └── group.modifier.popup.patch.vue
│ │ │ │ │ ├── _widgets
│ │ │ │ │ │ ├── group.effect.modifier.widget.channels.vue
│ │ │ │ │ │ ├── group.effect.modifier.widget.wave.vue
│ │ │ │ │ │ ├── group.modifier.widget.cue.settings.vue
│ │ │ │ │ │ ├── group.modifier.widget.cuepool.vue
│ │ │ │ │ │ ├── group.modifier.widget.settings.vue
│ │ │ │ │ │ ├── group.scene.modifier.widget.curve.vue
│ │ │ │ │ │ └── group.scene.modifier.widget.fixtures.vue
│ │ │ │ │ ├── group.effect.modifier.fragment.vue
│ │ │ │ │ ├── group.modifier.fragment.vue
│ │ │ │ │ └── group.scene.modifier.fragment.vue
│ │ │ │ ├── modifier.fragment.vue
│ │ │ │ └── universe
│ │ │ │ │ ├── _popups
│ │ │ │ │ └── universe.modifier.popup.patch.vue
│ │ │ │ │ ├── _widgets
│ │ │ │ │ ├── universe.modifier.widget.fixture.position.tool.vue
│ │ │ │ │ ├── universe.modifier.widget.fixture.settings.vue
│ │ │ │ │ └── universe.modifier.widget.settings.vue
│ │ │ │ │ └── universe.modifier.fragment.vue
│ │ │ │ ├── patch-bay
│ │ │ │ └── patch-bay.fragment.vue
│ │ │ │ ├── toolbar
│ │ │ │ ├── _popups
│ │ │ │ │ ├── popup.connections.vue
│ │ │ │ │ ├── popup.credits.vue
│ │ │ │ │ ├── popup.license.vue
│ │ │ │ │ ├── popup.newshow.vue
│ │ │ │ │ ├── popup.saveas.vue
│ │ │ │ │ └── popup.visualizer.vue
│ │ │ │ └── toolbar.fragment.vue
│ │ │ │ └── visualizer
│ │ │ │ └── visualizer.fragment.vue
│ │ └── visualizer
│ │ │ └── visualizer.activity.vue
│ ├── components
│ │ └── uikit
│ │ │ ├── buttons
│ │ │ ├── index.js
│ │ │ └── uikit.button.vue
│ │ │ ├── colors
│ │ │ └── uikit.colors.js
│ │ │ ├── containers
│ │ │ ├── index.js
│ │ │ ├── uikit.container.flex.vue
│ │ │ └── uikit.spacer.vue
│ │ │ ├── cues
│ │ │ ├── index.js
│ │ │ ├── uikit.cue.container.vue
│ │ │ └── uikit.cue.vue
│ │ │ ├── icons
│ │ │ ├── images
│ │ │ │ ├── Folder2.svg
│ │ │ │ ├── add.svg
│ │ │ │ ├── adjust.svg
│ │ │ │ ├── arrow.svg
│ │ │ │ ├── arrow_down.svg
│ │ │ │ ├── arrow_up.svg
│ │ │ │ ├── blue.svg
│ │ │ │ ├── bulb.svg
│ │ │ │ ├── check.svg
│ │ │ │ ├── circle.svg
│ │ │ │ ├── close.svg
│ │ │ │ ├── colorintensity.svg
│ │ │ │ ├── colorintensityblue.svg
│ │ │ │ ├── colorintensitycyan.svg
│ │ │ │ ├── colorintensityeditable.svg
│ │ │ │ ├── colorintensitygreen.svg
│ │ │ │ ├── colorintensitymagenta.svg
│ │ │ │ ├── colorintensityred.svg
│ │ │ │ ├── colorintensitywhite.svg
│ │ │ │ ├── colorintensityyellow.svg
│ │ │ │ ├── colorpreset.svg
│ │ │ │ ├── colorwheel.svg
│ │ │ │ ├── connection.svg
│ │ │ │ ├── connections.svg
│ │ │ │ ├── contact.svg
│ │ │ │ ├── control.svg
│ │ │ │ ├── cross.svg
│ │ │ │ ├── cuepool_idle.svg
│ │ │ │ ├── cyan.svg
│ │ │ │ ├── dimmer.svg
│ │ │ │ ├── disabled.svg
│ │ │ │ ├── effect.svg
│ │ │ │ ├── eight.svg
│ │ │ │ ├── export.svg
│ │ │ │ ├── fine.svg
│ │ │ │ ├── fixture.svg
│ │ │ │ ├── focus.svg
│ │ │ │ ├── fog.svg
│ │ │ │ ├── fold.svg
│ │ │ │ ├── folder.svg
│ │ │ │ ├── frost.svg
│ │ │ │ ├── gear.svg
│ │ │ │ ├── goborotation.svg
│ │ │ │ ├── gobowheel.svg
│ │ │ │ ├── green.svg
│ │ │ │ ├── grid.svg
│ │ │ │ ├── help.svg
│ │ │ │ ├── hide.svg
│ │ │ │ ├── hslwheel.svg
│ │ │ │ ├── hueshift.svg
│ │ │ │ ├── key.svg
│ │ │ │ ├── knob.svg
│ │ │ │ ├── library.svg
│ │ │ │ ├── line.svg
│ │ │ │ ├── list_add_button.svg
│ │ │ │ ├── magenta.svg
│ │ │ │ ├── maintenance.svg
│ │ │ │ ├── mixer.svg
│ │ │ │ ├── move.svg
│ │ │ │ ├── movinghead.svg
│ │ │ │ ├── new.svg
│ │ │ │ ├── newfile.svg
│ │ │ │ ├── opensource.svg
│ │ │ │ ├── pan.svg
│ │ │ │ ├── patch.svg
│ │ │ │ ├── pipette.svg
│ │ │ │ ├── play.svg
│ │ │ │ ├── popout.svg
│ │ │ │ ├── prism.svg
│ │ │ │ ├── prisminsertion.svg
│ │ │ │ ├── prismrotation.svg
│ │ │ │ ├── red.svg
│ │ │ │ ├── redo.svg
│ │ │ │ ├── save.svg
│ │ │ │ ├── shutter.svg
│ │ │ │ ├── spline.svg
│ │ │ │ ├── stop.svg
│ │ │ │ ├── sun.svg
│ │ │ │ ├── tick.svg
│ │ │ │ ├── tilt.svg
│ │ │ │ ├── timekadel.svg
│ │ │ │ ├── trash.svg
│ │ │ │ ├── undef.svg
│ │ │ │ ├── undo.svg
│ │ │ │ ├── universe.svg
│ │ │ │ ├── visualizer.svg
│ │ │ │ ├── wave.svg
│ │ │ │ ├── waveform.svg
│ │ │ │ ├── white.svg
│ │ │ │ ├── wrench.svg
│ │ │ │ ├── yellow.svg
│ │ │ │ └── zoom.svg
│ │ │ ├── index.js
│ │ │ └── uikit.icon.vue
│ │ │ ├── index.js
│ │ │ ├── inputs
│ │ │ ├── checkbox
│ │ │ │ ├── index.js
│ │ │ │ └── uikit.input.checkbox.vue
│ │ │ ├── index.js
│ │ │ ├── range
│ │ │ │ ├── index.js
│ │ │ │ ├── uikit.input.range.fader.vue
│ │ │ │ ├── uikit.input.range.gauge.vue
│ │ │ │ ├── uikit.input.range.knob.vue
│ │ │ │ └── uikit.input.range.vumeter.vue
│ │ │ ├── select
│ │ │ │ ├── index.js
│ │ │ │ └── uikit.input.select.vue
│ │ │ └── textbox
│ │ │ │ ├── index.js
│ │ │ │ ├── uikit.input.textbox.num.vue
│ │ │ │ └── uikit.input.textbox.str.vue
│ │ │ ├── lists
│ │ │ ├── index.js
│ │ │ ├── uikit.list.item.vue
│ │ │ └── uikit.list.vue
│ │ │ ├── loaders
│ │ │ ├── index.js
│ │ │ └── uikit.loader.bar.vue
│ │ │ ├── menus
│ │ │ ├── index.js
│ │ │ └── uikit.menu.vue
│ │ │ ├── popups
│ │ │ ├── index.js
│ │ │ └── uikit.popup.vue
│ │ │ └── widgets
│ │ │ ├── index.js
│ │ │ └── uikit.widget.vue
│ ├── mixins
│ │ ├── color.mixin.js
│ │ └── popup.mixin.js
│ └── utils
│ │ ├── index.js
│ │ ├── palette.js
│ │ └── setcapture.utils.js
├── worker-api.js
└── worker.js
└── vite.config.mjs
/.env:
--------------------------------------------------------------------------------
1 | VITE_APP_DMX2WS_SERVER_URL=127.0.0.1:5214
2 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: [
3 | 'airbnb-base',
4 | 'eslint:recommended',
5 | 'plugin:vue/vue3-recommended',
6 | ],
7 | env: {
8 | browser: true,
9 | node: true,
10 | es2021: true,
11 | },
12 | parserOptions: {
13 | ecmaVersion: 'latest',
14 | },
15 | rules: {
16 | 'vue/no-mutating-props': ['error', {
17 | shallowOnly: true,
18 | }],
19 | 'no-plusplus': 'off',
20 | 'no-underscore-dangle': 'off',
21 | 'max-classes-per-file': 'off',
22 | 'no-constructor-return': 'off',
23 | 'no-param-reassign': 'off',
24 | 'no-await-in-loop': 'off',
25 | camelcase: 'off',
26 | },
27 | settings: {
28 | 'import/resolver': {
29 | alias: {
30 | map: [
31 | ['@', './src'],
32 | ['@root', './'],
33 | ],
34 | extensions: ['.js', '.vue'],
35 | },
36 | },
37 | },
38 | };
39 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.app.yaml:
--------------------------------------------------------------------------------
1 | name: Deploy
2 |
3 | on:
4 | push:
5 | branches: [staging]
6 |
7 | permissions:
8 | contents: read # for checkout
9 |
10 | jobs:
11 | build:
12 | runs-on: ubuntu-latest
13 |
14 | # This is due to change for different envs but
15 | # as of today we only have one deployment endpoint (demo)
16 | if: github.ref == 'refs/heads/staging'
17 | steps:
18 | - uses: actions/checkout@v3
19 | - name: Install Node.js
20 | uses: actions/setup-node@v3
21 | with:
22 | node-version: '16.x'
23 | - name: Install npm dependencies
24 | run: npm install
25 | - name: Run build task
26 | run: npm run build --if-present
27 | - name: Deploy to Server
28 | uses: easingthemes/ssh-deploy@main
29 | with:
30 | SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_PRIVATE_KEY }}
31 | ARGS: '-rlgoDzvc -i --delete'
32 | SOURCE: 'dist/'
33 | REMOTE_HOST: ${{ secrets.SERVER_REMOTE_HOST }}
34 | REMOTE_USER: ${{ secrets.SERVER_REMOTE_USER }}
35 | TARGET: ${{ secrets.STUDIO_APP_SERVER_REMOTE_TARGET }}
36 | EXCLUDE: '/dist/, /node_modules/'
37 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.docs.yaml:
--------------------------------------------------------------------------------
1 | name: Deploy
2 |
3 | on:
4 | push:
5 | branches: [master, staging]
6 |
7 | permissions:
8 | contents: read # for checkout
9 |
10 | jobs:
11 | build:
12 | runs-on: ubuntu-latest
13 |
14 | # This is due to change for different envs but
15 | # as of today we only have one deployment endpoint (demo)
16 | if: github.ref == 'refs/heads/staging'
17 | steps:
18 | - uses: actions/checkout@v3
19 | - name: Install Node.js
20 | uses: actions/setup-node@v3
21 | with:
22 | node-version: '16.x'
23 | - name: Install npm dependencies
24 | run: npm run docs:manual:build
25 | - name: Run build task
26 | run: npm run build --if-present
27 | - name: Deploy to Server
28 | uses: easingthemes/ssh-deploy@main
29 | with:
30 | SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
31 | ARGS: '-rlgoDzvc -i --delete'
32 | SOURCE: './docs/manual/.vitepress/dist/'
33 | REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
34 | REMOTE_USER: ${{ secrets.REMOTE_USER }}
35 | TARGET: ${{ secrets.REMOTE_TARGET }}
36 | EXCLUDE: '/dist/, /node_modules/'
37 |
--------------------------------------------------------------------------------
/.github/workflows/release.yaml:
--------------------------------------------------------------------------------
1 | name: Release
2 |
3 | on:
4 | push:
5 | branches: [ master, staging ]
6 |
7 | permissions:
8 | contents: read # for checkout
9 |
10 | jobs:
11 | release:
12 | name: Release
13 | runs-on: ubuntu-latest
14 | permissions:
15 | contents: write # to be able to publish a GitHub release
16 | id-token: write # to enable use of OIDC for npm provenance
17 | steps:
18 | - name: Checkout
19 | uses: actions/checkout@v3
20 | with:
21 | fetch-depth: 0
22 | - name: Setup Node.js
23 | uses: actions/setup-node@v3
24 | with:
25 | node-version: "lts/*"
26 | - name: Release
27 | env:
28 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29 | run: npx semantic-release
30 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | **/dist
4 | /docs/developer/core/dist
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 |
15 | # Editor directories and files
16 | .idea
17 | .vscode
18 | *.suo
19 | *.ntvs*
20 | *.njsproj
21 | *.sln
22 | *.sw?
23 |
24 | #Electron-builder output
25 | /dist_electron
26 |
27 | # Vitepress
28 | **/.vitepress/cache
29 |
--------------------------------------------------------------------------------
/docs/developer/core/assets/img/asls-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/developer/core/assets/img/asls-logo.png
--------------------------------------------------------------------------------
/docs/developer/core/assets/img/asls.logo.blue.only.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/developer/core/assets/img/asls.logo.blue.only.png
--------------------------------------------------------------------------------
/docs/developer/ui/.storybook/main.js:
--------------------------------------------------------------------------------
1 | import * as path from 'path'
2 |
3 | module.exports = {
4 | "addons": [
5 | "@storybook/addon-links",
6 | "@storybook/addon-essentials",
7 | "@storybook/addon-actions"
8 | ],
9 | "stories": [
10 | "./**/*.stories.mdx",
11 | "./**/*.stories.@(js|jsx|ts|tsx)"
12 | ],
13 | "framework": "@storybook/vue",
14 | "staticDirs": ['./static'],
15 | "webpackFinal": async (config)=>{
16 | /**
17 | * Getting vue-svg-loader to work with storybook.
18 | */
19 | let rule = config.module.rules.find(r =>
20 | r.test && r.test.toString().includes('svg') &&
21 | r.loader && r.loader.includes('file-loader')
22 | );
23 | rule.test = /\.(ico|jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|cur|ani)(\?.*)?$/;
24 | config.module.rules.push(
25 | {
26 | test: /\.svg$/,
27 | use: ['vue-svg-loader']
28 | }
29 | )
30 | /**
31 | * Getting '@' shortcut to be resolved by webpack
32 | */
33 | config.resolve.alias['@'] = path.resolve(__dirname, '../../../../src/');
34 | return config;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/docs/developer/ui/.storybook/manager-head.html:
--------------------------------------------------------------------------------
1 |
54 |
--------------------------------------------------------------------------------
/docs/developer/ui/.storybook/manager.js:
--------------------------------------------------------------------------------
1 |
2 | import { addons } from '@storybook/addons';
3 | import ASLSTheme from './theme.asls.js';
4 |
5 | addons.setConfig({
6 | theme: ASLSTheme,
7 | });
8 |
--------------------------------------------------------------------------------
/docs/developer/ui/.storybook/preview-head.html:
--------------------------------------------------------------------------------
1 |
39 |
--------------------------------------------------------------------------------
/docs/developer/ui/.storybook/preview.js.save:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import './assets/styles/global.css'
3 | import './assets/styles/fonts.css'
4 | import uikit from './uikit/'
5 | import {storiesOf} from '@storybook/vue';
6 | const { parse } = require('comment-parser/lib')
7 |
8 |
9 |
10 | const ctx = require.context('!!raw-loader!./uikit/', true, /\.vue$/)
11 | const files = {};
12 |
13 | for (let filename of ctx.keys()) {
14 | files[filename] = ctx(filename);
15 | const parsed = parse(files[filename].default).filter(data=>{
16 | return data.tags.filter(tag=>{
17 | return tag.tag == "component"
18 | }).length
19 | })
20 | if(parsed.length){
21 | parsed.forEach(p=>{
22 | console.log(p);
23 | let component = p.tags.find(tag=>tag.tag === "component");
24 | let stories = p.tags.filter(tag=>tag.tag === "story");
25 | let storiesHandle = storiesOf(component.name);
26 | stories.forEach(story=>{
27 | storiesHandle.add(story.name || "unnamed story", () => `<${component.name}/>`);
28 | import });
29 | });
30 | }
31 | }
32 |
33 | console.log(files);
34 |
35 |
36 | function registerComponents(components) {
37 | Object.keys(components).forEach(componentKey => {
38 | let component = components[componentKey]
39 | console.log(component.__file)
40 | if (component.name) {
41 | Vue.component(component.name, component)
42 | } else {
43 | registerComponents(component)
44 | }
45 | })
46 | }
47 |
48 | registerComponents(uikit);
49 |
50 |
51 | export const parameters = {
52 | actions: { argTypesRegex: "^on[A-Z].*" },
53 | controls: {
54 | matchers: {
55 | color: /(background|color)$/i,
56 | date: /Date$/,
57 | },
58 | },
59 | }
60 |
--------------------------------------------------------------------------------
/docs/developer/ui/.storybook/static/images/asls.logo.white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/developer/ui/.storybook/static/images/asls.logo.white.png
--------------------------------------------------------------------------------
/docs/developer/ui/.storybook/theme.asls.js:
--------------------------------------------------------------------------------
1 |
2 | import { create } from '@storybook/theming';
3 |
4 | /*
5 | { name: 'primary-dark', value: '#161913' },
6 | { name: 'primary-dark-alt', value: '#131510' },
7 | { name: 'primary-light', value: '#161913' },
8 | { name: 'primary-light-alt', value: '#1c1f18' },
9 | { name: 'primary-lighter', value: '#2e302b4d' },
10 | { name: 'primary-lighter-alt', value: '#22251f' },
11 | */
12 | //
13 | export default create({
14 | base: 'dark',
15 | brandTitle: 'ASLS Studio storybook',
16 | brandUrl: 'https://demo.studio.asls.timekadel.com',
17 | brandImage: '/images/asls.logo.white.png',
18 | brandTarget: '_self',
19 |
20 | colorPrimary: 'hotpink',
21 | colorSecondary: '#4a47b4',
22 |
23 | // UI
24 | appBg: '#1c1f18',
25 | appContentBg: '#161913',
26 | appBorderColor: '#2e302b4d',
27 | appBorderRadius: 0,
28 |
29 | // Typography
30 | fontBase: '"Roboto", sans-serif',
31 | fontCode: 'monospace',
32 |
33 | //inputs
34 | inputBg: '#1c1f18'
35 |
36 | });
37 |
--------------------------------------------------------------------------------
/docs/manual/.vitepress/theme/custom.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --vp-home-hero-image-background-image: linear-gradient(-45deg, #A45BC9 50%, #5A71D3 50%);
3 | --vp-home-hero-image-filter: blur(90px);
4 | --vp-home-hero-name-background: linear-gradient(-45deg, #A45BC9, #5A71D3);
5 | --vp-home-hero-name-color: transparent;
6 | --vp-c-brand-1:hsl(229, 58%, 59%);/*#8F5BC9;*/
7 | --vp-c-brand-2:#A45BC9;/*#7760B6*/
8 | --vp-c-brand-3:hwb(229 35% 17%);
9 | }
10 |
11 | @media (min-width: 960px) {
12 | div.VPHome div.VPHomeHero div.VPHero.has-image div.container div.image div.image-container img.image-src{
13 | max-width: 450px!important;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/docs/manual/.vitepress/theme/index.js:
--------------------------------------------------------------------------------
1 | import DefaultTheme from 'vitepress/theme'
2 | import './custom.css'
3 | import uikit from '../../../../src/views/components/uikit';
4 | // TODO: find a way to prevent css overrides. (import ui-kit build ?)
5 | // import '../../../../src/assets/styles/global.css';
6 | // import '../../../../src/assets/styles/fonts.css';
7 |
8 | function registerComponents(components, app) {
9 | Object.keys(components).forEach((componentKey) => {
10 | const component = components[componentKey];
11 | if (component.name) {
12 | app.component(component.name, component);
13 | } else {
14 | registerComponents(component, app);
15 | }
16 | });
17 | }
18 |
19 | export default {
20 | ...DefaultTheme,
21 | enhanceApp({ app }) {
22 | registerComponents(uikit, app);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/docs/manual/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: home
3 | hero:
4 | name: ASLS Studio
5 | text: Open-source, web-based DMX lighting control software.
6 | tagline: Learn how to use ASLS studio today !
7 | image:
8 | dark: /studio_standalone_logo.png
9 | light: /studio_standalone_logo_dark.png
10 | alt: ASLS Studio
11 | actions:
12 | - theme: brand
13 | text: User Manual
14 | link: /introduction/
15 | - theme: alt
16 | text: View on GitHub
17 | link: "https://github.com/asls-org/studio"
18 | features:
19 | - icon: 🌎
20 | title: One show file to rule them all
21 | details: By implementing non-encrypted, easy to use and modify JSON-based show files, ASLS studio aims to, once and for all, offer a universally compatible approach for show file parsing and generation.
22 | - icon: 🎱
23 | title: Create unique cues
24 | details: With ASLS's effect engine the possibilities are virtually limitless. It's up to you to pick from the software's effect preset list or tweak settings around to get that specific look you've been aiming for.
25 | - icon: 💡
26 | title: Visualize
27 | details: Get a preview of the show you're programming thanks to ASLS's WebGL based light-rendering engine.
28 | ---
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/manual/interface/modifier/index.md:
--------------------------------------------------------------------------------
1 | # Modifier
2 |
3 | Modifiers are some of the key components of [ASLS Studio](/). They offer a way to interract and manipulate a show's ressources such as [universe](/modifiers/universe/), [Groups](/modifiers/group/), [chases](/modifiers/chase/) and much more, live. They are placed at the bottom section of the app and can be accessed by interracting with both the [toolbar](/interface/toolbar/) and [group pool](/interface/grouppool/) interface components.
4 |
5 | Modifiers are comprised of modifier-specific widgets that can be used in order to visualize, edit and store show properties.
6 |
7 | | Modifier | Purpose |
8 | | ----------------- | --------------------------------------------------------------------------------------------- |
9 | | [Universe Modifier](/modifiers/universe/) | Patch, manipulate and manage fixtures in a given universe |
10 | | [Group Modifier](/modifiers/group/) | Dispatch, organize and trigger sets of [scenes](/workflow/scenes/) and [effects](/workflow/effects/) over a set of grouped fixtures. |
11 | | [Chase Modifier](/modifiers/chase/) | Arrange a set of group cues to be triggered sequentially or in parallel over time.|
--------------------------------------------------------------------------------
/docs/manual/introduction/index.md:
--------------------------------------------------------------------------------
1 | # What is ASLS Studio
2 |
3 | [ASLS Studio](https://asls.io/studio) is a powerful open-source, web-based, DMX lighting control software and visualizer. It comes with standard DMX lighting control software features such as Universe patching, Fixture grouping, Scene generation, Effect engines and much more.
4 |
5 |
6 |
7 | Just want to try it out? Skip to the [Live Browser Demo](https://asls.io/studio/live). Come back later and install [ASLS Studio](https://asls.io/studio) on your machine by following the [Quickstart guide](#).
8 |
9 |
10 |
11 | :::warning
12 | The current distribution of [ASLS Studio](https://asls.io/studio) is in beta status. Listed features are provided as-is, without any guarantee. Please report any issue over the [project's repository](https://github.com/ASLS-org/studio).
13 |
14 | :::
15 |
16 |
17 | ## Use Cases
18 |
19 | - **Live Show Control**
20 |
21 | - **Fully Timecoded Show Control**
22 |
23 | - **Art installations & Experiments**
24 |
25 | - **Architectural Lighting Management**
26 |
27 | ## Features
28 | ASLS Studio comes with standard DMX lighting control software features such as [Universe patching](/workflow/patching/), [Fixture grouping](/workflow/grouping/), [Scene generation](/workflow/scenes/), [Effect engines](/workflow/effects/), [Show Emulation](/interface/visualizer/) and much more. The following manual aims to guide you through each individual feature.
29 |
30 | ## Ambitions
31 |
--------------------------------------------------------------------------------
/docs/manual/introduction/overview.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/introduction/overview.md
--------------------------------------------------------------------------------
/docs/manual/public/ASLSlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/ASLSlogo.png
--------------------------------------------------------------------------------
/docs/manual/public/UI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/UI.png
--------------------------------------------------------------------------------
/docs/manual/public/__favicon.img:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/__favicon.img
--------------------------------------------------------------------------------
/docs/manual/public/animated.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/animated.gif
--------------------------------------------------------------------------------
/docs/manual/public/animated.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/animated.webm
--------------------------------------------------------------------------------
/docs/manual/public/asls-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/asls-logo.png
--------------------------------------------------------------------------------
/docs/manual/public/asls.logo.blue.only.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/asls.logo.blue.only.png
--------------------------------------------------------------------------------
/docs/manual/public/asls.logo.white.only.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/asls.logo.white.only.png
--------------------------------------------------------------------------------
/docs/manual/public/asls.logo.white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/asls.logo.white.png
--------------------------------------------------------------------------------
/docs/manual/public/hero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/hero.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/chase_idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/chase_idle.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/chase_playing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/chase_playing.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/chase_playing.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/chase_playing.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/group-pool_modulate-channels_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/group-pool_modulate-channels_new.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/group-pool_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/group-pool_new.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/group_pool.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/group_pool.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/group_pool_add_popup.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/group_pool_add_popup.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/group_pool_chasepool.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/group_pool_chasepool.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_chase.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_chase.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_chase_timeline_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_chase_timeline_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_cue-settings_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_cue-settings_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_cuepool_popup_add.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_cuepool_popup_add.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_cuepool_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_cuepool_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_cuepool_widget_add.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_cuepool_widget_add.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_cuepool_widget_edit.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_cuepool_widget_edit.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_cuepool_widget_play.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_cuepool_widget_play.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_effect-tool_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_effect-tool_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_fade-editor_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_fade-editor_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_fixture-channels_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_fixture-channels_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_scene-fixtures_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_scene-fixtures_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_group_settings_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_group_settings_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_2.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_2.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_3.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_3.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_4.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_4.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_colorpicker_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_colorpicker_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_fixture_channels_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_fixture_channels_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_fixture_settings_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_fixture_settings_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_fixturepool_select_ctrl_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_fixturepool_select_ctrl_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_fixturepool_widget_filter.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_fixturepool_widget_filter.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_fixturepool_widget_select.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_fixturepool_widget_select.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_pantilt_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_pantilt_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/modifier_universe_settings_widget.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/modifier_universe_settings_widget.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay_add_fixture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay_add_fixture.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay_delete_fixture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay_delete_fixture.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay_filtered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay_filtered.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay_selected.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay_selected_grouped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay_selected_grouped.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/patch_bay_unfolded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/patch_bay_unfolded.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_edit.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_edit_redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_edit_redo.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_edit_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_edit_undo.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_file.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_file_export.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_file_export.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_file_load.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_file_load.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_file_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_file_new.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_file_save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_file_save.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_preferences.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_preferences.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_preferences_fixturelib.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_preferences_fixturelib.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_preferences_io.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_preferences_io.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/toolbar_nav_preferences_visualizer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/toolbar_nav_preferences_visualizer.png
--------------------------------------------------------------------------------
/docs/manual/public/interface/visualizer.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/visualizer.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/visualizer_controls_discrete.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/visualizer_controls_discrete.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/visualizer_controls_rotate.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/visualizer_controls_rotate.webm
--------------------------------------------------------------------------------
/docs/manual/public/interface/visualizer_controls_translate.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/interface/visualizer_controls_translate.webm
--------------------------------------------------------------------------------
/docs/manual/public/overview.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/overview.webm
--------------------------------------------------------------------------------
/docs/manual/public/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/screenshot.png
--------------------------------------------------------------------------------
/docs/manual/public/studio_standalone_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/studio_standalone_logo.png
--------------------------------------------------------------------------------
/docs/manual/public/studio_standalone_logo_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/docs/manual/public/studio_standalone_logo_dark.png
--------------------------------------------------------------------------------
/docs/manual/vite.config.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable import/no-extraneous-dependencies */
2 | import { defineConfig } from 'vite';
3 | import svgLoader from 'vite-svg-loader';
4 |
5 | export default defineConfig({
6 | plugins: [svgLoader()],
7 | resolve: {
8 | alias: {
9 | '@': '../../src',
10 | },
11 | extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
12 | },
13 | });
14 |
--------------------------------------------------------------------------------
/docs/manual/workflow/effects/index.md:
--------------------------------------------------------------------------------
1 | # Creating Effects
2 |
3 | Documentation in progress.
--------------------------------------------------------------------------------
/docs/manual/workflow/environment/index.md:
--------------------------------------------------------------------------------
1 | # Setting Up Environment
2 |
3 | Documentation in progress.
--------------------------------------------------------------------------------
/docs/manual/workflow/grouping/index.md:
--------------------------------------------------------------------------------
1 | # Setting Up Groups
2 |
3 | Documentation in progress.
--------------------------------------------------------------------------------
/docs/manual/workflow/patching/index.md:
--------------------------------------------------------------------------------
1 | # Patching Fixtures
2 |
3 | Documentation in progress.
--------------------------------------------------------------------------------
/docs/manual/workflow/scenes/index.md:
--------------------------------------------------------------------------------
1 | # Creating Scenes
2 |
3 | Documentation in progress.
--------------------------------------------------------------------------------
/docs/manual/workflow/triggering/index.md:
--------------------------------------------------------------------------------
1 | # Triggering Cues
2 |
3 | Documentation in progress.
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | ASLS Studio
11 |
12 |
13 |
14 |
15 | We're sorry but ASLS Studio doesn't work properly without JavaScript enabled. Please enable it to
16 | continue.
17 |
18 |
19 |
20 |
21 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "@/*": ["src/*"],
6 | "@root/*": ["./"]
7 | },
8 | "sourceMap": true,
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/public/demo/images/asls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/demo/images/asls.png
--------------------------------------------------------------------------------
/public/demo/images/asls2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/demo/images/asls2.png
--------------------------------------------------------------------------------
/public/demo/images/blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/demo/images/blank.png
--------------------------------------------------------------------------------
/public/demo/images/blank2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/demo/images/blank2.png
--------------------------------------------------------------------------------
/public/demo/showfiles/blank.showfile.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "New Project",
3 | "bpm": 120,
4 | "fixtures": [],
5 | "universes": [
6 | {
7 | "id": 0,
8 | "name": "Universe 0",
9 | "color": "#D9416B",
10 | "fixtures": []
11 | },
12 | {
13 | "id": 1,
14 | "name": "Universe 1",
15 | "color": "#8F5BC9",
16 | "fixtures": []
17 | },
18 | {
19 | "id": 2,
20 | "name": "Universe 2",
21 | "color": "#5A8CD3",
22 | "fixtures": []
23 | },
24 | {
25 | "id": 3,
26 | "name": "Universe 3",
27 | "color": "#38B553",
28 | "fixtures": []
29 | }
30 | ],
31 | "groups": [
32 | {
33 | "id": 0,
34 | "name": "Group 0",
35 | "fixtures": [],
36 | "cues": [],
37 | "chases": [],
38 | "solo": false,
39 | "disabled": false,
40 | "color": "#D9416B",
41 | "master": 255
42 | },
43 | {
44 | "id": 1,
45 | "name": "Group 1",
46 | "fixtures": [],
47 | "cues": [],
48 | "chases": [],
49 | "solo": false,
50 | "disabled": false,
51 | "color": "#E046A6",
52 | "master": 255
53 | },
54 | {
55 | "id": 2,
56 | "name": "Group 2",
57 | "fixtures": [],
58 | "cues": [],
59 | "chases": [],
60 | "solo": false,
61 | "disabled": false,
62 | "color": "#A45BC9",
63 | "master": 255
64 | },
65 | {
66 | "id": 3,
67 | "name": "Group 3",
68 | "fixtures": [],
69 | "cues": [],
70 | "chases": [],
71 | "solo": false,
72 | "disabled": false,
73 | "color": "#8F5BC9",
74 | "master": 255
75 | }
76 | ],
77 | "visualizer": {
78 | "globalFoggingState": 0,
79 | "globalFoggingDensity": 80,
80 | "globalFoggingTurbulences": 50,
81 | "globalBrightness": 60
82 | },
83 | "selectedOutputs": []
84 | }
85 |
--------------------------------------------------------------------------------
/public/docs/images/asls.logo.blue.only.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/docs/images/asls.logo.blue.only.png
--------------------------------------------------------------------------------
/public/docs/images/asls.logo.white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/docs/images/asls.logo.white.png
--------------------------------------------------------------------------------
/public/fixtures/README.md:
--------------------------------------------------------------------------------
1 | # Fixture Library
2 | ## Updating Fixture List
3 | ###
4 | Place your OFL-formated JSON fixture files within a folder which name should be the manufacturer's **unique name** as follows.
5 | ```
6 | ASLS_STUDIO
7 | └───public
8 | │ └───fixtures
9 | | └───manufacturer-name
10 | | │ OFL-fixture.json
11 |
12 | ```
13 | ## Regenerating Fixture List
14 | In order to apply modifications (Add/remove manufacturer and/or fixtures) you must run the following command:
15 |
16 | ```console
17 | foo@bar:~/ASLS_STUDIO/public/fixtures$ node update_fixturelist.js
18 | ```
--------------------------------------------------------------------------------
/public/fixtures/beamz/h2000-faze-machine.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "H2000 Faze Machine",
4 | "categories": ["Hazer", "Smoke"],
5 | "meta": {
6 | "authors": ["DMS"],
7 | "createDate": "2019-02-21",
8 | "lastModifyDate": "2019-02-21",
9 | "importPlugin": {
10 | "plugin": "qlcplus_4.11.2",
11 | "date": "2019-02-21",
12 | "comment": "created by Q Light Controller Plus (version 4.10.5b)"
13 | }
14 | },
15 | "links": {
16 | "manual": [
17 | "https://www.tronios.com/fileuploader/download/download/?d=0&file=custom%2Fupload%2F160.512+Beamz+Fazer+H2000+V1.4.pdf"
18 | ],
19 | "productPage": [
20 | "https://www.beamzlighting.com/product/h2000-faze-machine-with-dmx/"
21 | ],
22 | "video": [
23 | "https://www.youtube.com/watch?v=Fxl80HCGqjA"
24 | ]
25 | },
26 | "physical": {
27 | "dimensions": [185, 350, 360],
28 | "weight": 6.8,
29 | "power": 1700,
30 | "DMXconnector": "3-pin"
31 | },
32 | "availableChannels": {
33 | "Smoke": {
34 | "capability": {
35 | "type": "Fog",
36 | "fogOutputStart": "off",
37 | "fogOutputEnd": "strong"
38 | }
39 | },
40 | "Fan": {
41 | "capability": {
42 | "type": "Speed",
43 | "speedStart": "80%",
44 | "speedEnd": "100%",
45 | "comment": "Fan Speed"
46 | }
47 | }
48 | },
49 | "modes": [
50 | {
51 | "name": "2-channel",
52 | "shortName": "2ch",
53 | "channels": [
54 | "Smoke",
55 | "Fan"
56 | ]
57 | }
58 | ]
59 | }
60 |
--------------------------------------------------------------------------------
/public/fixtures/cameo/instant-air-1000-pro.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Instant Air 1000 Pro",
4 | "shortName": " CLIA1000PRO",
5 | "categories": ["Fan"],
6 | "meta": {
7 | "authors": ["Felix Edelmann"],
8 | "createDate": "2019-07-31",
9 | "lastModifyDate": "2019-07-31"
10 | },
11 | "comment": "Wind machine",
12 | "links": {
13 | "manual": [
14 | "https://adamhall.s3.amazonaws.com/media/MARKEN/CAMEO/CLIA1000PRO/CLIA1000PRO_CAMEO_Bedienungsanleitung_EN_DE_FR_ES_PL_IT.PDF"
15 | ],
16 | "productPage": [
17 | "https://www.cameolight.com/en/solutions/install/fog-effect-machines/wind-machines/2145/instant-air-1000-pro"
18 | ],
19 | "video": [
20 | "https://www.youtube.com/watch?v=YYE02A0awqo"
21 | ]
22 | },
23 | "physical": {
24 | "dimensions": [385, 385, 515],
25 | "weight": 10.9,
26 | "power": 74,
27 | "DMXconnector": "3-pin and 5-pin"
28 | },
29 | "availableChannels": {
30 | "Fan": {
31 | "capabilities": [
32 | {
33 | "dmxRange": [0, 5],
34 | "type": "NoFunction"
35 | },
36 | {
37 | "dmxRange": [6, 255],
38 | "type": "Rotation",
39 | "speedStart": "slow CW",
40 | "speedEnd": "fast CW"
41 | }
42 | ]
43 | }
44 | },
45 | "modes": [
46 | {
47 | "name": "1-channel",
48 | "shortName": "1ch",
49 | "channels": [
50 | "Fan"
51 | ]
52 | }
53 | ]
54 | }
55 |
--------------------------------------------------------------------------------
/public/fixtures/cameo/instant-air-2000-pro.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Instant Air 2000 Pro",
4 | "shortName": "CLIA2000PRO",
5 | "categories": ["Fan"],
6 | "meta": {
7 | "authors": ["Felix Edelmann"],
8 | "createDate": "2019-07-31",
9 | "lastModifyDate": "2019-07-31"
10 | },
11 | "comment": "Wind machine",
12 | "links": {
13 | "manual": [
14 | "https://adamhall.s3.amazonaws.com/media/MARKEN/CAMEO/CLIA2000PRO/CLIA2000PRO_Cameo_Bedienungsanleitung_EN_DE_FR_ES_PL_IT.pdf"
15 | ],
16 | "productPage": [
17 | "https://www.cameolight.com/en/solutions/rental/fog-effect-machines/wind-machines/20175/instant-air-2000-pro"
18 | ]
19 | },
20 | "physical": {
21 | "dimensions": [385, 385, 515],
22 | "weight": 8.6,
23 | "power": 250,
24 | "DMXconnector": "3-pin and 5-pin"
25 | },
26 | "availableChannels": {
27 | "Fan": {
28 | "capabilities": [
29 | {
30 | "dmxRange": [0, 5],
31 | "type": "NoFunction"
32 | },
33 | {
34 | "dmxRange": [6, 255],
35 | "type": "Rotation",
36 | "speedStart": "440rpm",
37 | "speedEnd": "2500rpm"
38 | }
39 | ]
40 | }
41 | },
42 | "modes": [
43 | {
44 | "name": "1-channel",
45 | "shortName": "1ch",
46 | "channels": [
47 | "Fan"
48 | ]
49 | }
50 | ]
51 | }
52 |
--------------------------------------------------------------------------------
/public/fixtures/dedolight/dled4-bi.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "DLED4-BI",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["Jean-François Losson"],
7 | "createDate": "2018-11-11",
8 | "lastModifyDate": "2018-11-11"
9 | },
10 | "comment": "The DT4-BI-DMX power supply is needed for DMX control.",
11 | "links": {
12 | "productPage": [
13 | "https://www.dedoweigertfilm.de/dwf-en/products/dedolight/dedolight-dled-series4.php"
14 | ],
15 | "other": [
16 | "https://www.mediatec.de/media/pdf/fa/f8/cb/DLED4_DATENBLATT_0005.pdf"
17 | ]
18 | },
19 | "physical": {
20 | "dimensions": [109, 200, 100],
21 | "weight": 1.3,
22 | "power": 47,
23 | "DMXconnector": "5-pin",
24 | "bulb": {
25 | "type": "Bicolor 40W LED"
26 | },
27 | "lens": {
28 | "degreesMinMax": [4, 60]
29 | }
30 | },
31 | "availableChannels": {
32 | "Dimmer": {
33 | "highlightValue": "100%",
34 | "capability": {
35 | "type": "Intensity"
36 | }
37 | },
38 | "Color Temperature": {
39 | "capability": {
40 | "type": "ColorTemperature",
41 | "colorTemperatureStart": "2600K",
42 | "colorTemperatureEnd": "6800K"
43 | }
44 | }
45 | },
46 | "modes": [
47 | {
48 | "name": "DT4-BI-DMX",
49 | "channels": [
50 | "Dimmer",
51 | "Color Temperature"
52 | ]
53 | }
54 | ]
55 | }
56 |
--------------------------------------------------------------------------------
/public/fixtures/dedolight/dled7-bi.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "DLED7-BI",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["PY DOUGNAC"],
7 | "createDate": "2018-12-19",
8 | "lastModifyDate": "2018-12-19"
9 | },
10 | "comment": "The DT7-BI-DMX power supply is needed for DMX control.",
11 | "links": {
12 | "productPage": [
13 | "https://www.dedoweigertfilm.de/dwf-en/home_banner_prod/turbo-series.php"
14 | ],
15 | "other": [
16 | "https://www.mediatec.de/media/pdf/04/d6/8c/TURBO_SERIE_BROSCHUERE_0005.pdf"
17 | ]
18 | },
19 | "physical": {
20 | "dimensions": [109, 200, 100],
21 | "weight": 1.3,
22 | "power": 90,
23 | "DMXconnector": "5-pin",
24 | "bulb": {
25 | "type": "Bicolor 90W LED"
26 | },
27 | "lens": {
28 | "degreesMinMax": [4, 60]
29 | }
30 | },
31 | "availableChannels": {
32 | "Dimmer": {
33 | "capability": {
34 | "type": "Intensity"
35 | }
36 | },
37 | "Color Temperature": {
38 | "capability": {
39 | "type": "ColorTemperature",
40 | "colorTemperatureStart": "2700K",
41 | "colorTemperatureEnd": "6500K"
42 | }
43 | }
44 | },
45 | "modes": [
46 | {
47 | "name": "DT7-BI-DMX",
48 | "channels": [
49 | "Dimmer",
50 | "Color Temperature"
51 | ]
52 | }
53 | ]
54 | }
55 |
--------------------------------------------------------------------------------
/public/fixtures/elation/uni-bar.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "UNI BAR",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["Homemdamesadeluz"],
7 | "createDate": "2019-06-17",
8 | "lastModifyDate": "2019-06-17"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://cdb.s3.amazonaws.com/ItemRelatedFiles/10326/elation_UNI-BAR_user_manual_090216.pdf"
13 | ],
14 | "productPage": [
15 | "https://www.elationlighting.com/uni-bar"
16 | ]
17 | },
18 | "physical": {
19 | "dimensions": [200, 66.8, 82],
20 | "weight": 1.1,
21 | "power": 1200,
22 | "DMXconnector": "3-pin"
23 | },
24 | "availableChannels": {
25 | "Dimmer": {
26 | "capability": {
27 | "type": "Intensity"
28 | }
29 | }
30 | },
31 | "modes": [
32 | {
33 | "name": "Dimmer",
34 | "channels": [
35 | "Dimmer"
36 | ]
37 | }
38 | ]
39 | }
40 |
--------------------------------------------------------------------------------
/public/fixtures/fovitec/600xb.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "600XB",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["Anonymous"],
7 | "createDate": "2021-08-20",
8 | "lastModifyDate": "2021-08-20"
9 | },
10 | "links": {
11 | "productPage": [
12 | "https://www.fovitec.com/products/600xb-bi-color-led-panel-with-dmx"
13 | ]
14 | },
15 | "physical": {
16 | "dimensions": [394, 399, 76],
17 | "power": 36,
18 | "bulb": {
19 | "type": "600× LED",
20 | "lumens": 1420
21 | },
22 | "lens": {
23 | "degreesMinMax": [45, 45]
24 | }
25 | },
26 | "availableChannels": {
27 | "Intensity": {
28 | "capability": {
29 | "type": "Intensity"
30 | }
31 | },
32 | "Color Temperature": {
33 | "capability": {
34 | "type": "ColorTemperature",
35 | "colorTemperatureStart": "3200K",
36 | "colorTemperatureEnd": "5600K"
37 | }
38 | }
39 | },
40 | "modes": [
41 | {
42 | "name": "2-channel",
43 | "shortName": "2ch",
44 | "channels": [
45 | "Intensity",
46 | "Color Temperature"
47 | ]
48 | }
49 | ]
50 | }
51 |
--------------------------------------------------------------------------------
/public/fixtures/futurelight/stb-648-led-strobe-smd-5050.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "STB-648 LED Strobe SMD 5050",
4 | "categories": ["Strobe"],
5 | "meta": {
6 | "authors": ["Felix Edelmann"],
7 | "createDate": "2018-02-03",
8 | "lastModifyDate": "2018-08-09"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://media.steinigke.de/documents_t/51841370-MANUAL-1.00-de-en_00068855.pdf"
13 | ],
14 | "video": [
15 | "https://www.youtube.com/watch?v=M_syNbUd4iY"
16 | ]
17 | },
18 | "physical": {
19 | "dimensions": [420, 225, 165],
20 | "weight": 4.5,
21 | "power": 160,
22 | "DMXconnector": "3-pin and 5-pin",
23 | "bulb": {
24 | "type": "648x SMD 5050 LEDs"
25 | }
26 | },
27 | "availableChannels": {
28 | "Strobe": {
29 | "defaultValue": 0,
30 | "capabilities": [
31 | {
32 | "dmxRange": [0, 0],
33 | "type": "NoFunction"
34 | },
35 | {
36 | "dmxRange": [1, 255],
37 | "type": "ShutterStrobe",
38 | "shutterEffect": "Strobe",
39 | "speedStart": "1Hz",
40 | "speedEnd": "30Hz"
41 | }
42 | ]
43 | },
44 | "Brightness": {
45 | "defaultValue": 0,
46 | "capability": {
47 | "type": "Intensity"
48 | }
49 | }
50 | },
51 | "modes": [
52 | {
53 | "name": "2-channel",
54 | "shortName": "2ch",
55 | "channels": [
56 | "Strobe",
57 | "Brightness"
58 | ]
59 | }
60 | ]
61 | }
62 |
--------------------------------------------------------------------------------
/public/fixtures/generic/4-channel-dimmer-pack.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "4-Channel Dimmer Pack",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["Goetz"],
7 | "createDate": "2021-06-17",
8 | "lastModifyDate": "2021-06-17"
9 | },
10 | "comment": "Your usual off-the-shelf generic 4 Channel Dimmer Pack from Botec, Stairville, Lightmaxx, EuroLite, ShowTex, Varytec etc.",
11 | "matrix": {
12 | "pixelCount": [4, 1, 1],
13 | "pixelGroups": {
14 | "Master": "all",
15 | "1/2": ["1", "2"],
16 | "3/4": ["3", "4"]
17 | }
18 | },
19 | "templateChannels": {
20 | "Dimmer $pixelKey": {
21 | "capability": {
22 | "type": "Intensity",
23 | "brightnessStart": "0%",
24 | "brightnessEnd": "100%"
25 | }
26 | }
27 | },
28 | "modes": [
29 | {
30 | "name": "1-channel",
31 | "shortName": "1ch",
32 | "channels": [
33 | "Dimmer Master"
34 | ]
35 | },
36 | {
37 | "name": "2-channel",
38 | "shortName": "2ch",
39 | "channels": [
40 | "Dimmer 1/2",
41 | "Dimmer 3/4"
42 | ]
43 | },
44 | {
45 | "name": "4-channel",
46 | "shortName": "4ch",
47 | "channels": [
48 | "Dimmer 1",
49 | "Dimmer 2",
50 | "Dimmer 3",
51 | "Dimmer 4"
52 | ]
53 | }
54 | ]
55 | }
56 |
--------------------------------------------------------------------------------
/public/fixtures/generic/cmy-fader.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "CMY Fader",
4 | "shortName": "CMY",
5 | "categories": ["Color Changer"],
6 | "meta": {
7 | "authors": ["Flo Edelmann"],
8 | "createDate": "2017-12-12",
9 | "lastModifyDate": "2018-07-21"
10 | },
11 | "availableChannels": {
12 | "Cyan": {
13 | "fineChannelAliases": ["Cyan fine", "Cyan fine^2"],
14 | "capability": {
15 | "type": "ColorIntensity",
16 | "color": "Cyan"
17 | }
18 | },
19 | "Magenta": {
20 | "fineChannelAliases": ["Magenta fine", "Magenta fine^2"],
21 | "capability": {
22 | "type": "ColorIntensity",
23 | "color": "Magenta"
24 | }
25 | },
26 | "Yellow": {
27 | "fineChannelAliases": ["Yellow fine", "Yellow fine^2"],
28 | "capability": {
29 | "type": "ColorIntensity",
30 | "color": "Yellow"
31 | }
32 | }
33 | },
34 | "modes": [
35 | {
36 | "name": "8 bit",
37 | "shortName": "8bit",
38 | "channels": [
39 | "Cyan",
40 | "Magenta",
41 | "Yellow"
42 | ]
43 | },
44 | {
45 | "name": "16 bit",
46 | "shortName": "16bit",
47 | "channels": [
48 | "Cyan",
49 | "Cyan fine",
50 | "Magenta",
51 | "Magenta fine",
52 | "Yellow",
53 | "Yellow fine"
54 | ]
55 | },
56 | {
57 | "name": "24 bit",
58 | "shortName": "24bit",
59 | "channels": [
60 | "Cyan",
61 | "Cyan fine",
62 | "Cyan fine^2",
63 | "Magenta",
64 | "Magenta fine",
65 | "Magenta fine^2",
66 | "Yellow",
67 | "Yellow fine",
68 | "Yellow fine^2"
69 | ]
70 | }
71 | ]
72 | }
73 |
--------------------------------------------------------------------------------
/public/fixtures/generic/desk-channel.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Desk Channel",
4 | "shortName": "DeskCh",
5 | "categories": ["Dimmer"],
6 | "meta": {
7 | "authors": ["Flo Edelmann"],
8 | "createDate": "2017-07-17",
9 | "lastModifyDate": "2018-07-21"
10 | },
11 | "availableChannels": {
12 | "Intensity": {
13 | "fineChannelAliases": ["Intensity fine", "Intensity fine^2"],
14 | "capability": {
15 | "type": "Intensity"
16 | }
17 | }
18 | },
19 | "modes": [
20 | {
21 | "name": "8 bit",
22 | "shortName": "8bit",
23 | "channels": [
24 | "Intensity"
25 | ]
26 | },
27 | {
28 | "name": "16 bit",
29 | "shortName": "16bit",
30 | "channels": [
31 | "Intensity",
32 | "Intensity fine"
33 | ]
34 | },
35 | {
36 | "name": "24 bit",
37 | "shortName": "24bit",
38 | "channels": [
39 | "Intensity",
40 | "Intensity fine",
41 | "Intensity fine^2"
42 | ]
43 | }
44 | ]
45 | }
46 |
--------------------------------------------------------------------------------
/public/fixtures/generic/rgb-fader.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "RGB Fader",
4 | "shortName": "RGB",
5 | "categories": ["Color Changer"],
6 | "meta": {
7 | "authors": ["Flo Edelmann"],
8 | "createDate": "2017-07-17",
9 | "lastModifyDate": "2018-07-21"
10 | },
11 | "availableChannels": {
12 | "Red": {
13 | "fineChannelAliases": ["Red fine", "Red fine^2"],
14 | "capability": {
15 | "type": "ColorIntensity",
16 | "color": "Red"
17 | }
18 | },
19 | "Green": {
20 | "fineChannelAliases": ["Green fine", "Green fine^2"],
21 | "capability": {
22 | "type": "ColorIntensity",
23 | "color": "Green"
24 | }
25 | },
26 | "Blue": {
27 | "fineChannelAliases": ["Blue fine", "Blue fine^2"],
28 | "capability": {
29 | "type": "ColorIntensity",
30 | "color": "Blue"
31 | }
32 | }
33 | },
34 | "modes": [
35 | {
36 | "name": "8 bit",
37 | "shortName": "8bit",
38 | "channels": [
39 | "Red",
40 | "Green",
41 | "Blue"
42 | ]
43 | },
44 | {
45 | "name": "16 bit",
46 | "shortName": "16bit",
47 | "channels": [
48 | "Red",
49 | "Red fine",
50 | "Green",
51 | "Green fine",
52 | "Blue",
53 | "Blue fine"
54 | ]
55 | },
56 | {
57 | "name": "24 bit",
58 | "shortName": "24bit",
59 | "channels": [
60 | "Red",
61 | "Red fine",
62 | "Red fine^2",
63 | "Green",
64 | "Green fine",
65 | "Green fine^2",
66 | "Blue",
67 | "Blue fine",
68 | "Blue fine^2"
69 | ]
70 | }
71 | ]
72 | }
73 |
--------------------------------------------------------------------------------
/public/fixtures/generic/strobe.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Strobe",
4 | "categories": ["Strobe"],
5 | "meta": {
6 | "authors": ["Mikey Rowlands"],
7 | "createDate": "2019-11-01",
8 | "lastModifyDate": "2019-11-01"
9 | },
10 | "availableChannels": {
11 | "Frequency": {
12 | "capability": {
13 | "type": "ShutterStrobe",
14 | "shutterEffect": "Strobe",
15 | "speedStart": "slow",
16 | "speedEnd": "fast"
17 | }
18 | },
19 | "Dimmer": {
20 | "defaultValue": 0,
21 | "capability": {
22 | "type": "Intensity"
23 | }
24 | }
25 | },
26 | "modes": [
27 | {
28 | "name": "Frequency + Dimmer",
29 | "channels": [
30 | "Frequency",
31 | "Dimmer"
32 | ]
33 | },
34 | {
35 | "name": "Dimmer + Frequency",
36 | "channels": [
37 | "Dimmer",
38 | "Frequency"
39 | ]
40 | }
41 | ]
42 | }
43 |
--------------------------------------------------------------------------------
/public/fixtures/hazebase/base-hazer-pro.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "base*hazer*pro",
4 | "shortName": "basehazerpro",
5 | "categories": ["Hazer"],
6 | "meta": {
7 | "authors": ["Flo Edelmann"],
8 | "createDate": "2019-11-05",
9 | "lastModifyDate": "2019-11-05"
10 | },
11 | "links": {
12 | "manual": [
13 | "https://hazebase.com/wp-content/uploads/manual_base_hazer.pdf"
14 | ],
15 | "productPage": [
16 | "https://www.hazebaseamerica.com/base_hazer_pro.php"
17 | ],
18 | "video": [
19 | "https://www.youtube.com/watch?v=m1Z7sziCdL0"
20 | ]
21 | },
22 | "physical": {
23 | "dimensions": [59.4, 18.5, 54],
24 | "weight": 18,
25 | "power": 1500,
26 | "DMXconnector": "5-pin"
27 | },
28 | "availableChannels": {
29 | "Haze": {
30 | "capability": {
31 | "type": "Fog",
32 | "fogType": "Haze",
33 | "fogOutputStart": "off",
34 | "fogOutputEnd": "strong"
35 | }
36 | },
37 | "Fan": {
38 | "capability": {
39 | "type": "Rotation",
40 | "speedStart": "slow CW",
41 | "speedEnd": "fast CW"
42 | }
43 | }
44 | },
45 | "modes": [
46 | {
47 | "name": "2-channel",
48 | "shortName": "2ch",
49 | "channels": [
50 | "Haze",
51 | "Fan"
52 | ]
53 | }
54 | ]
55 | }
56 |
--------------------------------------------------------------------------------
/public/fixtures/hive/bumble-bee-25-cx.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Bumble Bee 25-CX",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["Dyami Caliri"],
7 | "createDate": "2021-02-20",
8 | "lastModifyDate": "2021-02-20"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://drive.google.com/file/d/1pJK6BaAhvOGTwMP1VhfO8GH25YicCDwS/view"
13 | ],
14 | "productPage": [
15 | "https://hivelighting.com/bb-25-cx/"
16 | ],
17 | "video": [
18 | "https://www.youtube.com/watch?v=Q2pU13V46aw"
19 | ]
20 | },
21 | "physical": {
22 | "dimensions": [100, 100, 67],
23 | "weight": 0.5,
24 | "power": 25,
25 | "DMXconnector": "5-pin",
26 | "bulb": {
27 | "type": "LED"
28 | },
29 | "lens": {
30 | "degreesMinMax": [15, 180]
31 | }
32 | },
33 | "availableChannels": {
34 | "Intensity": {
35 | "defaultValue": 0,
36 | "highlightValue": 255,
37 | "capability": {
38 | "type": "Intensity"
39 | }
40 | },
41 | "CCT": {
42 | "capability": {
43 | "type": "ColorTemperature",
44 | "colorTemperatureStart": "1650K",
45 | "colorTemperatureEnd": "8025K"
46 | }
47 | },
48 | "Hue": {
49 | "defaultValue": 0,
50 | "capability": {
51 | "type": "Generic",
52 | "comment": "0…360°"
53 | }
54 | },
55 | "Saturation": {
56 | "defaultValue": 0,
57 | "capability": {
58 | "type": "Generic",
59 | "comment": "0…100%"
60 | }
61 | }
62 | },
63 | "modes": [
64 | {
65 | "name": "HSI",
66 | "shortName": "HSI",
67 | "channels": [
68 | "Intensity",
69 | "CCT",
70 | "Saturation",
71 | "Hue"
72 | ]
73 | }
74 | ]
75 | }
76 |
--------------------------------------------------------------------------------
/public/fixtures/hive/hornet-200-cx.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Hornet 200-CX",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["Dyami Caliri"],
7 | "createDate": "2021-02-20",
8 | "lastModifyDate": "2021-02-20"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://drive.google.com/file/d/1pJK6BaAhvOGTwMP1VhfO8GH25YicCDwS/view"
13 | ],
14 | "productPage": [
15 | "https://hivelighting.com/hornet-200-cx/"
16 | ],
17 | "video": [
18 | "https://www.youtube.com/watch?v=n0JaoCZWXVc"
19 | ]
20 | },
21 | "physical": {
22 | "dimensions": [100, 100, 222],
23 | "weight": 2.2,
24 | "power": 150,
25 | "DMXconnector": "5-pin",
26 | "bulb": {
27 | "type": "LED"
28 | },
29 | "lens": {
30 | "degreesMinMax": [19, 180]
31 | }
32 | },
33 | "availableChannels": {
34 | "Intensity": {
35 | "defaultValue": 0,
36 | "highlightValue": 255,
37 | "capability": {
38 | "type": "Intensity"
39 | }
40 | },
41 | "CCT": {
42 | "capability": {
43 | "type": "ColorTemperature",
44 | "colorTemperatureStart": "1650K",
45 | "colorTemperatureEnd": "8025K"
46 | }
47 | },
48 | "Hue": {
49 | "defaultValue": 0,
50 | "capability": {
51 | "type": "Generic",
52 | "comment": "0…360°"
53 | }
54 | },
55 | "Saturation": {
56 | "defaultValue": 0,
57 | "capability": {
58 | "type": "Generic",
59 | "comment": "0…100%"
60 | }
61 | }
62 | },
63 | "modes": [
64 | {
65 | "name": "HSI",
66 | "shortName": "HSI",
67 | "channels": [
68 | "Intensity",
69 | "CCT",
70 | "Saturation",
71 | "Hue"
72 | ]
73 | }
74 | ]
75 | }
76 |
--------------------------------------------------------------------------------
/public/fixtures/hive/wasp-100-cx.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Wasp 100-CX",
4 | "categories": ["Dimmer"],
5 | "meta": {
6 | "authors": ["Dyami Caliri"],
7 | "createDate": "2021-02-20",
8 | "lastModifyDate": "2021-02-20"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://drive.google.com/file/d/1pJK6BaAhvOGTwMP1VhfO8GH25YicCDwS/view"
13 | ],
14 | "productPage": [
15 | "https://hivelighting.com/wasp-100-cx/"
16 | ],
17 | "video": [
18 | "https://www.youtube.com/watch?v=5JuWHXsTSXI&t=22s"
19 | ]
20 | },
21 | "physical": {
22 | "dimensions": [100, 100, 199],
23 | "weight": 0.9,
24 | "power": 75,
25 | "DMXconnector": "5-pin",
26 | "bulb": {
27 | "type": "LED"
28 | },
29 | "lens": {
30 | "degreesMinMax": [13, 180]
31 | }
32 | },
33 | "availableChannels": {
34 | "Intensity": {
35 | "defaultValue": 0,
36 | "highlightValue": 255,
37 | "capability": {
38 | "type": "Intensity"
39 | }
40 | },
41 | "CCT": {
42 | "capability": {
43 | "type": "ColorTemperature",
44 | "colorTemperatureStart": "1650K",
45 | "colorTemperatureEnd": "8025K"
46 | }
47 | },
48 | "Hue": {
49 | "defaultValue": 0,
50 | "capability": {
51 | "type": "Generic",
52 | "comment": "0…360°"
53 | }
54 | },
55 | "Saturation": {
56 | "defaultValue": 0,
57 | "capability": {
58 | "type": "Generic",
59 | "comment": "0…100%"
60 | }
61 | }
62 | },
63 | "modes": [
64 | {
65 | "name": "HSI",
66 | "shortName": "HSI",
67 | "channels": [
68 | "Intensity",
69 | "CCT",
70 | "Saturation",
71 | "Hue"
72 | ]
73 | }
74 | ]
75 | }
76 |
--------------------------------------------------------------------------------
/public/fixtures/ibiza-light/ls-005led.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "LS-005LED",
4 | "categories": ["Color Changer"],
5 | "meta": {
6 | "authors": ["Tormant"],
7 | "createDate": "2019-07-29",
8 | "lastModifyDate": "2019-07-29"
9 | },
10 | "links": {
11 | "video": [
12 | "https://www.youtube.com/watch?v=Ojwpf-J7rvQ"
13 | ]
14 | },
15 | "helpWanted": "Can you provide a link to a manual, product page, or similar?",
16 | "physical": {
17 | "dimensions": [460, 160, 140],
18 | "power": 30,
19 | "DMXconnector": "3-pin",
20 | "bulb": {
21 | "type": "LED"
22 | }
23 | },
24 | "availableChannels": {
25 | "Dimmer": {
26 | "capabilities": [
27 | {
28 | "dmxRange": [0, 0],
29 | "type": "NoFunction"
30 | },
31 | {
32 | "dmxRange": [1, 127],
33 | "type": "ShutterStrobe",
34 | "shutterEffect": "Strobe",
35 | "speedStart": "slow",
36 | "speedEnd": "fast"
37 | },
38 | {
39 | "dmxRange": [128, 128],
40 | "type": "NoFunction"
41 | },
42 | {
43 | "dmxRange": [129, 255],
44 | "type": "Intensity"
45 | }
46 | ]
47 | },
48 | "Red": {
49 | "capability": {
50 | "type": "ColorIntensity",
51 | "color": "Red"
52 | }
53 | },
54 | "Green": {
55 | "capability": {
56 | "type": "ColorIntensity",
57 | "color": "Green"
58 | }
59 | },
60 | "Blue": {
61 | "capability": {
62 | "type": "ColorIntensity",
63 | "color": "Blue"
64 | }
65 | }
66 | },
67 | "modes": [
68 | {
69 | "name": "4-channel",
70 | "shortName": "4ch",
71 | "channels": [
72 | "Dimmer",
73 | "Red",
74 | "Green",
75 | "Blue"
76 | ]
77 | }
78 | ]
79 | }
80 |
--------------------------------------------------------------------------------
/public/fixtures/lightmaxx/led-par-56.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "LED Par 56",
4 | "categories": ["Color Changer"],
5 | "meta": {
6 | "authors": ["Hannes Rüger"],
7 | "createDate": "2021-08-05",
8 | "lastModifyDate": "2021-08-05"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://www.scherloc.com/_media/notice-par56led-10mm.pdf"
13 | ],
14 | "productPage": [
15 | "https://www.musicstore.de/en_US/USD/lightmaXX-LED-Par-56-RGB-Short-Polish-10mm-LEDs/art-LIG0002658-000"
16 | ]
17 | },
18 | "physical": {
19 | "dimensions": [220, 210, 220],
20 | "weight": 1.4,
21 | "power": 22,
22 | "DMXconnector": "3-pin",
23 | "bulb": {
24 | "type": "108x LED"
25 | }
26 | },
27 | "availableChannels": {
28 | "Red": {
29 | "capability": {
30 | "type": "ColorIntensity",
31 | "color": "Red"
32 | }
33 | },
34 | "Green": {
35 | "capability": {
36 | "type": "ColorIntensity",
37 | "color": "Green"
38 | }
39 | },
40 | "Blue": {
41 | "capability": {
42 | "type": "ColorIntensity",
43 | "color": "Blue"
44 | }
45 | },
46 | "Dimmer": {
47 | "capabilities": [
48 | {
49 | "dmxRange": [0, 189],
50 | "type": "Intensity"
51 | },
52 | {
53 | "dmxRange": [190, 250],
54 | "type": "ShutterStrobe",
55 | "shutterEffect": "Strobe",
56 | "speedStart": "slow",
57 | "speedEnd": "fast"
58 | },
59 | {
60 | "dmxRange": [251, 255],
61 | "type": "NoFunction"
62 | }
63 | ]
64 | }
65 | },
66 | "modes": [
67 | {
68 | "name": "4-channel",
69 | "shortName": "4ch",
70 | "channels": [
71 | "Red",
72 | "Green",
73 | "Blue",
74 | "Dimmer"
75 | ]
76 | }
77 | ]
78 | }
79 |
--------------------------------------------------------------------------------
/public/fixtures/lixada/mini-beam-rgbw.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture-redirect.json",
3 | "name": "Mini Beam RGBW",
4 | "redirectTo": "stage-right/mini-beam-rgbw",
5 | "reason": "SameAsDifferentBrand"
6 | }
7 |
--------------------------------------------------------------------------------
/public/fixtures/lixada/mini-moving-head-rgbw.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture-redirect.json",
3 | "name": "Mini Moving Head RGBW",
4 | "redirectTo": "stage-right/stage-wash-7x10w-led-moving-head",
5 | "reason": "SameAsDifferentBrand"
6 | }
7 |
--------------------------------------------------------------------------------
/public/fixtures/look/cryofog.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Cryofog",
4 | "categories": ["Smoke"],
5 | "meta": {
6 | "authors": ["coffeeholic"],
7 | "createDate": "2021-08-05",
8 | "lastModifyDate": "2021-08-05"
9 | },
10 | "comment": "Low fog machine with CO2 cooling.",
11 | "links": {
12 | "manual": [
13 | "https://www.looksolutions.com/uploads/pdf/bed_cryo_hp_1d.pdf"
14 | ],
15 | "productPage": [
16 | "https://www.looksolutions.com/produkte/cryo_fog/2.html"
17 | ]
18 | },
19 | "physical": {
20 | "dimensions": [510, 300, 670],
21 | "weight": 33,
22 | "power": 2300,
23 | "DMXconnector": "5-pin"
24 | },
25 | "availableChannels": {
26 | "Fog Intensity": {
27 | "capability": {
28 | "type": "Fog",
29 | "fogType": "Fog",
30 | "fogOutputStart": "off",
31 | "fogOutputEnd": "strong"
32 | }
33 | },
34 | "Fan": {
35 | "capability": {
36 | "type": "Rotation",
37 | "speedStart": "slow CW",
38 | "speedEnd": "fast CW"
39 | }
40 | },
41 | "Cooling": {
42 | "capabilities": [
43 | {
44 | "dmxRange": [0, 0],
45 | "type": "Maintenance",
46 | "comment": "Cooling valve closed"
47 | },
48 | {
49 | "dmxRange": [1, 254],
50 | "type": "NoFunction"
51 | },
52 | {
53 | "dmxRange": [255, 255],
54 | "type": "Maintenance",
55 | "comment": "Cooling valve open"
56 | }
57 | ]
58 | }
59 | },
60 | "modes": [
61 | {
62 | "name": "3-channel",
63 | "shortName": "3ch",
64 | "channels": [
65 | "Fog Intensity",
66 | "Fan",
67 | "Cooling"
68 | ]
69 | }
70 | ]
71 | }
72 |
--------------------------------------------------------------------------------
/public/fixtures/look/viper-nt.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Viper NT",
4 | "categories": ["Smoke"],
5 | "meta": {
6 | "authors": ["Flo Edelmann"],
7 | "createDate": "2018-02-18",
8 | "lastModifyDate": "2018-08-09"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://www.looksolutions.com/uploads/pdf/bed_vipernt_1d.pdf"
13 | ],
14 | "productPage": [
15 | "https://www.looksolutions.com/produkte/viper_nt/2.html"
16 | ],
17 | "video": [
18 | "https://www.youtube.com/watch?v=uw4HNAFkKgQ",
19 | "https://www.youtube.com/watch?v=QYufuVasJWc"
20 | ]
21 | },
22 | "physical": {
23 | "dimensions": [230, 240, 470],
24 | "weight": 8.6,
25 | "power": 1300,
26 | "DMXconnector": "5-pin"
27 | },
28 | "availableChannels": {
29 | "Pump": {
30 | "capability": {
31 | "type": "Fog",
32 | "fogType": "Fog",
33 | "fogOutputStart": "off",
34 | "fogOutputEnd": "strong"
35 | }
36 | },
37 | "Heat": {
38 | "capability": {
39 | "type": "Maintenance",
40 | "comment": "Heat",
41 | "parameterStart": "low",
42 | "parameterEnd": "high"
43 | }
44 | }
45 | },
46 | "modes": [
47 | {
48 | "name": "2-channel",
49 | "shortName": "2ch",
50 | "channels": [
51 | "Pump",
52 | "Heat"
53 | ]
54 | }
55 | ]
56 | }
57 |
--------------------------------------------------------------------------------
/public/fixtures/magicfx/stage-flame.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Stage Flame",
4 | "shortName": "MFXStageFlame",
5 | "categories": ["Effect"],
6 | "meta": {
7 | "authors": ["Alejo Cervera"],
8 | "createDate": "2018-06-13",
9 | "lastModifyDate": "2018-08-21"
10 | },
11 | "links": {
12 | "manual": [
13 | "https://www.magicfx.eu/app/uploads/2020/01/MAGICFX_STAGE-FLAME_MANUAL.pdf"
14 | ],
15 | "productPage": [
16 | "https://www.magicfx.eu/product/magicfx-stage-flame/"
17 | ],
18 | "video": [
19 | "https://www.youtube.com/watch?v=YLeYRexsTmc",
20 | "https://www.youtube.com/watch?v=HvRzNTf07aY"
21 | ]
22 | },
23 | "physical": {
24 | "dimensions": [310, 210, 360],
25 | "weight": 11.5,
26 | "power": 100,
27 | "DMXconnector": "3-pin"
28 | },
29 | "availableChannels": {
30 | "Safety": {
31 | "defaultValue": 0,
32 | "precedence": "LTP",
33 | "capabilities": [
34 | {
35 | "dmxRange": [0, 139],
36 | "type": "Maintenance",
37 | "comment": "Safety ON"
38 | },
39 | {
40 | "dmxRange": [140, 153],
41 | "type": "Maintenance",
42 | "comment": "Safety OFF"
43 | },
44 | {
45 | "dmxRange": [154, 255],
46 | "type": "Maintenance",
47 | "comment": "Safety ON"
48 | }
49 | ]
50 | },
51 | "Flame": {
52 | "defaultValue": 0,
53 | "highlightValue": 255,
54 | "precedence": "HTP",
55 | "capability": {
56 | "type": "EffectParameter",
57 | "parameterStart": "off",
58 | "parameterEnd": "high",
59 | "comment": "Flame Intensity"
60 | }
61 | }
62 | },
63 | "modes": [
64 | {
65 | "name": "Default",
66 | "channels": [
67 | "Safety",
68 | "Flame"
69 | ]
70 | }
71 | ]
72 | }
73 |
--------------------------------------------------------------------------------
/public/fixtures/martin/magnum-2500-hz.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Magnum 2500 HZ",
4 | "shortName": "MartinMagnum2.5k",
5 | "categories": ["Hazer"],
6 | "meta": {
7 | "authors": ["novasfronteiras.co"],
8 | "createDate": "2017-08-08",
9 | "lastModifyDate": "2018-08-09"
10 | },
11 | "links": {
12 | "manual": [
13 | "https://www.martin.com/files/files/productdocuments/11_MANUALS/999/UM_Magnum2500Hz_EN_F.pdf"
14 | ],
15 | "video": [
16 | "https://www.youtube.com/watch?v=wCQePza8akg",
17 | "https://www.youtube.com/watch?v=Nc0ku6yCe4w"
18 | ]
19 | },
20 | "physical": {
21 | "dimensions": [285, 286, 455],
22 | "weight": 15.7,
23 | "power": 920,
24 | "DMXconnector": "3-pin"
25 | },
26 | "availableChannels": {
27 | "Fog": {
28 | "capabilities": [
29 | {
30 | "dmxRange": [0, 29],
31 | "type": "NoFunction"
32 | },
33 | {
34 | "dmxRange": [30, 255],
35 | "type": "Fog",
36 | "fogOutputStart": "0m^3/min",
37 | "fogOutputEnd": "2500m^3/min",
38 | "fogType": "Haze"
39 | }
40 | ]
41 | }
42 | },
43 | "modes": [
44 | {
45 | "name": "Standard",
46 | "shortName": "std",
47 | "channels": [
48 | "Fog"
49 | ]
50 | }
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/public/fixtures/mdg/hazer-atmosphere-aps.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Hazer ATMOSPHERE APS",
4 | "shortName": "MDG-M35A-X",
5 | "categories": ["Hazer"],
6 | "meta": {
7 | "authors": ["novasfronteiras.co"],
8 | "createDate": "2017-08-08",
9 | "lastModifyDate": "2018-08-09"
10 | },
11 | "links": {
12 | "manual": [
13 | "https://mdgfog.s3.amazonaws.com/uploads/docs/ATM-MAX-User-Guide-120815-Rev-Ad.pdf",
14 | "https://mdgfog.s3.amazonaws.com/uploads/docs/DMX-M35A-X-2012.pdf"
15 | ],
16 | "productPage": [
17 | "https://www.mdgfog.com/en/atmosphereaps"
18 | ],
19 | "video": [
20 | "https://www.youtube.com/watch?v=C9u31D-4icQ"
21 | ]
22 | },
23 | "physical": {
24 | "dimensions": [180, 300, 68.5],
25 | "weight": 23,
26 | "power": 715,
27 | "DMXconnector": "5-pin"
28 | },
29 | "availableChannels": {
30 | "Fog": {
31 | "capabilities": [
32 | {
33 | "dmxRange": [0, 127],
34 | "type": "NoFunction"
35 | },
36 | {
37 | "dmxRange": [128, 255],
38 | "type": "Fog",
39 | "fogType": "Haze"
40 | }
41 | ]
42 | },
43 | "Fog Emission": {
44 | "capabilities": [
45 | {
46 | "dmxRange": [0, 17],
47 | "type": "FogOutput",
48 | "fogOutput": "off"
49 | },
50 | {
51 | "dmxRange": [18, 255],
52 | "type": "FogOutput",
53 | "fogOutputStart": "weak",
54 | "fogOutputEnd": "strong"
55 | }
56 | ]
57 | }
58 | },
59 | "modes": [
60 | {
61 | "name": "Standard",
62 | "shortName": "std",
63 | "channels": [
64 | "Fog",
65 | "Fog Emission"
66 | ]
67 | }
68 | ]
69 | }
70 |
--------------------------------------------------------------------------------
/public/fixtures/minuit-une/m-carre.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture-redirect.json",
3 | "name": "M-Carré",
4 | "redirectTo": "minuit-une/ivl-carre",
5 | "reason": "FixtureRenamed"
6 | }
7 |
--------------------------------------------------------------------------------
/public/fixtures/robert-juliat/613sx.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "613SX",
4 | "shortName": "RJ613SX",
5 | "categories": ["Dimmer"],
6 | "meta": {
7 | "authors": ["dariovideo"],
8 | "createDate": "2018-11-27",
9 | "lastModifyDate": "2018-11-27"
10 | },
11 | "comment": "Only controllable via dimmer pack",
12 | "links": {
13 | "manual": [
14 | "https://www.robertjuliat.com/Product_Specifications/Fiches_EN/Standard/DSEN045_613SX.pdf"
15 | ],
16 | "productPage": [
17 | "https://www.robertjuliat.com/profilespots/600SX.html"
18 | ]
19 | },
20 | "physical": {
21 | "dimensions": [330, 415, 565],
22 | "weight": 11,
23 | "power": 1000,
24 | "bulb": {
25 | "type": "Tungsten T19",
26 | "colorTemperature": 3050,
27 | "lumens": 21000
28 | },
29 | "lens": {
30 | "degreesMinMax": [28, 54]
31 | }
32 | },
33 | "availableChannels": {
34 | "Dimmer": {
35 | "capability": {
36 | "type": "Intensity"
37 | }
38 | }
39 | },
40 | "modes": [
41 | {
42 | "name": "Dimmer",
43 | "channels": [
44 | "Dimmer"
45 | ]
46 | }
47 | ]
48 | }
49 |
--------------------------------------------------------------------------------
/public/fixtures/showtec/atmos-2000.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Atmos 2000",
4 | "shortName": "ShowtecAtm2000",
5 | "categories": ["Smoke"],
6 | "meta": {
7 | "authors": ["Felix Edelmann"],
8 | "createDate": "2018-11-27",
9 | "lastModifyDate": "2018-11-27"
10 | },
11 | "comment": "Ordercode 60873",
12 | "links": {
13 | "manual": [
14 | "https://www.highlite.com/media/attachments/MANUAL/60873_MANUAL_GB_V1.pdf"
15 | ],
16 | "video": [
17 | "https://www.youtube.com/watch?v=0WMvc7GCGFQ"
18 | ]
19 | },
20 | "physical": {
21 | "dimensions": [320, 320, 500],
22 | "weight": 7.04,
23 | "power": 2000,
24 | "DMXconnector": "3-pin"
25 | },
26 | "availableChannels": {
27 | "Fog": {
28 | "defaultValue": 0,
29 | "highlightValue": "100%",
30 | "capability": {
31 | "type": "Fog",
32 | "fogType": "Fog",
33 | "fogOutputStart": "0m^3/min",
34 | "fogOutputEnd": "1133m^3/min"
35 | }
36 | }
37 | },
38 | "modes": [
39 | {
40 | "name": "1-channel",
41 | "shortName": "1ch",
42 | "channels": [
43 | "Fog"
44 | ]
45 | }
46 | ]
47 | }
48 |
--------------------------------------------------------------------------------
/public/fixtures/soundlight/3204r-h.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "3204R-H",
4 | "shortName": "SoundLight3204R-H",
5 | "categories": ["Dimmer"],
6 | "meta": {
7 | "authors": ["LT-P"],
8 | "createDate": "2019-06-03",
9 | "lastModifyDate": "2019-06-03"
10 | },
11 | "comment": "DMX relay control. DMX connector is not XLR but a simple 3-pin wire connector.",
12 | "links": {
13 | "manual": [
14 | "https://www.soundlight.de/produkte/manuals/3204r-h/english/3204r-h%20rdm%20mk1%20e.pdf"
15 | ],
16 | "productPage": [
17 | "https://www.soundlight.de/produkte/3204r-h/index.htm"
18 | ]
19 | },
20 | "physical": {
21 | "dimensions": [86, 67, 90],
22 | "power": 3,
23 | "DMXconnector": "3-pin"
24 | },
25 | "availableChannels": {
26 | "Relay 1": {
27 | "capability": {
28 | "type": "Intensity"
29 | }
30 | },
31 | "Relay 2": {
32 | "capability": {
33 | "type": "Intensity"
34 | }
35 | },
36 | "Relay 3": {
37 | "capability": {
38 | "type": "Intensity"
39 | }
40 | },
41 | "Relay 4": {
42 | "capability": {
43 | "type": "Intensity"
44 | }
45 | }
46 | },
47 | "modes": [
48 | {
49 | "name": "Relay control",
50 | "channels": [
51 | "Relay 1",
52 | "Relay 2",
53 | "Relay 3",
54 | "Relay 4"
55 | ]
56 | }
57 | ]
58 | }
59 |
--------------------------------------------------------------------------------
/public/fixtures/stairville/af-250.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "AF-250",
4 | "categories": ["Smoke"],
5 | "meta": {
6 | "authors": ["Jan Dalheimer"],
7 | "createDate": "2019-09-09",
8 | "lastModifyDate": "2019-09-09"
9 | },
10 | "links": {
11 | "manual": [
12 | "https://images.static-thomann.de/pics/atg/atgdata/document/manual/340945_c_340945_v5_en_online.pdf"
13 | ],
14 | "productPage": [
15 | "https://www.thomann.de/gb/stairville_af_250_fog_machine_1300w_dmx.htm"
16 | ],
17 | "video": [
18 | "https://video1.thomann.de/vidiot/02591c1c/video_i3289p10_yd59vqpa.mp4"
19 | ]
20 | },
21 | "physical": {
22 | "dimensions": [310, 190, 430],
23 | "weight": 7.1,
24 | "power": 1300,
25 | "DMXconnector": "3-pin"
26 | },
27 | "availableChannels": {
28 | "Fog": {
29 | "precedence": "HTP",
30 | "capability": {
31 | "type": "Fog",
32 | "fogType": "Fog",
33 | "fogOutputStart": "0m^3/min",
34 | "fogOutputEnd": "180m^3/min"
35 | }
36 | }
37 | },
38 | "modes": [
39 | {
40 | "name": "1-channel",
41 | "shortName": "1ch",
42 | "channels": [
43 | "Fog"
44 | ]
45 | }
46 | ]
47 | }
48 |
--------------------------------------------------------------------------------
/public/fixtures/stairville/afh-600.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "AFH-600",
4 | "shortName": "StairvilleAFH600",
5 | "categories": ["Hazer"],
6 | "meta": {
7 | "authors": ["LordVonAdel"],
8 | "createDate": "2019-08-26",
9 | "lastModifyDate": "2019-08-26"
10 | },
11 | "links": {
12 | "manual": [
13 | "https://images.static-thomann.de/pics/atg/atgdata/document/manual/306309_c_306309_r4_en_online.pdf"
14 | ],
15 | "productPage": [
16 | "https://www.thomann.de/intl/stairville_afh_600_dmx_hazer.htm"
17 | ],
18 | "video": [
19 | "https://video1.thomann.de/vidiot/02591c1c/video_i4312p10_yd59vqpa.mp4",
20 | "https://video1.thomann.de/vidiot/02591c1c/video_i2169p10_yd59vqpa.mp4"
21 | ]
22 | },
23 | "physical": {
24 | "dimensions": [290, 265, 450],
25 | "weight": 5.5,
26 | "power": 1290,
27 | "DMXconnector": "3-pin"
28 | },
29 | "availableChannels": {
30 | "Haze": {
31 | "capability": {
32 | "type": "Fog",
33 | "fogType": "Haze",
34 | "fogOutputStart": "0m^3/min",
35 | "fogOutputEnd": "850m^3/min"
36 | }
37 | }
38 | },
39 | "modes": [
40 | {
41 | "name": "1-channel",
42 | "shortName": "1ch",
43 | "channels": [
44 | "Haze"
45 | ]
46 | }
47 | ]
48 | }
49 |
--------------------------------------------------------------------------------
/public/fixtures/stairville/mh-x30.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture-redirect.json",
3 | "name": "MH-x30",
4 | "redirectTo": "stairville/mh-x30-led-spot",
5 | "reason": "FixtureRenamed"
6 | }
7 |
--------------------------------------------------------------------------------
/public/fixtures/ultratec/radiance-hazer.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "Radiance Hazer",
4 | "shortName": "radiance-hazer",
5 | "categories": ["Hazer"],
6 | "meta": {
7 | "authors": ["Ken Harris"],
8 | "createDate": "2022-02-26",
9 | "lastModifyDate": "2022-02-26"
10 | },
11 | "links": {
12 | "manual": [
13 | "https://ultratecfx.com/docs/default-source/downloads-radiance-hazer/radiance-haze-manual-2020.pdf?sfvrsn=2"
14 | ],
15 | "productPage": [
16 | "https://ultratecfx.com/Products/haze/radiance-hazer"
17 | ],
18 | "video": [
19 | "https://www.youtube.com/watch?v=yOKOLkTNOuw"
20 | ]
21 | },
22 | "physical": {
23 | "dimensions": [279, 180, 419],
24 | "weight": 13,
25 | "power": 500,
26 | "DMXconnector": "5-pin"
27 | },
28 | "availableChannels": {
29 | "Haze": {
30 | "capability": {
31 | "type": "Fog",
32 | "fogType": "Haze",
33 | "fogOutputStart": "0%",
34 | "fogOutputEnd": "100%"
35 | }
36 | },
37 | "Fan": {
38 | "capability": {
39 | "type": "Rotation",
40 | "speedStart": "slow CW",
41 | "speedEnd": "fast CW"
42 | }
43 | }
44 | },
45 | "modes": [
46 | {
47 | "name": "2-channel",
48 | "shortName": "2ch",
49 | "channels": [
50 | "Haze",
51 | "Fan"
52 | ]
53 | }
54 | ]
55 | }
56 |
--------------------------------------------------------------------------------
/public/fixtures/update_fixturelist.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This module should be used in order to regenerate fixture list
3 | * When it has been modified (Add/remove fixture and/or manufacturer)
4 | *
5 | */
6 |
7 | import fs from 'fs';
8 |
9 | /**
10 | * Fetch manufacturer list
11 | *
12 | * @function getManufacturers
13 | * @async
14 | * @return {*}
15 | */
16 | async function getManufacturers() {
17 | const files = await fs.promises.readdir(__dirname);
18 | return files.flatMap((file) => (fs.statSync(`${__dirname}/${file}`).isDirectory() ? {
19 | name: file,
20 | fixtures: [],
21 | } : []));
22 | }
23 |
24 | /**
25 | * Fetch manufacturer fixtures
26 | *
27 | * @function getManufacturers
28 | * @async
29 | * @param {String} manufacturer manufacturer unique name string
30 | */
31 | async function getManufacturerFixtures(manufacturer) {
32 | const files = await fs.promises.readdir(`${__dirname}/${manufacturer.name}`);
33 | manufacturer.fixtures = files || [];
34 | }
35 |
36 | /**
37 | * Create fixture list
38 | *
39 | * @function getFixtureList
40 | * @async
41 | * @param {String} manufacturer manufacturer unique name string
42 | */
43 | async function getFixtureList() {
44 | try {
45 | const manufacturers = await getManufacturers();
46 | await Promise.all(
47 | manufacturers.map(
48 | async (manufacturer) => getManufacturerFixtures(manufacturer),
49 | ),
50 | );
51 | await fs.promises.writeFile(`${__dirname}/fixture_list.json`, JSON.stringify(manufacturers), 'utf8');
52 | } catch (err) {
53 | process.stderr(err);
54 | }
55 | }
56 |
57 | getFixtureList();
58 |
--------------------------------------------------------------------------------
/public/fixtures/varytec/led-theater-spot-100.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/master/schemas/fixture.json",
3 | "name": "LED Theater Spot 100",
4 | "shortName": "VarytecThSpot100",
5 | "categories": ["Dimmer"],
6 | "meta": {
7 | "authors": ["benni"],
8 | "createDate": "2019-03-16",
9 | "lastModifyDate": "2019-03-16"
10 | },
11 | "links": {
12 | "manual": [
13 | "https://images.static-thomann.de/pics/atg/atgdata/document/manual/414220_c_414220_427226_r5_en_online.pdf"
14 | ],
15 | "productPage": [
16 | "https://www.thomann.de/intl/varytec_led_theater_spot_100_3000k.htm"
17 | ],
18 | "video": [
19 | "https://www.thomann.de/gb/thomanntv_video_varytec_led_theater_spot_100_3000k_5959.html"
20 | ]
21 | },
22 | "physical": {
23 | "dimensions": [160, 185, 260],
24 | "weight": 5,
25 | "power": 115,
26 | "DMXconnector": "3-pin",
27 | "bulb": {
28 | "type": "100W COB LED",
29 | "colorTemperature": 3000
30 | },
31 | "lens": {
32 | "degreesMinMax": [15, 45]
33 | }
34 | },
35 | "availableChannels": {
36 | "Dimmer": {
37 | "capability": {
38 | "type": "Intensity"
39 | }
40 | },
41 | "Strobe": {
42 | "capability": {
43 | "type": "ShutterStrobe",
44 | "shutterEffect": "Strobe",
45 | "speedStart": "slow",
46 | "speedEnd": "fast",
47 | "helpWanted": "At which DMX value is strobe disabled? When is the lamp constantly on/off?"
48 | }
49 | }
50 | },
51 | "modes": [
52 | {
53 | "name": "1-channel",
54 | "shortName": "1ch",
55 | "channels": [
56 | "Dimmer"
57 | ]
58 | },
59 | {
60 | "name": "2-channel",
61 | "shortName": "2ch",
62 | "channels": [
63 | "Dimmer",
64 | "Strobe"
65 | ]
66 | }
67 | ]
68 | }
69 |
--------------------------------------------------------------------------------
/public/images/Folder2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/public/images/arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
56 |
57 |
--------------------------------------------------------------------------------
/public/images/arrow_down.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/public/images/arrow_up.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/public/images/asls-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/images/asls-logo.png
--------------------------------------------------------------------------------
/public/images/asls.icon.black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/images/asls.icon.black.png
--------------------------------------------------------------------------------
/public/images/asls.icon.white.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/images/asls.icon.white.ico
--------------------------------------------------------------------------------
/public/images/asls.logo.black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/images/asls.logo.black.png
--------------------------------------------------------------------------------
/public/images/cuepool_idle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/public/images/diane-picchiottino-m1ONIaOCmSs-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/images/diane-picchiottino-m1ONIaOCmSs-unsplash.jpg
--------------------------------------------------------------------------------
/public/images/list_add_button.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/public/images/spline.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/public/images/studio_standalone_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/images/studio_standalone_logo.png
--------------------------------------------------------------------------------
/public/visualizer/models/model_list.json:
--------------------------------------------------------------------------------
1 | {
2 | "visualizer": {
3 | "models": {
4 | "scenography": {
5 | "beam": "moving_head_lowpoly.glb"
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/public/visualizer/models/scenography/moving_head_lowpoly.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/visualizer/models/scenography/moving_head_lowpoly.glb
--------------------------------------------------------------------------------
/public/visualizer/textures/environment/checkerboard_default.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/public/visualizer/textures/environment/checkerboard_default.jpg
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
21 |
22 |
28 |
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-Black.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-Light.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-LightItalic.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf
--------------------------------------------------------------------------------
/src/assets/images/noise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/assets/images/noise.png
--------------------------------------------------------------------------------
/src/assets/styles/fonts.css:
--------------------------------------------------------------------------------
1 | @font-face{
2 | font-family: 'Roboto-Regular';
3 | src: url(../fonts/Roboto/Roboto-Regular.ttf);
4 | }
5 | @font-face{
6 | font-family: 'Roboto-Medium';
7 | src: url(../fonts/Roboto/Roboto-Medium.ttf);
8 | }
9 | @font-face{
10 | font-family: 'Roboto-Bold';
11 | src: url(../fonts/Roboto/Roboto-Bold.ttf);
12 | }
--------------------------------------------------------------------------------
/src/assets/styles/fonts.scss:
--------------------------------------------------------------------------------
1 | @font-face{
2 | font-family: 'Roboto-Regular';
3 | src: url(../fonts/Roboto/Roboto-Regular.ttf);
4 | }
5 | @font-face{
6 | font-family: 'Roboto-Medium';
7 | src: url(../fonts/Roboto/Roboto-Medium.ttf);
8 | }
9 | @font-face{
10 | font-family: 'Roboto-Bold';
11 | src: url(../fonts/Roboto/Roboto-Bold.ttf);
12 | }
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp, reactive } from 'vue';
2 | import axios from 'axios';
3 | import uikit from '@/views/components/uikit';
4 | import utils from '@/views/utils';
5 | import EventBus from '@/plugins/eventbus';
6 | import '@/assets/styles/global.css';
7 | import '@/assets/styles/fonts.css';
8 | import ShowSingleton from '@/singletons/show.singleton';
9 | import router from './plugins/router';
10 | import App from './App.vue';
11 |
12 | function registerComponents(components, app) {
13 | Object.keys(components).forEach((componentKey) => {
14 | const component = components[componentKey];
15 | if (component.name) {
16 | app.component(component.name, component);
17 | } else {
18 | registerComponents(component, app);
19 | }
20 | });
21 | }
22 |
23 | try {
24 | const app = createApp(App);
25 | registerComponents(uikit, app);
26 | app.config.globalProperties.$show = reactive(ShowSingleton);
27 | app.config.globalProperties.$http = axios;
28 | app.config.globalProperties.$utils = reactive(utils);
29 | app.config.errorHandler = (err) => {
30 | console.log(err);
31 | EventBus.emit('app_error', err);
32 | };
33 | app.use(router);
34 | app.mount('#app');
35 | } catch (err) {
36 | console.log(err);
37 | }
38 |
--------------------------------------------------------------------------------
/src/models/DMX/master.model.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @class Master
3 | * @classdesc Show master model definition. Master holds a reference to
4 | * each individual show group. Master features include grouped chase triggering,
5 | * Global group master output definition and much more.
6 | * Could extend event emitter but callback function for end should work just fine.
7 | */
8 | class Master {
9 | /**
10 | * Creates an instance of Master.
11 | * @param {Object} groupPoolHandle handle to group pool instance to be mastered.
12 | * @todo This was rushed, it would make more sense to manage group definition though
13 | * a master instance that would be property of Show.
14 | */
15 | constructor(groupPoolHandle) {
16 | this.groupPool = groupPoolHandle;
17 | this.playingRow = -1;
18 | this.onEnd = () => {};
19 | }
20 |
21 | cueRow(rowIndex) {
22 | let chaseCount = 0;
23 | const state = rowIndex !== this.playingRow;
24 | this.groupPool.groups.forEach((group) => {
25 | group.chasePool.chases.forEach((chase) => {
26 | chase.cue(false);
27 | chase.onEnd = () => {};
28 | // chaseCount++;
29 | });
30 | try {
31 | const chase = group.chasePool.getFromId(rowIndex);
32 | chaseCount++;
33 | chase.cue(state);
34 | chase.onEnd = () => {
35 | chaseCount--;
36 | if (chaseCount === 0) {
37 | this.onEnd();
38 | }
39 | };
40 | // eslint-disable-next-line
41 | }catch(err){}
42 | });
43 | this.playingRow = (state && chaseCount) ? rowIndex : -1;
44 | return this.playingRow;
45 | }
46 | }
47 |
48 | export default Master;
49 |
--------------------------------------------------------------------------------
/src/models/DMX/modifier.model.js:
--------------------------------------------------------------------------------
1 | const MODIFIER_STATES = {
2 | DISABLED: true,
3 | ENABLED: false,
4 | };
5 |
6 | /**
7 | * @todo remove this file
8 | *
9 | * @class Modifier
10 | */
11 | class Modifier {
12 | constructor(type) {
13 | this.type = type;
14 | this._value = 0;
15 | this.state = MODIFIER_STATES.DISABLED;
16 | this.modifiedInstances = [];
17 | }
18 |
19 | add(fixture, channelIndex) {
20 | this.modifiedInstances.push({
21 | fixture,
22 | channelId: channelIndex,
23 | });
24 | }
25 |
26 | set value(value) {
27 | this._value = value;
28 | this.modifiedInstances.forEach((instance) => {
29 | instance.fixture.setChannel(instance.channelId, this.value);
30 | });
31 | }
32 |
33 | get value() {
34 | return this._value;
35 | }
36 |
37 | get state() {
38 | return this._state;
39 | }
40 |
41 | set state(state) {
42 | this._state = state;
43 | }
44 | }
45 |
46 | export default Modifier;
47 |
--------------------------------------------------------------------------------
/src/plugins/eventbus.js:
--------------------------------------------------------------------------------
1 | import mitt from 'mitt';
2 |
3 | export default mitt();
4 |
--------------------------------------------------------------------------------
/src/plugins/visualizer/scene_manager.js:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three';
2 |
3 | /**
4 | * @class
5 | * @classdesc Singleton extension of THREE.Scene class
6 | * @extends THREE.Scene
7 | */
8 | class SceneManager extends THREE.Scene {
9 | constructor() {
10 | // eslint-disable-next-line no-use-before-define
11 | if (!instance) {
12 | super();
13 | this.background = new THREE.Color('#0C0D0A');
14 | // this.background.convertLinearToSRGB();
15 | // eslint-disable-next-line no-use-before-define
16 | instance = this;
17 | }
18 | // eslint-disable-next-line no-use-before-define
19 | return instance;
20 | }
21 | }
22 |
23 | // eslint-disable-next-line vars-on-top, no-var, import/no-mutable-exports
24 | var instance = new SceneManager();
25 | export default instance;
26 |
--------------------------------------------------------------------------------
/src/singletons/show.singleton.js:
--------------------------------------------------------------------------------
1 | import Show from '@/models/DMX/show.model';
2 |
3 | /**
4 | * @class ShowSingleton
5 | * @extends {Show}
6 | * @classdesc Singleton instance of Show to be used throughout the project
7 | */
8 | class ShowSingleton extends Show {
9 | constructor() {
10 | // eslint-disable-next-line no-use-before-define
11 | if (!showSingletonInstance) {
12 | super();
13 | // eslint-disable-next-line no-use-before-define
14 | showSingletonInstance = this;
15 | }
16 | // eslint-disable-next-line no-use-before-define
17 | return showSingletonInstance;
18 | }
19 | }
20 |
21 | // eslint-disable-next-line vars-on-top, no-var, import/no-mutable-exports
22 | var showSingletonInstance = new ShowSingleton();
23 | export default showSingletonInstance;
24 |
--------------------------------------------------------------------------------
/src/views/activities/app/_popups/popup.error.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
16 |
17 | {{ error.name || 'Unknow Error' }}:
18 |
19 |
20 | {{ error.message }}
21 |
22 |
23 |
24 |
25 |
26 |
55 |
56 |
71 |
--------------------------------------------------------------------------------
/src/views/activities/app/fragments/modifiers/group/_widgets/group.modifier.widget.settings.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
12 |
18 |
19 |
20 |
21 |
22 |
67 |
68 |
75 |
--------------------------------------------------------------------------------
/src/views/activities/app/fragments/modifiers/modifier.fragment.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
33 |
34 |
52 |
--------------------------------------------------------------------------------
/src/views/activities/app/fragments/toolbar/_popups/popup.license.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
{{ licenceTXT }}
13 |
14 |
15 |
16 |
17 |
44 |
45 |
56 |
--------------------------------------------------------------------------------
/src/views/activities/app/fragments/toolbar/_popups/popup.saveas.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
56 |
57 |
65 |
--------------------------------------------------------------------------------
/src/views/activities/visualizer/visualizer.activity.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
22 |
--------------------------------------------------------------------------------
/src/views/components/uikit/buttons/index.js:
--------------------------------------------------------------------------------
1 | import button from './uikit.button.vue';
2 |
3 | export default { button };
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/colors/uikit.colors.js:
--------------------------------------------------------------------------------
1 | const documentStyle = getComputedStyle(document.documentElement);
2 | /*
3 | * Full color palette
4 | */
5 | export default {
6 | Maroon: documentStyle.getPropertyValue('--accent-maroon'),
7 | Pink: documentStyle.getPropertyValue('--accent-pink'),
8 | Violet: documentStyle.getPropertyValue('--accent-violet'),
9 | Purple: documentStyle.getPropertyValue('--accent-purple'),
10 | DarkPurple: documentStyle.getPropertyValue('--accent-dark-purple'),
11 | Blue: documentStyle.getPropertyValue('--accent-blue'),
12 | LightBlue: documentStyle.getPropertyValue('--accent-light-blue'),
13 | Teal: documentStyle.getPropertyValue('--accent-teal'),
14 | SeaGreen: documentStyle.getPropertyValue('--accent-sea-green'),
15 | Green: documentStyle.getPropertyValue('--accent-green'),
16 | LightGreen: documentStyle.getPropertyValue('--accent-light-green'),
17 | Gold: documentStyle.getPropertyValue('--accent-gold'),
18 | Orange: documentStyle.getPropertyValue('--accent-orange'),
19 | Red: documentStyle.getPropertyValue('--accent-red'),
20 | };
21 |
--------------------------------------------------------------------------------
/src/views/components/uikit/containers/index.js:
--------------------------------------------------------------------------------
1 | import flexContainer from './uikit.container.flex.vue';
2 | import spacer from './uikit.spacer.vue';
3 |
4 | export default { flexContainer, spacer };
5 |
--------------------------------------------------------------------------------
/src/views/components/uikit/containers/uikit.spacer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
20 |
--------------------------------------------------------------------------------
/src/views/components/uikit/cues/index.js:
--------------------------------------------------------------------------------
1 | import cue from './uikit.cue.vue';
2 | import cueContainer from './uikit.cue.container.vue';
3 |
4 | export default { cue, cueContainer };
5 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/Folder2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/add.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
56 |
57 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/arrow_down.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/arrow_up.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/blue.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/check.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/circle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/colorintensity.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/colorintensityblue.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/colorintensitygreen.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/colorintensityred.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/colorintensitywhite.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/colorwheel.svg:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/connection.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/connections.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/contact.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/control.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/cross.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/cuepool_idle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/dimmer.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/disabled.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/effect.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/export.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/fine.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
25 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/fixture.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/focus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/fog.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/fold.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/goborotation.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/gobowheel.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/green.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/grid.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/help.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/hide.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
6 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/key.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/library.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
13 |
16 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/line.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/list_add_button.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/maintenance.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/move.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/movinghead.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/new.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/newfile.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/opensource.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/pan.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/play.svg:
--------------------------------------------------------------------------------
1 | ionicons-v5-c
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/popout.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/prism.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/prisminsertion.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/prismrotation.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/red.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/redo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/save.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
11 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/shutter.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
8 |
10 |
11 |
13 |
14 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/spline.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/stop.svg:
--------------------------------------------------------------------------------
1 |
2 | ionicons-v5-c
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/tick.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/trash.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/undef.svg:
--------------------------------------------------------------------------------
1 | undefined--filled
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/undo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/universe.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/visualizer.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/waveform.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/wrench.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/images/zoom.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/index.js:
--------------------------------------------------------------------------------
1 | import icon from './uikit.icon.vue';
2 |
3 | export default { icon };
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/icons/uikit.icon.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
56 |
57 |
64 |
--------------------------------------------------------------------------------
/src/views/components/uikit/index.js:
--------------------------------------------------------------------------------
1 | import buttons from './buttons';
2 | import inputs from './inputs';
3 | import lists from './lists';
4 | import widgets from './widgets';
5 | import popups from './popups';
6 | import menus from './menus';
7 | import icons from './icons';
8 | import cues from './cues';
9 | import containers from './containers';
10 |
11 | export default {
12 | buttons, inputs, lists, widgets, popups, menus, icons, cues, containers,
13 | };
14 |
--------------------------------------------------------------------------------
/src/views/components/uikit/inputs/checkbox/index.js:
--------------------------------------------------------------------------------
1 | import checkbox from './uikit.input.checkbox.vue';
2 |
3 | export default (checkbox);
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/inputs/index.js:
--------------------------------------------------------------------------------
1 | import checkbox from './checkbox';
2 | import ranges from './range';
3 | import select from './select';
4 | import textboxes from './textbox';
5 |
6 | export default {
7 | checkbox, ranges, select, textboxes,
8 | };
9 |
--------------------------------------------------------------------------------
/src/views/components/uikit/inputs/range/index.js:
--------------------------------------------------------------------------------
1 | import fader from './uikit.input.range.fader.vue';
2 | import gauge from './uikit.input.range.gauge.vue';
3 | import knob from './uikit.input.range.knob.vue';
4 | import vumeter from './uikit.input.range.vumeter.vue';
5 |
6 | export default {
7 | fader, gauge, knob, vumeter,
8 | };
9 |
--------------------------------------------------------------------------------
/src/views/components/uikit/inputs/range/uikit.input.range.vumeter.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
38 |
39 |
58 |
--------------------------------------------------------------------------------
/src/views/components/uikit/inputs/select/index.js:
--------------------------------------------------------------------------------
1 | import select from './uikit.input.select.vue';
2 |
3 | export default { select };
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/inputs/textbox/index.js:
--------------------------------------------------------------------------------
1 | import numeral from './uikit.input.textbox.num.vue';
2 | import textual from './uikit.input.textbox.str.vue';
3 |
4 | export default { numeral, textual };
5 |
--------------------------------------------------------------------------------
/src/views/components/uikit/lists/index.js:
--------------------------------------------------------------------------------
1 | import list from './uikit.list.vue';
2 | import listItem from './uikit.list.item.vue';
3 |
4 | export default { list, listItem };
5 |
--------------------------------------------------------------------------------
/src/views/components/uikit/loaders/index.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ASLS-org/studio/94896117968776897985ed7dc951882de216aeaa/src/views/components/uikit/loaders/index.js
--------------------------------------------------------------------------------
/src/views/components/uikit/loaders/uikit.loader.bar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
24 |
25 |
32 |
--------------------------------------------------------------------------------
/src/views/components/uikit/menus/index.js:
--------------------------------------------------------------------------------
1 | import menu from './uikit.menu.vue';
2 |
3 | export default { menu };
4 |
--------------------------------------------------------------------------------
/src/views/components/uikit/popups/index.js:
--------------------------------------------------------------------------------
1 | import popup from './uikit.popup.vue';
2 |
3 | export default {
4 | popup,
5 | };
6 |
--------------------------------------------------------------------------------
/src/views/components/uikit/widgets/index.js:
--------------------------------------------------------------------------------
1 | import widget from './uikit.widget.vue';
2 |
3 | export default { widget };
4 |
--------------------------------------------------------------------------------
/src/views/mixins/color.mixin.js:
--------------------------------------------------------------------------------
1 | import ukColors from '@/views/components/uikit/colors/uikit.colors';
2 |
3 | export default {
4 | methods: {
5 | /**
6 | * Returns uikit color at given index.
7 | *
8 | * @param {Number} colorIndex index of the color
9 | * @returns {String} color string at provided color index
10 | */
11 | getColorFromIndex(colorIndex) {
12 | return ukColors[Object.keys(ukColors)[colorIndex % Object.keys(ukColors).length]];
13 | },
14 | /**
15 | * Returns uikit index for a given color string.
16 | *
17 | * @param {String} colorcolor string
18 | * @returns {String} uikit color index of provided color string
19 | */
20 | getIndexFromColor(color = 'color') {
21 | return Object.keys(ukColors).findIndex(
22 | (colorString) => ukColors[colorString] === color,
23 | );
24 | },
25 | /**
26 | * Returns uiit colors as an array of color strings
27 | *
28 | * @returns {Array} Array of uikit color strings
29 | */
30 | getColors() {
31 | return Object.keys(ukColors).map((colorKey) => ukColors[colorKey]);
32 | },
33 | },
34 | computed: {
35 | /**
36 | * Returns an array of HTML-formated strings s to be fed into uikit select inputs
37 | *
38 | * @returns {Array} An array of HTML-formated strings
39 | */
40 | colorOptions() {
41 | return Object.keys(ukColors).map((colorName) => `
42 |
43 | ${colorName}
44 | `);
45 | },
46 | },
47 | };
48 |
--------------------------------------------------------------------------------
/src/views/mixins/popup.mixin.js:
--------------------------------------------------------------------------------
1 | export default {
2 | emits: ['update:modelValue', 'submit', 'close', 'input'],
3 | props: {
4 | /**
5 | * Popup display state
6 | */
7 | modelValue: Boolean,
8 | },
9 | data() {
10 | return {
11 | state: this.modelValue,
12 | };
13 | },
14 | methods: {
15 | /**
16 | * Update popup display state
17 | */
18 | update() {
19 | this.$emit('update:modelValue', this.state);
20 | this.$emit('input', this.state);
21 | },
22 | /**
23 | * Close popup
24 | */
25 | close() {
26 | this.state = false;
27 | this.update();
28 | },
29 | },
30 | watch: {
31 | modelValue(state) {
32 | this.state = state;
33 | },
34 | },
35 | };
36 |
--------------------------------------------------------------------------------
/src/views/utils/index.js:
--------------------------------------------------------------------------------
1 | import setCapture from './setcapture.utils';
2 |
3 | export default {
4 | setCapture,
5 | };
6 |
--------------------------------------------------------------------------------
/src/views/utils/setcapture.utils.js:
--------------------------------------------------------------------------------
1 | const transparentOverlay = document.createElement('div');
2 | Object.assign(transparentOverlay.style, {
3 | position: 'fixed',
4 | height: '100vh',
5 | width: '100vw',
6 | background: 'transparent',
7 | cursor: 'pointer',
8 | display: 'none',
9 | });
10 | document.body.appendChild(transparentOverlay);
11 |
12 | let TOHandle = null;
13 |
14 | function releaseCapture() {
15 | transparentOverlay.style.display = 'none';
16 | transparentOverlay.removeEventListener('mouseup', releaseCapture);
17 | }
18 |
19 | export default function setCapture(el, cursorStyle = 'unset') {
20 | transparentOverlay.addEventListener('mouseup', releaseCapture);
21 | if (TOHandle) {
22 | clearTimeout(TOHandle);
23 | TOHandle = null;
24 | } else if (el && el instanceof HTMLElement) {
25 | transparentOverlay.style.cursor = cursorStyle;
26 | transparentOverlay.style.display = 'block';
27 | clearTimeout(TOHandle);
28 | TOHandle = null;
29 | } else {
30 | throw new Error({
31 | message: `Expecting instance of HTMLELement. got ${el}`,
32 | });
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/worker-api.js:
--------------------------------------------------------------------------------
1 | import Worker from './worker?worker';
2 |
3 | const worker = new Worker();
4 | export default worker;
5 |
--------------------------------------------------------------------------------
/src/worker.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | const WW_MSG_TYPES = {
3 | COMPUTE_FX: 'compute-fx',
4 | };
5 |
6 | const FX_CHANNEL_WAVEFORMS = {
7 | SINE: 0,
8 | TRIANGLE: 1,
9 | SQUARE: 2,
10 | PWM: 3,
11 | };
12 |
13 | function update() {
14 | self.postMessage('');
15 | setTimeout(update, 1000 / 60);
16 | }
17 |
18 | function genSine(t, phaseOffset = 0, average, frequency, phaseRad, amplitude) {
19 | return average + amplitude * Math.sin(2 * Math.PI * frequency * t + phaseRad + phaseOffset);
20 | }
21 |
22 | function genTriangle(t, phaseOffset = 0, average, frequency, phaseRad, amplitude) {
23 | return average + (2 * amplitude / Math.PI) * Math.asin(Math.sin(2 * Math.PI * frequency * t + phaseRad + phaseOffset));
24 | }
25 |
26 | function getFXValue(t, phaseOffset, waveform, average, min, max, frequency, phaseRad, amplitude) {
27 | switch (waveform) {
28 | case FX_CHANNEL_WAVEFORMS.SINE:
29 | return genSine(t, phaseOffset, average, frequency, phaseRad, amplitude);
30 | case FX_CHANNEL_WAVEFORMS.TRIANGLE:
31 | return genTriangle(t, phaseOffset, average, frequency, phaseRad, amplitude);
32 | case FX_CHANNEL_WAVEFORMS.SQUARE:
33 | return genSine(t, phaseOffset, average, min, max, frequency, phaseRad, amplitude) >= average ? max : min;
34 | default:
35 | return 1;
36 | }
37 | }
38 |
39 | self.addEventListener('message', (e) => {
40 | const parsedData = JSON.parse(e.data);
41 | switch (parsedData.msg) {
42 | case WW_MSG_TYPES.COMPUTE_FX:
43 | self.postMessage(getFXValue(...parsedData.data));
44 | break;
45 | }
46 | });
47 |
48 | update();
49 | /* eslint-enable */
50 |
--------------------------------------------------------------------------------
/vite.config.mjs:
--------------------------------------------------------------------------------
1 | /* eslint-disable import/no-extraneous-dependencies */
2 | import { defineConfig } from 'vite';
3 | import vue from '@vitejs/plugin-vue';
4 | import svgLoader from 'vite-svg-loader';
5 | import { fileURLToPath } from 'url';
6 | import path from 'path';
7 | import util from 'util';
8 | import { exec } from 'child_process';
9 |
10 | // const util = require('util');
11 | const asyncExec = util.promisify(exec);
12 |
13 | async function prepareVersioningEnv() {
14 | try {
15 | const execData = await asyncExec('git describe --tags --abbrev=0');
16 | process.env.VITE_APP_VERSION = execData.stdout;
17 | } catch (err) {
18 | process.env.VITE_APP_VERSION = '';
19 | }
20 |
21 | try {
22 | const execData = await asyncExec(`git log -1 --format=%ai ${process.env.VITE_APP_VERSION}`);
23 | process.env.VITE_APP_BUILD_DATE = execData.stdout;
24 | } catch (err) {
25 | process.env.VITE_APP_BUILD_DATE = '';
26 | }
27 |
28 | try {
29 | const execData = await asyncExec('git rev-parse --abbrev-ref HEAD');
30 | process.env.VITE_APP_BRANCH = execData.stdout;
31 | } catch (err) {
32 | process.env.VITE_APP_BRANCH = '';
33 | }
34 | }
35 |
36 | const filename = fileURLToPath(import.meta.url);
37 | const pathSegments = path.dirname(filename);
38 |
39 | export default defineConfig(async () => {
40 | try {
41 | await prepareVersioningEnv();
42 | return {
43 | plugins: [vue(), svgLoader()],
44 | resolve: {
45 | alias: {
46 | '@': path.resolve(pathSegments, './src'),
47 | '@root': path.resolve(pathSegments, './'),
48 | },
49 | extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
50 | },
51 | };
52 | } catch (err) {
53 | return err;
54 | }
55 | });
56 |
--------------------------------------------------------------------------------