liveflowai 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,253 @@
1
+ Metadata-Version: 2.3
2
+ Name: liveflowai
3
+ Version: 0.1.0
4
+ Summary: A Python-based audio analysis toolkit for real-time tempo and chord detection from music files and live microphone input.
5
+ Author: Hioe Gregorius Owen, Petrus Aria Prakoso Widarto
6
+ Author-email: Hioe Gregorius Owen <bloggerzz231@gmail.com>, Petrus Aria Prakoso Widarto <ariaprakoso@proton.me>
7
+ Requires-Dist: librosa>=0.10.0
8
+ Requires-Dist: numpy<2.0
9
+ Requires-Dist: scipy>=1.13.0
10
+ Requires-Dist: scikit-learn>=1.4.0
11
+ Requires-Dist: harmonyscope>=1.0.0
12
+ Requires-Dist: soundfile>=0.12.0
13
+ Requires-Dist: audioread>=3.0.0
14
+ Requires-Dist: resampy>=0.4.0
15
+ Requires-Dist: cython>=0.25
16
+ Requires-Dist: mido>=1.2.6
17
+ Requires-Dist: basic-pitch>=0.4.0
18
+ Requires-Dist: matplotlib>=3.10.9
19
+ Requires-Dist: ffmpeg-python>=0.2.0
20
+ Requires-Dist: pathlib>=1.0.1
21
+ Requires-Dist: typing>=3.10.0.0
22
+ Requires-Dist: pyaudio>=0.2.14
23
+ Requires-Dist: pytest>=9.1.1
24
+ Requires-Dist: sounddevice>=0.5.5
25
+ Requires-Dist: pyttsx3>=2.99
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown
28
+
29
+ # LiveFlowAI
30
+
31
+ A Python-based audio analysis toolkit for real-time tempo and chord detection from music files and live microphone input. Designed for music production, live performance analysis, and audio research.
32
+
33
+ ## Features
34
+
35
+ - **Tempo Detection**: Accurately detect BPM and beat tracking for audio files
36
+ - **Chord Analysis**: Automatic chord recognition and harmonic content analysis
37
+ - **Real-time Live Detection**: Process live microphone input for immediate chord detection
38
+ - **Database Storage**: Persist analysis results in SQLite with easy querying
39
+ - **Visualization**: Visual representations of tempo and beat patterns
40
+ - **IEM Integration**: Announce song information for in-ear monitor systems
41
+ - **Multi-file Processing**: Batch analyze multiple audio files
42
+ - **Confidence Metrics**: Get confidence scores for all detections
43
+
44
+ ## Quick Start
45
+
46
+ ### Prerequisites
47
+
48
+ - Python 3.10 or higher
49
+ - `uv` package manager (or pip as alternative)
50
+ - FFmpeg (for audio format support)
51
+
52
+ ### Installation
53
+
54
+ 1. **Clone the repository**
55
+ ```bash
56
+ git clone https://github.com/yourusername/liveflowai.git
57
+ cd liveflowai
58
+ ```
59
+
60
+ 2. **Set up Python environment**
61
+ ```bash
62
+ # Using uv (recommended)
63
+ uv venv
64
+ source venv/bin/activate # On Windows: venv\Scripts\activate
65
+ uv sync
66
+
67
+ # Or using pip
68
+ python -m venv venv
69
+ source venv/bin/activate
70
+ pip install -e .
71
+ ```
72
+
73
+ ### Basic Usage
74
+
75
+ ```bash
76
+ # Run the interactive analysis tool
77
+ python -m liveflowai
78
+
79
+ # Or using the installed command
80
+ liveflowai
81
+ ```
82
+
83
+ The tool presents an interactive menu with options to:
84
+ - Analyze audio files from your system
85
+ - View all analyzed songs and their data
86
+ - Store results in the local database
87
+ - Visualize tempo patterns
88
+
89
+ ### Example Workflow
90
+
91
+ ```python
92
+ from liveflowai.audio.tempo_analyzer import TempoAnalyzer
93
+ from liveflowai.audio.chord_analyzer import ChordAnalyzer
94
+ from liveflowai.database.database import DatabaseLogic
95
+
96
+ # Initialize analyzers
97
+ tempo_analyzer = TempoAnalyzer()
98
+ chord_analyzer = ChordAnalyzer()
99
+ db = DatabaseLogic()
100
+
101
+ # Analyze an audio file
102
+ audio_file = "path/to/song.mp3"
103
+
104
+ # Detect tempo and beats
105
+ tempo_data = tempo_analyzer.detect_tempo(audio_file)
106
+ print(f"BPM: {tempo_data['tempo_bpm']}")
107
+
108
+ # Analyze chords
109
+ chords = chord_analyzer.analyze_chords(audio_file)
110
+ for chord in chords:
111
+ print(f"{chord.timestamp:.2f}s: {chord}")
112
+
113
+ # Store results
114
+ db.MakeDB()
115
+ db.PushDB(
116
+ filename="song.mp3",
117
+ duration=tempo_data['duration'],
118
+ bpm=tempo_data['tempo_bpm'],
119
+ chords=", ".join(str(c) for c in chords)
120
+ )
121
+ ```
122
+
123
+ ## Project Structure
124
+
125
+ ```
126
+ liveflowai/
127
+ ├── src/liveflowai/
128
+ │ ├── audio/ # Audio processing modules
129
+ │ │ ├── tempo_analyzer.py # BPM and beat detection
130
+ │ │ ├── chord_analyzer.py # Chord recognition
131
+ │ │ └── audio_file_selector.py # File selection UI
132
+ │ ├── detection/ # Real-time detection modules
133
+ │ │ ├── chord_detector.py # Live chord detection
134
+ │ │ └── song_predictor.py # Song/music prediction
135
+ │ ├── database/ # Data persistence
136
+ │ │ └── database.py # SQLite database operations
137
+ │ ├── output/ # Output handling
138
+ │ │ └── iem_manager.py # IEM announcements
139
+ │ ├── transition/ # Audio transition analysis
140
+ │ └── main.py # CLI entry point
141
+ ├── config/ # Configuration files
142
+ ├── data/ # Data storage (databases, audio files)
143
+ ├── tests/ # Unit tests
144
+ └── pyproject.toml # Project metadata and dependencies
145
+ ```
146
+
147
+ ## Core Modules
148
+
149
+ ### Audio Analysis
150
+ - **TempoAnalyzer**: Detects BPM, beat tracking, and generates tempo visualizations using librosa
151
+ - **ChordAnalyzer**: Identifies chord progressions and harmonic content with confidence metrics
152
+
153
+ ### Real-time Detection
154
+ - **LiveChordDetector**: Process microphone input for real-time chord detection with temporal smoothing
155
+ - **SongPredictor**: Identify or predict songs based on audio characteristics
156
+
157
+ ### Data Management
158
+ - **DatabaseLogic**: SQLite database for storing analysis results with query methods
159
+ - **AudioFileSelector**: Interactive file selection interface for batch processing
160
+
161
+ ## Dependencies
162
+
163
+ Core dependencies include:
164
+ - `librosa` - Audio analysis and processing
165
+ - `numpy`, `scipy` - Numerical computations
166
+ - `scikit-learn` - Machine learning utilities
167
+ - `basic-pitch` - Pitch detection
168
+ - `sounddevice` - Real-time audio I/O
169
+ - `mido` - MIDI file support
170
+ - `matplotlib` - Visualization
171
+
172
+ See [pyproject.toml](pyproject.toml) for the complete list and versions.
173
+
174
+ ## Configuration
175
+
176
+ Configuration can be customized in `config/config.yaml`. Currently minimal configuration is required, but this can be expanded for:
177
+ - Sample rate settings
178
+ - Analysis window sizes
179
+ - Confidence thresholds
180
+ - Output paths
181
+
182
+ ## Development
183
+
184
+ ### Running Tests
185
+
186
+ ```bash
187
+ pytest tests/
188
+ ```
189
+
190
+ ### Project Structure Notes
191
+
192
+ - The database is stored in `data/liveflow.db`
193
+ - Put song files specifically in `data/songs/` before running the analysis tool
194
+ - Visualizations are generated in the output directory
195
+ - The project uses `uv_build` as the build backend
196
+
197
+ ## Troubleshooting
198
+
199
+ ### Audio File Not Found
200
+ Ensure the audio file path is correct and the file format is supported (MP3, WAV, FLAC, etc.)
201
+
202
+ ### No Chords Detected
203
+ - Verify the audio has clear harmonic content
204
+ - Try different chord detection confidence thresholds
205
+ - Check that audio sample rate is appropriate (22050 Hz default)
206
+
207
+ ### Real-time Detection Issues
208
+ - Ensure microphone is properly connected and enabled
209
+ - Check system audio input settings
210
+ - Verify PyAudio/PortAudio installation
211
+
212
+ ## Support & Documentation
213
+
214
+ - **Issues & Bugs**: Report via GitHub Issues
215
+ - **Discussions**: Ask questions in GitHub Discussions
216
+
217
+ ## Authors & Maintainers
218
+
219
+ - **Hioe Gregorius Owen** - [bloggerzz231@gmail.com](mailto:bloggerzz231@gmail.com)
220
+ - **Petrus Aria Prakoso Widarto** - [ariaprakoso@proton.me](mailto:ariaprakoso@proton.me)
221
+
222
+ ## License
223
+
224
+ This project is licensed under the MIT License. See [LICENSE.txt](LICENSE.txt) for details.
225
+
226
+ Copyright © 2026 bloggerzz231-jpg & Arialize
227
+
228
+ ## Acknowledgments
229
+
230
+ Built with:
231
+ - [Librosa](https://librosa.org/) - Audio analysis
232
+ - [Basic Pitch](https://github.com/spotify/basic-pitch) - Pitch detection
233
+ - [HarmonyScope](https://github.com/harmonic-analysis/harmonioscope) - Harmonic analysis
234
+ - [Sonic Visualizer](https://www.sonicvisualiser.org/) - Visualization reference
235
+
236
+ ## Citation
237
+
238
+ If you use LiveFlowAI in your research, please cite:
239
+
240
+ ```bibtex
241
+ @software{liveflowai2025,
242
+ title={LiveFlowAI: Real-time Audio Analysis Toolkit},
243
+ author={Hioe Gregorius Owen and Petrus Aria Prakoso Widarto},
244
+ year={2026},
245
+ url={https://github.com/LurckeA/liveflowai}
246
+ }
247
+ ```
248
+
249
+ ---
250
+
251
+ **Status**: Research Project - Active Development
252
+
253
+ For questions or issues, please open a GitHub issue or contact the maintainers.
@@ -0,0 +1,225 @@
1
+ # LiveFlowAI
2
+
3
+ A Python-based audio analysis toolkit for real-time tempo and chord detection from music files and live microphone input. Designed for music production, live performance analysis, and audio research.
4
+
5
+ ## Features
6
+
7
+ - **Tempo Detection**: Accurately detect BPM and beat tracking for audio files
8
+ - **Chord Analysis**: Automatic chord recognition and harmonic content analysis
9
+ - **Real-time Live Detection**: Process live microphone input for immediate chord detection
10
+ - **Database Storage**: Persist analysis results in SQLite with easy querying
11
+ - **Visualization**: Visual representations of tempo and beat patterns
12
+ - **IEM Integration**: Announce song information for in-ear monitor systems
13
+ - **Multi-file Processing**: Batch analyze multiple audio files
14
+ - **Confidence Metrics**: Get confidence scores for all detections
15
+
16
+ ## Quick Start
17
+
18
+ ### Prerequisites
19
+
20
+ - Python 3.10 or higher
21
+ - `uv` package manager (or pip as alternative)
22
+ - FFmpeg (for audio format support)
23
+
24
+ ### Installation
25
+
26
+ 1. **Clone the repository**
27
+ ```bash
28
+ git clone https://github.com/yourusername/liveflowai.git
29
+ cd liveflowai
30
+ ```
31
+
32
+ 2. **Set up Python environment**
33
+ ```bash
34
+ # Using uv (recommended)
35
+ uv venv
36
+ source venv/bin/activate # On Windows: venv\Scripts\activate
37
+ uv sync
38
+
39
+ # Or using pip
40
+ python -m venv venv
41
+ source venv/bin/activate
42
+ pip install -e .
43
+ ```
44
+
45
+ ### Basic Usage
46
+
47
+ ```bash
48
+ # Run the interactive analysis tool
49
+ python -m liveflowai
50
+
51
+ # Or using the installed command
52
+ liveflowai
53
+ ```
54
+
55
+ The tool presents an interactive menu with options to:
56
+ - Analyze audio files from your system
57
+ - View all analyzed songs and their data
58
+ - Store results in the local database
59
+ - Visualize tempo patterns
60
+
61
+ ### Example Workflow
62
+
63
+ ```python
64
+ from liveflowai.audio.tempo_analyzer import TempoAnalyzer
65
+ from liveflowai.audio.chord_analyzer import ChordAnalyzer
66
+ from liveflowai.database.database import DatabaseLogic
67
+
68
+ # Initialize analyzers
69
+ tempo_analyzer = TempoAnalyzer()
70
+ chord_analyzer = ChordAnalyzer()
71
+ db = DatabaseLogic()
72
+
73
+ # Analyze an audio file
74
+ audio_file = "path/to/song.mp3"
75
+
76
+ # Detect tempo and beats
77
+ tempo_data = tempo_analyzer.detect_tempo(audio_file)
78
+ print(f"BPM: {tempo_data['tempo_bpm']}")
79
+
80
+ # Analyze chords
81
+ chords = chord_analyzer.analyze_chords(audio_file)
82
+ for chord in chords:
83
+ print(f"{chord.timestamp:.2f}s: {chord}")
84
+
85
+ # Store results
86
+ db.MakeDB()
87
+ db.PushDB(
88
+ filename="song.mp3",
89
+ duration=tempo_data['duration'],
90
+ bpm=tempo_data['tempo_bpm'],
91
+ chords=", ".join(str(c) for c in chords)
92
+ )
93
+ ```
94
+
95
+ ## Project Structure
96
+
97
+ ```
98
+ liveflowai/
99
+ ├── src/liveflowai/
100
+ │ ├── audio/ # Audio processing modules
101
+ │ │ ├── tempo_analyzer.py # BPM and beat detection
102
+ │ │ ├── chord_analyzer.py # Chord recognition
103
+ │ │ └── audio_file_selector.py # File selection UI
104
+ │ ├── detection/ # Real-time detection modules
105
+ │ │ ├── chord_detector.py # Live chord detection
106
+ │ │ └── song_predictor.py # Song/music prediction
107
+ │ ├── database/ # Data persistence
108
+ │ │ └── database.py # SQLite database operations
109
+ │ ├── output/ # Output handling
110
+ │ │ └── iem_manager.py # IEM announcements
111
+ │ ├── transition/ # Audio transition analysis
112
+ │ └── main.py # CLI entry point
113
+ ├── config/ # Configuration files
114
+ ├── data/ # Data storage (databases, audio files)
115
+ ├── tests/ # Unit tests
116
+ └── pyproject.toml # Project metadata and dependencies
117
+ ```
118
+
119
+ ## Core Modules
120
+
121
+ ### Audio Analysis
122
+ - **TempoAnalyzer**: Detects BPM, beat tracking, and generates tempo visualizations using librosa
123
+ - **ChordAnalyzer**: Identifies chord progressions and harmonic content with confidence metrics
124
+
125
+ ### Real-time Detection
126
+ - **LiveChordDetector**: Process microphone input for real-time chord detection with temporal smoothing
127
+ - **SongPredictor**: Identify or predict songs based on audio characteristics
128
+
129
+ ### Data Management
130
+ - **DatabaseLogic**: SQLite database for storing analysis results with query methods
131
+ - **AudioFileSelector**: Interactive file selection interface for batch processing
132
+
133
+ ## Dependencies
134
+
135
+ Core dependencies include:
136
+ - `librosa` - Audio analysis and processing
137
+ - `numpy`, `scipy` - Numerical computations
138
+ - `scikit-learn` - Machine learning utilities
139
+ - `basic-pitch` - Pitch detection
140
+ - `sounddevice` - Real-time audio I/O
141
+ - `mido` - MIDI file support
142
+ - `matplotlib` - Visualization
143
+
144
+ See [pyproject.toml](pyproject.toml) for the complete list and versions.
145
+
146
+ ## Configuration
147
+
148
+ Configuration can be customized in `config/config.yaml`. Currently minimal configuration is required, but this can be expanded for:
149
+ - Sample rate settings
150
+ - Analysis window sizes
151
+ - Confidence thresholds
152
+ - Output paths
153
+
154
+ ## Development
155
+
156
+ ### Running Tests
157
+
158
+ ```bash
159
+ pytest tests/
160
+ ```
161
+
162
+ ### Project Structure Notes
163
+
164
+ - The database is stored in `data/liveflow.db`
165
+ - Put song files specifically in `data/songs/` before running the analysis tool
166
+ - Visualizations are generated in the output directory
167
+ - The project uses `uv_build` as the build backend
168
+
169
+ ## Troubleshooting
170
+
171
+ ### Audio File Not Found
172
+ Ensure the audio file path is correct and the file format is supported (MP3, WAV, FLAC, etc.)
173
+
174
+ ### No Chords Detected
175
+ - Verify the audio has clear harmonic content
176
+ - Try different chord detection confidence thresholds
177
+ - Check that audio sample rate is appropriate (22050 Hz default)
178
+
179
+ ### Real-time Detection Issues
180
+ - Ensure microphone is properly connected and enabled
181
+ - Check system audio input settings
182
+ - Verify PyAudio/PortAudio installation
183
+
184
+ ## Support & Documentation
185
+
186
+ - **Issues & Bugs**: Report via GitHub Issues
187
+ - **Discussions**: Ask questions in GitHub Discussions
188
+
189
+ ## Authors & Maintainers
190
+
191
+ - **Hioe Gregorius Owen** - [bloggerzz231@gmail.com](mailto:bloggerzz231@gmail.com)
192
+ - **Petrus Aria Prakoso Widarto** - [ariaprakoso@proton.me](mailto:ariaprakoso@proton.me)
193
+
194
+ ## License
195
+
196
+ This project is licensed under the MIT License. See [LICENSE.txt](LICENSE.txt) for details.
197
+
198
+ Copyright © 2026 bloggerzz231-jpg & Arialize
199
+
200
+ ## Acknowledgments
201
+
202
+ Built with:
203
+ - [Librosa](https://librosa.org/) - Audio analysis
204
+ - [Basic Pitch](https://github.com/spotify/basic-pitch) - Pitch detection
205
+ - [HarmonyScope](https://github.com/harmonic-analysis/harmonioscope) - Harmonic analysis
206
+ - [Sonic Visualizer](https://www.sonicvisualiser.org/) - Visualization reference
207
+
208
+ ## Citation
209
+
210
+ If you use LiveFlowAI in your research, please cite:
211
+
212
+ ```bibtex
213
+ @software{liveflowai2025,
214
+ title={LiveFlowAI: Real-time Audio Analysis Toolkit},
215
+ author={Hioe Gregorius Owen and Petrus Aria Prakoso Widarto},
216
+ year={2026},
217
+ url={https://github.com/LurckeA/liveflowai}
218
+ }
219
+ ```
220
+
221
+ ---
222
+
223
+ **Status**: Research Project - Active Development
224
+
225
+ For questions or issues, please open a GitHub issue or contact the maintainers.
@@ -0,0 +1,42 @@
1
+ [project]
2
+ name = "liveflowai"
3
+ version = "0.1.0"
4
+ description = "A Python-based audio analysis toolkit for real-time tempo and chord detection from music files and live microphone input."
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ dependencies = [
8
+ "librosa>=0.10.0",
9
+ "numpy<2.0",
10
+ "scipy>=1.13.0",
11
+ "scikit-learn>=1.4.0",
12
+ "harmonyscope>=1.0.0",
13
+ "soundfile>=0.12.0",
14
+ "audioread>=3.0.0",
15
+ "resampy>=0.4.0",
16
+ "cython>=0.25",
17
+ "mido>=1.2.6",
18
+ "basic-pitch>=0.4.0",
19
+ "matplotlib>=3.10.9",
20
+ "ffmpeg-python>=0.2.0",
21
+ "pathlib>=1.0.1",
22
+ "typing>=3.10.0.0",
23
+ "pyaudio>=0.2.14",
24
+ "pytest>=9.1.1",
25
+ "sounddevice>=0.5.5",
26
+ "pyttsx3>=2.99",
27
+ ]
28
+
29
+ [[project.authors]]
30
+ name = "Hioe Gregorius Owen"
31
+ email = "bloggerzz231@gmail.com"
32
+
33
+ [[project.authors]]
34
+ name = "Petrus Aria Prakoso Widarto"
35
+ email = "ariaprakoso@proton.me"
36
+
37
+ [project.scripts]
38
+ liveflowai = "liveflowai.main:main"
39
+
40
+ [build-system]
41
+ requires = ["uv_build>=0.12.3,<0.13.0"]
42
+ build-backend = "uv_build"
@@ -0,0 +1,38 @@
1
+ [project]
2
+ name = "liveflowai"
3
+ version = "0.1.0"
4
+ description = "A Python-based audio analysis toolkit for real-time tempo and chord detection from music files and live microphone input."
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "Hioe Gregorius Owen", email = "bloggerzz231@gmail.com" },
8
+ { name = "Petrus Aria Prakoso Widarto", email = "ariaprakoso@proton.me" }
9
+ ]
10
+ requires-python = ">=3.10"
11
+ dependencies = [
12
+ "librosa>=0.10.0",
13
+ "numpy<2.0",
14
+ "scipy>=1.13.0",
15
+ "scikit-learn>=1.4.0",
16
+ "harmonyscope>=1.0.0",
17
+ "soundfile>=0.12.0",
18
+ "audioread>=3.0.0",
19
+ "resampy>=0.4.0",
20
+ "cython>=0.25",
21
+ "mido>=1.2.6",
22
+ "basic-pitch>=0.4.0",
23
+ "matplotlib>=3.10.9",
24
+ "ffmpeg-python>=0.2.0",
25
+ "pathlib>=1.0.1",
26
+ "typing>=3.10.0.0",
27
+ "pyaudio>=0.2.14",
28
+ "pytest>=9.1.1",
29
+ "sounddevice>=0.5.5",
30
+ "pyttsx3>=2.99",
31
+ ]
32
+
33
+ [project.scripts]
34
+ liveflowai = "liveflowai.main:main"
35
+
36
+ [build-system]
37
+ requires = ["uv_build>=0.12.3,<0.13.0"]
38
+ build-backend = "uv_build"
File without changes
@@ -0,0 +1,5 @@
1
+ # src/liveflowai/__main__.py
2
+ from . import main
3
+
4
+ if __name__ == "__main__":
5
+ main()
File without changes