diff --git a/Readme.md b/Readme.md
index 6be50d2..7490924 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,42 +1,54 @@
-## Various mpv lua scripts
-
-- visualizer.lua - various audio visualization.
+## Waveform Monitor LUA Script for MPV
+- VideoTek.lua is a waveform monitor for MPV.
+- visualizer.lua is a script that shows various audio visualization for MPV.
- firequalizer.lua - linear phase 15-bands equalizer.
## Key bindings
-Look at the lua scripts.
+Both filters are disabled by default.
+
+Press "Y" to turn on "VideoTek" and have a waveform monitor for luma, chroma, phase and loudness.
+
+Press "C" to turn on "Visualizer" and switch between showcqt, avectorscope, showspectrum, showcqtbar and showwaves.
+
+
+## Screenshots
+
+### VideoTek.lua
+
+![VideoTek](Screenshots/VideoTek.jpg)
-## Screenshoots
### visualizer.lua
- showcqt
-![showcqt](screenshoots/showcqt.jpg)
+![showcqt](Screenshots/showcqt.jpg)
- avectorscope
-![avectorscope](screenshoots/avectorscope.jpg)
+![avectorscope](Screenshots/avectorscope.jpg)
- showspectrum
-![showspectrum](screenshoots/showspectrum.jpg)
+![showspectrum](Screenshots/showspectrum.jpg)
- showcqtbar
-![showcqtbar](screenshoots/showcqtbar.jpg)
+![showcqtbar](Screenshots/showcqtbar.jpg)
- showwaves
-![showwaves](screenshoots/showwaves.jpg)
+![showwaves](Screenshots/showwaves.jpg)
### firequalizer15.lua
-
-![firequalizer15](screenshoots/firequalizer15.jpg)
+![firequalizer15](Screenshots/firequalizer15.jpg)
## Related projects
-
- [HTML5 ShowCQTBar](https://github.com/mfcc64/html5-showcqtbar) - showcqt/showcqtbar visualizer on an HTML5 page.
- [YouTube Musical Spectrum](https://github.com/mfcc64/youtube-musical-spectrum) - showcqt visualizer as a Chrome extension.
+
+### Contributors
+- mfcc64 for the audio visualizers.
+- Livio Aloja & Francesco Bucciantini for VideoTek.
diff --git a/Screenshots/VideoTek.jpg b/Screenshots/VideoTek.jpg
new file mode 100644
index 0000000..160b4d0
Binary files /dev/null and b/Screenshots/VideoTek.jpg differ
diff --git a/screenshoots/avectorscope.jpg b/Screenshots/avectorscope.jpg
similarity index 100%
rename from screenshoots/avectorscope.jpg
rename to Screenshots/avectorscope.jpg
diff --git a/screenshoots/firequalizer15.jpg b/Screenshots/firequalizer15.jpg
similarity index 100%
rename from screenshoots/firequalizer15.jpg
rename to Screenshots/firequalizer15.jpg
diff --git a/screenshoots/showcqt.jpg b/Screenshots/showcqt.jpg
similarity index 100%
rename from screenshoots/showcqt.jpg
rename to Screenshots/showcqt.jpg
diff --git a/screenshoots/showcqtbar.jpg b/Screenshots/showcqtbar.jpg
similarity index 100%
rename from screenshoots/showcqtbar.jpg
rename to Screenshots/showcqtbar.jpg
diff --git a/screenshoots/showspectrum.jpg b/Screenshots/showspectrum.jpg
similarity index 100%
rename from screenshoots/showspectrum.jpg
rename to Screenshots/showspectrum.jpg
diff --git a/screenshoots/showwaves.jpg b/Screenshots/showwaves.jpg
similarity index 100%
rename from screenshoots/showwaves.jpg
rename to Screenshots/showwaves.jpg
diff --git a/VideoTek.lua b/VideoTek.lua
new file mode 100644
index 0000000..e0065f8
--- /dev/null
+++ b/VideoTek.lua
@@ -0,0 +1,139 @@
+-- various audio visualization
+
+
+
+local opts = {
+ mode = "force",
+ -- off disable visualization
+ -- force always enable visualization
+
+
+
+ name = "off",
+ -- off
+ -- tektronix
+
+
+
+ quality = "medium",
+ -- medium
+
+
+
+
+}
+
+
+
+-- key bindings
+-- cycle visualizer
+local cycle_key = "y"
+
+
+
+if not (mp.get_property("options/lavfi-complex", "") == "") then
+ return
+end
+
+
+
+local visualizer_name_list = {
+ "off",
+ "tektronix",
+}
+
+
+
+
+
+local options = require 'mp.options'
+local msg = require 'mp.msg'
+
+
+
+options.read_options(opts)
+
+local function get_visualizer(name)
+
+
+-- Here we define the Graph
+ if name == "tektronix" then
+ return "color=c=black:s=1280x720[black];[vid1]split=3[v1][v2][v3];[aid1]asplit[a1][a2];[a1]avectorscope=s=240x160:zoom=2:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7[avect-out];[a2]showvolume=r=25:w=140:h=10:t=0:f=0.9[vol-out];[v1]scale=640x360[v1-o];[v2]hflip,waveform=m=1:d=0:r=1:c=7,scale=640x360,setsar=1,hflip[v2-o];[v3]vectorscope=m=0:g=green,scale=300x300,setsar=1[vect];[black][v1-o]overlay=0:0[q1];[q1][vol-out]overlay=640:0[q2];[q2][v2-o]overlay=0:360[q3];[q3][avect-out]overlay=1000:490[q4];[q4][vect]overlay=700:390[q5];[q5] setpts=PTS [vo]"
+ elseif name == "off" then
+ return "[aid1] asetpts=PTS [ao]; [vid1] setpts=PTS [vo]"
+ end
+ msg.log("error", "invalid visualizer name")
+ return ""
+end
+
+
+
+local function select_visualizer(atrack, vtrack, albumart)
+ if opts.mode == "off" then
+ return ""
+ elseif opts.mode == "force" then
+ return get_visualizer(opts.name)
+
+
+
+ end
+
+
+
+ msg.log("error", "invalid mode")
+ return ""
+end
+
+
+
+local function visualizer_hook()
+ local count = mp.get_property_number("track-list/count", -1)
+ local atrack = 0
+ local vtrack = 0
+ local albumart = 0
+ if count <= 0 then
+ return
+ end
+ for tr = 0,count-1 do
+ if mp.get_property("track-list/" .. tr .. "/type") == "audio" then
+ atrack = atrack + 1
+ else
+ if mp.get_property("track-list/" .. tr .. "/type") == "video" then
+ if mp.get_property("track-list/" .. tr .. "/albumart") == "yes" then
+ albumart = albumart + 1
+ else
+ vtrack = vtrack + 1
+ end
+ end
+ end
+ end
+
+
+
+ mp.set_property("options/lavfi-complex", select_visualizer(atrack, vtrack, albumart))
+end
+
+
+
+mp.add_hook("on_preloaded", 50, visualizer_hook)
+
+
+
+local function cycle_visualizer()
+ local i, index = 1
+ for i = 1, #visualizer_name_list do
+ if (visualizer_name_list[i] == opts.name) then
+ index = i + 1
+ if index > #visualizer_name_list then
+ index = 1
+ end
+ break
+ end
+ end
+ opts.name = visualizer_name_list[index]
+ visualizer_hook()
+end
+
+
+
+mp.add_key_binding(cycle_key, "cycle-visualizer", cycle_visualizer)
diff --git a/visualizer.lua b/visualizer.lua
index 140fa5c..960dc02 100644
--- a/visualizer.lua
+++ b/visualizer.lua
@@ -7,7 +7,7 @@ local opts = {
-- novideo enable visualization when no video
-- force always enable visualization
- name = "showcqt",
+ name = "off",
-- off
-- showcqt
-- avectorscope