Foobar2000:Components/Waveform Seekbar (foo wave seekbar): Difference between revisions
(Minor edits for clarity. Also, file locations explained and updated, because they've changed, and I had trouble finding this info elsewhere.) |
mNo edit summary |
||
(13 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Foobar2000 Legacy Default UI components|Legacy Default UI components]] | |||
[[Category:Foobar2000 Legacy Columns UI components|Legacy Columns UI components]] | |||
{{Foobar Component Infobox | |||
| name = Waveform Seekbar | |||
| module_name = foo_wave_seekbar | |||
| developer = Lars Viklund | |||
| released = 2010-01-03 | |||
| stable_release = 0.2.45 | |||
| stable_release_date = 2014-02-08 | |||
| foobar2000_version = 1.1 | |||
| foobar2000_ui_module = Default UI; Columns UI | |||
| use = UI | |||
}} | |||
'''Waveform Seekbar''' is a UI element for both the Default UI and Columns UI that provides seekbar functionality (seeking, position indicator) on top of a pretty image of the waveform of the currently playing song, drawn using either Direct3D 9.0c or Direct2D 1.0. | '''Waveform Seekbar''' is a UI element for both the Default UI and Columns UI that provides seekbar functionality (seeking, position indicator) on top of a pretty image of the waveform of the currently playing song, drawn using either Direct3D 9.0c or Direct2D 1.0. | ||
The Direct3D 9.0c mode requires a Pixel Shader 2.0 capable graphics card, and has some hacks to support | The Direct3D 9.0c mode requires a Pixel Shader 2.0 capable graphics card, and has some hacks to support legacy cards like the Intel GMA 950 (the graphics chipset on a lot of laptops). The [[wikipedia:High Level Shader Language|HLSL]] effect can be modified to customize the look further. | ||
In order to not bog the system down with | In order to not bog the system down with analysis, it can extract the waveform signature of a song in advance through a context menu item. The process works in the background and resumes after closing foobar2000. It will automagically analyse the currently playing song and attempt to enqueue what it believes is the next song in case of the linear playback orders. | ||
The seekbar has three frontends and a bunch of per-instance customizable settings accessible through the context menu, as well as seeking functionality if you click and drag, like the regular, boring seekbar. | The seekbar has three frontends and a bunch of per-instance customizable settings accessible through the context menu, as well as seeking functionality if you click and drag, like the regular, boring seekbar. | ||
The GDI+ mode requires XP and GDI+, both of which anyone should have out of the box. | The GDI+ mode requires Windows XP and GDI+, both of which anyone should have out of the box. | ||
==Features== | ==Features== | ||
Line 14: | Line 27: | ||
* Multiple channels handled (up to 18) | * Multiple channels handled (up to 18) | ||
* Optional folding to mono for display and/or storage | * Optional folding to mono for display and/or storage | ||
* Custom visual effects (scale, shade) via user-editable | * [[#Custom waveform rendering |Custom visual effects]] (scale, shade) via user-editable text | ||
* Graphics drawn with either Direct2D (Windows Vista SP2 and up), Direct3D 9.0c, or GDI+ (CPU-intensive, no custom effects) | * Graphics drawn with either Direct2D (Windows Vista SP2 and up), Direct3D 9.0c, or GDI+ (CPU-intensive, no custom effects) | ||
* Cached waveform database can be compacted or cleared of 'dead' waveforms (those for which the audio file is gone) | * Cached waveform database can be compacted or cleared of 'dead' waveforms (those for which the audio file is gone) | ||
== Installation == | |||
Install the base package as described in its [http://www.hydrogenaudio.org/forums/index.php?showtopic=77490 official support forum thread]. | |||
After installing the base package there may be extra steps involved. The hint that you need to install something extra will be a message like: | |||
This component is missing a required dependency, or was made for different version of foobar2000 | |||
* Starting with version 0.2.35 (May 2013), as described by developer Zao in [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=77490&view=findpost&p=833251 this update], you will need to separately install the [http://go.microsoft.com/?linkid=9815734 Visual Studio 2012 Update 1 (x86) runtime]. | |||
** For a portable installation you may need to manually find and copy the msvcr110.dll and msvcp110.dll installed by the VS runtime installer in the folder containing ''foo_wave_seekbar''. Even on a 64-bit OS you still need the 32-bit dlls (follow details after the forum post linked above). | |||
* older versions have different requirements, listed at [http://www.hydrogenaudio.org/forums/index.php?showtopic=77490 the start of the same forum thread]. | |||
* Recent versions can display using basic GDI+ functionality (or direct-X 2D for recent Windows), but if you want [[#Custom waveform rendering |customizable effects]], you need to use Direct-X 3D mode, which requires the [http://www.microsoft.com/en-us/download/details.aspx?id=35 direct-X 9c end-user runtime]. You need this no matter what direct-X comes with your installed version of Windows. After you download the web installer, run it to get the real package. Avoid the Bing offer (unless you really want it) and wait for the ~100MB download. | |||
==Settings== | ==Settings== | ||
Line 30: | Line 52: | ||
** Channel display order - You can choose which channels from the file, if they exist, are shown, and in what order. If you have the ''Downmix display to mono'' box checked, make sure you also have the front center (mono) channel selected here. | ** Channel display order - You can choose which channels from the file, if they exist, are shown, and in what order. If you have the ''Downmix display to mono'' box checked, make sure you also have the front center (mono) channel selected here. | ||
===Advanced preferences=== | |||
In the foobar2000 Preferences, under Advanced > Tools > Waveform Seekbar: | In the foobar2000 Preferences, under Advanced > Tools > Waveform Seekbar: | ||
; Analyze tracks not in the media library | |||
: By default, this is unchecked, meaning you won't see waveforms for tracks that aren't in your media library. If you aren't using the library features of foobar2000, you'll want to check this box. | |||
; Number of concurrent scanning threads (capped by current processor count) | |||
: If the scanning of yet-to-be-played files in your playlist is too slow, you can try increasing this, up to a maximum of the number of processors/cores your computer has. | |||
; Store analysed tracks in mono | |||
: Every channel's waveform is scanned and stored separately. If you're only ever going to be displaying a single, mono waveform for each file, you can check this box to save space by only storing the merged waveforms. | |||
==Custom waveform rendering== | ==Custom waveform rendering== | ||
In Direct3D mode, you can change how the waveform is drawn. This used to be accomplished through an external seekbar.fx file in a %APPDATA%\foobar2000\effects folder, but the [ | In Direct3D mode, you can change how the waveform is drawn. This used to be accomplished through an external <code>seekbar.fx</code> file in a %APPDATA%\foobar2000\effects folder, but the [[wikipedia:High Level Shader Language|HLSL]] instructions are now entered from the within the component, in the Frontend settings (see [[#Settings|above]]). | ||
==Troubleshooting== | ==Troubleshooting== | ||
Line 44: | Line 71: | ||
You shouldn't need to get into these folders, but for troubleshooting, it may be helpful: | You shouldn't need to get into these folders, but for troubleshooting, it may be helpful: | ||
%APPDATA%\foobar2000\wavecache.db - This is where the analyzed waveforms are stored. You can remove all the waveforms by deleting this file; it will be created | * %APPDATA%\foobar2000\wavecache.db - This is where the analyzed waveforms are stored. You can remove all the waveforms by deleting this file; it will be created again when the next waveform is generated. | ||
%APPDATA%\foobar2000\user-components\foo_wave_seekbar - The DLLs live in this folder. | * %APPDATA%\foobar2000\user-components\foo_wave_seekbar - The DLLs live in this folder. | ||
After finding this page I couldn't find the database. After a bit of searching it was found at: | |||
* %PROGRAMFILES%\foobar2000\wavecache.db | |||
==See also== | |||
* [[foobar2000:Components/Waveform Minibar (mod) (foo_wave_minibar_mod)|Waveform Minibar (mod)]] | |||
==External links== | ==External links== | ||
* | * {{foobar2000|http://www.foobar2000.org/components/view/foo_wave_seekbar|Waveform Seekbar}} | ||
* {{ha|https://hydrogenaud.io/index.php/topic,77490.0.html}} |
Latest revision as of 17:32, 23 September 2022
Waveform Seekbar | |
---|---|
foo_wave_seekbar | |
Developer(s) | Lars Viklund |
Release information | |
Initial release | January 3, 2010 |
Stable release | 0.2.45 (February 8, 2014) |
foobar2000 compatibility | |
Minimum version | 1.1 |
UI module(s) | Default UI; Columns UI |
Additional information | |
Use | UI |
View all components |
Waveform Seekbar is a UI element for both the Default UI and Columns UI that provides seekbar functionality (seeking, position indicator) on top of a pretty image of the waveform of the currently playing song, drawn using either Direct3D 9.0c or Direct2D 1.0.
The Direct3D 9.0c mode requires a Pixel Shader 2.0 capable graphics card, and has some hacks to support legacy cards like the Intel GMA 950 (the graphics chipset on a lot of laptops). The HLSL effect can be modified to customize the look further.
In order to not bog the system down with analysis, it can extract the waveform signature of a song in advance through a context menu item. The process works in the background and resumes after closing foobar2000. It will automagically analyse the currently playing song and attempt to enqueue what it believes is the next song in case of the linear playback orders.
The seekbar has three frontends and a bunch of per-instance customizable settings accessible through the context menu, as well as seeking functionality if you click and drag, like the regular, boring seekbar.
The GDI+ mode requires Windows XP and GDI+, both of which anyone should have out of the box.
Features
- Semi-intelligent scanning of yet-to-be-played files in playlist (if it looks like songs are being played in order, the whole set will be scanned)
- Multiple CPU threads supported for quicker scanning
- Multiple channels handled (up to 18)
- Optional folding to mono for display and/or storage
- Custom visual effects (scale, shade) via user-editable text
- Graphics drawn with either Direct2D (Windows Vista SP2 and up), Direct3D 9.0c, or GDI+ (CPU-intensive, no custom effects)
- Cached waveform database can be compacted or cleared of 'dead' waveforms (those for which the audio file is gone)
Installation
Install the base package as described in its official support forum thread. After installing the base package there may be extra steps involved. The hint that you need to install something extra will be a message like:
This component is missing a required dependency, or was made for different version of foobar2000
- Starting with version 0.2.35 (May 2013), as described by developer Zao in this update, you will need to separately install the Visual Studio 2012 Update 1 (x86) runtime.
- For a portable installation you may need to manually find and copy the msvcr110.dll and msvcp110.dll installed by the VS runtime installer in the folder containing foo_wave_seekbar. Even on a 64-bit OS you still need the 32-bit dlls (follow details after the forum post linked above).
- older versions have different requirements, listed at the start of the same forum thread.
- Recent versions can display using basic GDI+ functionality (or direct-X 2D for recent Windows), but if you want customizable effects, you need to use Direct-X 3D mode, which requires the direct-X 9c end-user runtime. You need this no matter what direct-X comes with your installed version of Windows. After you download the web installer, run it to get the real package. Avoid the Bing offer (unless you really want it) and wait for the ~100MB download.
Settings
In the right-click menu in the Waveform Seekbar panel itself:
- Configure
- Frontend - Defaults to Direct2D 1.0 or Direct3D 9.0c depending on your version of Windows, but can be changed to GDI+. GDI+ is not recommended but may be necessary if you can't get Direct2D/3D to work. If you're having problems, try getting the latest DirectX.
- Frontend settings - If there are options specific to the selected frontend, this button will be enabled so you can access them.
- Colors - You can customize the background, foreground, highlight, and selection colors by checking the boxes and clicking on the color samples.
- Misc.
- Shade played - Check if you want the area to the left of the seek position indicator to be highlighted.
- Disable window border
- Downmix display to mono - This combines all channels into one front center (mono) channel for display. If you're only interested in seeing one waveform, check this box.
- Channel display order - You can choose which channels from the file, if they exist, are shown, and in what order. If you have the Downmix display to mono box checked, make sure you also have the front center (mono) channel selected here.
- Frontend - Defaults to Direct2D 1.0 or Direct3D 9.0c depending on your version of Windows, but can be changed to GDI+. GDI+ is not recommended but may be necessary if you can't get Direct2D/3D to work. If you're having problems, try getting the latest DirectX.
Advanced preferences
In the foobar2000 Preferences, under Advanced > Tools > Waveform Seekbar:
- Analyze tracks not in the media library
- By default, this is unchecked, meaning you won't see waveforms for tracks that aren't in your media library. If you aren't using the library features of foobar2000, you'll want to check this box.
- Number of concurrent scanning threads (capped by current processor count)
- If the scanning of yet-to-be-played files in your playlist is too slow, you can try increasing this, up to a maximum of the number of processors/cores your computer has.
- Store analysed tracks in mono
- Every channel's waveform is scanned and stored separately. If you're only ever going to be displaying a single, mono waveform for each file, you can check this box to save space by only storing the merged waveforms.
Custom waveform rendering
In Direct3D mode, you can change how the waveform is drawn. This used to be accomplished through an external seekbar.fx
file in a %APPDATA%\foobar2000\effects folder, but the HLSL instructions are now entered from the within the component, in the Frontend settings (see above).
Troubleshooting
After installation, you still have to add it to your layout. Depending on where you put it, the panel may be collapsed when you first add it; make sure to enlarge it in the layout editor before assuming it's not working.
File locations
You shouldn't need to get into these folders, but for troubleshooting, it may be helpful:
- %APPDATA%\foobar2000\wavecache.db - This is where the analyzed waveforms are stored. You can remove all the waveforms by deleting this file; it will be created again when the next waveform is generated.
- %APPDATA%\foobar2000\user-components\foo_wave_seekbar - The DLLs live in this folder.
After finding this page I couldn't find the database. After a bit of searching it was found at:
- %PROGRAMFILES%\foobar2000\wavecache.db
See also
External links
- Waveform Seekbar on foobar2000.org
- Discussion topic on hydrogenaudio