# FBrowser - Enhanced File Browser with Audio Tools A powerful file browser application with special focus on audio file handling, MIDI playback, and archive management. ## Features - **Advanced File Browser**: Browse directories with tree view and file list - **Audio Playback**: Built-in player for various audio formats (Via Qt Media powered by ffmpeg) - **MIDI Player**: Full-featured MIDI player with playlist management (synthesis of midi's powered by fluidsynth) - **Metadata Extraction**: View and explore audio file metadata - **Archive Management**: Extract ZIP, RAR, and 7z archives # Not fully implemented no way to use this outside of a custom debugger tool. (not included) - **Timer Utility**: Built-in countdown timer with audio alerts - **Hover Tooltips**: Quick metadata preview by hovering over audio files ## Requirements - Python 3.6+ (maybe 3.8 or newer) - PyQt6 - FluidSynth (for MIDI playback) - Mido (MIDI handling library) - Mutagen (audio metadata extraction) - py7zr and rarfile (archive handling) - SoundFont (.sf2) files for MIDI playback ## Installation ### 1. Clone the repository ```bash git clone https://gitea.innovativedevsolutions.org/stan44/Fbrowser.git cd fbroswer ``` ### 2. Install dependencies ```bash pip install pyqt6 fluidsynth-midi mido mutagen py7zr rarfile numpy sounddevice ``` ### 3. Install FluidSynth - **Windows**: Download from [FluidSynth website](https://www.fluidsynth.org/) (you can also use choco [chocolatey website](https://chocolatey.org/)) - **Windows Choco**: ```bash choco install fluidsynth ``` - **macOS**: `brew install fluid-synth` - **Linux**: `sudo apt-get install fluidsynth` ### 4. Download a SoundFont - Download a .sf2 file (like FluidR3_GM.sf2) - Place it in a "SoundFonts" directory in the application folder ## Usage ### Starting the Application ```bash python Fbrowser.py ``` ### Basic Navigation - Use the tree view on the left to navigate directories - Double-click files in the right panel to open/play them - Use address bar for direct navigation - Back/Forward/Up buttons for quick navigation ### Audio and MIDI Playback - Double-click audio files to play them - Use media controls at the bottom for playback - Click "Open MidPlay" for advanced MIDI playback ### Advanced Features - Right-click on files/folders for context menu options - Extract archives directly from the browser - Scan directories to find audio files - Extract and view metadata ## Components Overview ### Fbrowser.py The main application file implementing the file browser interface with audio playback capabilities. ### MidPlay.py A specialized MIDI player with: - Playlist management - SoundFont selection - Volume control - Playback controls (play, pause, next, previous) ### ScanOrg101.py Handles file scanning, metadata extraction, and archive operations: - Recursive directory scanning - Audio metadata extraction using Mutagen - Archive extraction (ZIP, RAR, 7z) ### timer_m.py A countdown timer with: - Customizable hours, minutes, seconds - Audio alerts on completion - Start/stop/reset functionality ## Customization ### Changing Default SoundFont The application will attempt to find a suitable SoundFont file automatically. If none is found, you'll be prompted to select one. You can change it anytime via the MidPlay interface. ### File Type Filtering Edit the `allowed_extensions` list in `FileFilterProxyModel` class in ScanOrg101.py to change which file types are displayed. ## Troubleshooting ### No Sound in MIDI Playback - Ensure FluidSynth is properly installed - Verify a valid SoundFont (.sf2) file is loaded - Check system audio settings ### Archive Extraction Issues - Ensure you have proper permissions in the target directory - For RAR files, make sure UnRAR is installed on your system ## License MIT License ## Credits - FluidSynth for MIDI synthesis - PyQt6 for the user interface - Mutagen for audio metadata handling - Stanton for Project fbrowser, Timer_m, and MidPlay the fbrowser is the foundation of this project. --- *Note: This project is under development. Feedback and contributions are welcome!*