From 9067e94d1d41cb2a8394436d65633cf8593a6c88 Mon Sep 17 00:00:00 2001 From: James Elliott Date: Sun, 24 Nov 2019 18:36:34 -0600 Subject: [PATCH] Sneak resizable waveform windows into the release. This was quick enough I could accommodate Teo Tormo. ^_^ --- CHANGELOG.md | 4 +++ doc/modules/ROOT/pages/Players.adoc | 15 +++++++++ resources/images/Magnify-cursor.png | Bin 0 -> 1935 bytes src/beat_link_trigger/players.clj | 46 +++++++++++++++++++++++++++- 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 resources/images/Magnify-cursor.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 73c61070..e713fb21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,10 @@ Nothing so far. mixer by responding to its MIDI messages. - There is also an example Show that can take over the players and perform simple mixes when the DJ needs to take an urgent break. +- Clicking on the scrolling waveform detail in the Player Status + window now opens an independent, resizable window containing that + scrolling waveform, in case you want a larger view (for example to + use as an overlay in a live stream). - Expression editors have been greatly improved, with new features in the context menu, and a new menu bar: - They now allow you to load or insert files into the expression diff --git a/doc/modules/ROOT/pages/Players.adoc b/doc/modules/ROOT/pages/Players.adoc index 635ae89a..0204eab4 100644 --- a/doc/modules/ROOT/pages/Players.adoc +++ b/doc/modules/ROOT/pages/Players.adoc @@ -109,6 +109,21 @@ connected to, then you can use the "On-Air" indication above the player number as an additional hint about when you need to pay attention to it. +=== Larger Waveform Windows + +If you would like to display an even more detailed view of a track +waveform, for example because you are live streaming a performance and +want to overlay that on your video feed, you can open up a resizable +window containing just the scrolling waveform details. If you move the +mouse over the scrolling waveform in the Player Status window, the +cursor becomes a magnifying glass. Clicking on the waveform opens it +in a separate window that you can resize, position, and zoom +indepentently. Each player's waveform detail window will remember how +you have sized and positioned it so that the next time you open it you +will find it configured the same way. If the window is already open +when you click on the waveform in the Player Status window, it will +simply be brought to the front if it was hidden. + === Non-rekordbox Metadata The Player Status window is a lot less useful if non-rekordbox tracks diff --git a/resources/images/Magnify-cursor.png b/resources/images/Magnify-cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..8f50ffac72e0ba3c8119a5afb8b916d68c8eaba3 GIT binary patch literal 1935 zcmbVNO>7%Q6yB()3MoNBpa>x$mhGjWj`!F5Gpeav+i5J}G)gTJxRlwMS$h?GXW8Av zPLNQAIFJ)kZu}e(91uOh0rdbk4j|Dpmr8I2QME@v;jMp`v?L{}rS;CveDmJ-z4zwL z-s;Nb`MKxjBuScYF4x!Ky^ue%r{VvFdj|wwkH^cer;>E$>HL|IKKkTYNjm*g*xtxC zTCZX%`X$1I&r8F83}{KZaB&zDy2&%y=bbRBD1Y4iR*^$iQP#^XtrgdJH(cIL_|@H& zHr?H%9#by9B3~F{Fwo~2k%#?Wl;UAU8QH}!&ZkvH9zn9ric-xT${Vd!xh4`WmrFLH zy5-7_SJG`uGwt)Tq3NEgxvFj=O~;yz%Z@zxDc~((0bZ*wO?<&uMd@Z)j8%0o7?cKP zNhBRr_dKv+sD^<6fzq8QBSRFWXQvkGJf%q(XQ7DX+#>PCR#s7f=~zNPF3d*hBuo%6 zbx2}WFKM}?5s=XW7jGrKk#j~>-s629Whr3w0vmTlCep4r#&ofKp92VOt5x_ol1sl| zxJa|cHprL+X%p5YT@bH`wsZ&9D~>HfN) zTX`Mi`^QIu2?{p;rRQsm`I=4;_cRw-hGip<*$(m@)6_My%y|$@tzAh%IF+P#*lNy- zfko3WUCr|YWLiMT@|lKw+i($cnQaBG>39ywYkyQucsWcV(L0mVbd|p~8TCSWR6&@~ z{A5%VnwJD;%49k`A|5C5JlQ|!axnUkDj9oEMUV|h!mAyK-N{N(Jx)PNwja*lvMt>* z$_%;Ghse1mWPqC{qF%r_F)YnxbgKWq{2i>9u~nW{`6Kh61c-J?)Zx%@RprqYovcE~ zR0~DN9mW$WGN2{i-xVt(iT07L0A)liuX!ZH9xMSd>xTSamkxJkW zy7rZI5ALs^S+BO;AHLpiKKY$Cd+P6lD>v5{zrXcb_3n$x6MHkW)#uL*_TSL2e>%5+ zedGMkpa1&Qg4ZZHiytg}_{?X&&%Au&)OkjKahJ}#zw}K5zf!! shutdown-chan :done) (reset! player-window nil) (.removeDeviceAnnouncementListener device-finder dev-listener) - (.removeLifecycleListener virtual-cdj stop-listener))) + (.removeLifecycleListener virtual-cdj stop-listener) + (doseq [detail (vals @waveform-windows)] + (.dispose detail)))) (seesaw/listen root :component-moved (fn [e] (util/save-window-position root :player-status true))) (seesaw/pack! root) (.setResizable root @allow-ugly-resizing)