129 lines
4.0 KiB
Markdown
129 lines
4.0 KiB
Markdown
# 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**: `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!*
|