-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtasks.json
More file actions
514 lines (514 loc) · 18.1 KB
/
tasks.json
File metadata and controls
514 lines (514 loc) · 18.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
{
"tasks": [
{
"id": "ARCH-001",
"title": "Implement State Management with Riverpod",
"description": "Add proper state management to separate audio logic from UI",
"priority": "medium",
"category": "architecture",
"labels": [
"enhancement",
"architecture",
"state-management",
"riverpod"
],
"details": [
"Integrate Riverpod for state management",
"Separate audio processing logic from UI components",
"Create providers for tuning state, audio state, and settings",
"Improve testability by isolating business logic",
"Ensure proper disposal of resources"
],
"files_affected": [
"pubspec.yaml",
"lib/main.dart",
"lib/providers/ (new directory)",
"lib/services/ (new directory)",
"lib/screens/tuner_screen.dart"
],
"acceptance_criteria": [
"Riverpod is properly integrated",
"Audio logic is separated from UI",
"State management is testable",
"Resource disposal is handled correctly",
"Code is more maintainable and organized"
]
},
{
"id": "I18N-001",
"title": "Add Internationalization (i18n) Support",
"description": "Add comprehensive internationalization support to make the app accessible for users worldwide, starting with English and Brazilian Portuguese",
"priority": "medium",
"category": "internationalization",
"labels": [
"enhancement",
"i18n",
"localization",
"feature"
],
"details": [
"Integrate Flutter intl package and ARB files",
"Add English (en) and Brazilian Portuguese (pt-BR) translations",
"Implement automatic device locale detection with English fallback",
"Add language selection option in settings screen",
"Localize all user-facing strings and musical terms",
"Ensure immediate language switching without restart",
"Prepare architecture for future language additions"
],
"files_affected": [
"pubspec.yaml",
"lib/main.dart",
"lib/l10n/ (new directory)",
"lib/screens/settings_screen.dart",
"lib/screens/tuner_screen.dart",
"lib/screens/tunings_screen.dart",
"lib/data/tunings.dart"
],
"acceptance_criteria": [
"Flutter intl package is properly configured",
"English (en) and Portuguese (pt-BR) translations are complete",
"Device language is automatically detected",
"Language can be changed in settings screen",
"Language changes take effect immediately",
"Fallback to English works for unsupported locales",
"All user-facing strings are localized",
"Musical terms are appropriately translated",
"Language preference persists between app restarts"
]
},
{
"id": "BUG-002",
"title": "The gauge doesn't move smoothly",
"description": "The tuner gauge needle movement appears jerky or non-smooth during frequency changes, affecting the user experience and visual feedback quality.",
"priority": "medium",
"category": "bug-fix",
"labels": [
"bug",
"ui",
"animation",
"gauge"
],
"details": [
"Review animation timing and easing curves",
"Consider interpolation between frequency samples",
"Optimize for 60fps smooth animations",
"Balance responsiveness with smoothness",
"Add smooth interpolation between gauge positions",
"Implement proper animation curves (ease-in-out)",
"Consider using AnimationController for smoother transitions",
"Optimize frequency update rate vs animation smoothness"
],
"files_affected": [
"lib/widgets/tuner_gauge.dart",
"lib/screens/tuner_screen.dart"
],
"acceptance_criteria": [
"Gauge needle moves smoothly and fluidly",
"Transitions between positions are gradual",
"Animation maintains 60fps performance",
"Visual feedback feels professional and polished",
"Responsiveness is balanced with smoothness",
"No jerky or stuttering movements"
]
},
{
"id": "UI-002",
"title": "Add Visual Feedback to Settings Icon",
"description": "Enhance settings icon with tap feedback and animations",
"priority": "low",
"category": "ui-polish",
"labels": [
"enhancement",
"ui",
"polish"
],
"details": [
"Add splash effect or ripple on settings icon tap",
"Consider subtle scale animation on press",
"Ensure feedback is consistent with app design",
"Keep animation duration short and smooth"
],
"files_affected": [
"lib/screens/tuner_screen.dart"
],
"acceptance_criteria": [
"Settings icon provides visual feedback when tapped",
"Animation is smooth and not distracting",
"Feedback is consistent with Flutter design patterns",
"No impact on navigation performance"
]
},
{
"id": "UI-003",
"title": "Enhance String Button Animations",
"description": "Add subtle press animations to string selection buttons",
"priority": "low",
"category": "ui-polish",
"labels": [
"enhancement",
"ui",
"polish",
"animation"
],
"details": [
"Add press animation to string buttons in tuner_screen.dart",
"Consider scale or elevation changes on tap",
"Maintain existing selection highlighting",
"Ensure animations don't interfere with selection feedback"
],
"files_affected": [
"lib/screens/tuner_screen.dart"
],
"acceptance_criteria": [
"String buttons show press feedback",
"Animations are subtle and smooth",
"Selection state remains clearly visible",
"Performance is not impacted"
]
},
{
"id": "CONFIG-001",
"title": "Add Reference Frequency Fine Tuning",
"description": "Allow fine adjustments to A4 reference frequency in \u00b10.5 Hz increments",
"priority": "low",
"category": "feature",
"labels": [
"enhancement",
"feature",
"settings"
],
"details": [
"Extend settings screen to allow A4 frequency adjustment",
"Support range from 430-450 Hz with 0.5 Hz increments",
"Update frequency calculations throughout the app",
"Save preference to local storage"
],
"files_affected": [
"lib/screens/settings_screen.dart",
"lib/screens/tuner_screen.dart"
],
"acceptance_criteria": [
"Settings screen shows A4 frequency control",
"Frequency can be adjusted in 0.5 Hz increments",
"All frequency calculations use the set reference",
"Setting persists between app restarts"
]
},
{
"id": "FEATURE-001",
"title": "Add Custom Tuning Creation",
"description": "Allow users to create and save custom tunings",
"priority": "low",
"category": "feature",
"labels": [
"enhancement",
"feature",
"custom-tunings"
],
"details": [
"Add 'Create Custom Tuning' option to tunings screen",
"Allow users to set custom note names and frequencies",
"Save custom tunings to local storage",
"Provide validation for frequency ranges"
],
"files_affected": [
"lib/screens/tunings_screen.dart",
"lib/data/tunings.dart"
],
"acceptance_criteria": [
"Users can create new custom tunings",
"Custom tunings are saved and persist",
"Tuning creation interface is intuitive",
"Custom tunings appear in the tunings list"
]
},
{
"id": "SETTINGS-001",
"title": "Add Sensitivity Configuration",
"description": "Allow users to adjust microphone sensitivity for different environments",
"priority": "low",
"category": "settings",
"labels": [
"enhancement",
"settings",
"audio",
"sensitivity"
],
"details": [
"Add sensitivity slider in settings screen",
"Implement sensitivity levels (Low, Medium, High)",
"Adjust audio input gain based on sensitivity setting",
"Provide visual feedback for current sensitivity level",
"Save sensitivity preference to local storage"
],
"files_affected": [
"lib/screens/settings_screen.dart",
"lib/screens/tuner_screen.dart"
],
"acceptance_criteria": [
"Sensitivity can be adjusted from settings",
"Different sensitivity levels work as expected",
"Setting affects audio input processing",
"Preference is saved and persisted",
"Visual feedback shows current level"
]
},
{
"id": "MULTI-INSTRUMENT-001",
"title": "Support for Multiple Instrument Types",
"description": "Extend beyond guitar to support other stringed instruments",
"priority": "low",
"category": "feature",
"labels": [
"enhancement",
"feature",
"instruments",
"multi-instrument"
],
"details": [
"Add instrument selection in tunings screen",
"Include Bass Guitar, Ukulele, Violin, Mandolin presets as shown in mockup",
"Implement proper frequency ranges for each instrument",
"Update UI to show selected instrument type",
"Allow instrument-specific settings if needed"
],
"files_affected": [
"lib/data/tunings.dart",
"lib/screens/tunings_screen.dart",
"lib/screens/tuner_screen.dart",
"lib/screens/settings_screen.dart"
],
"acceptance_criteria": [
"Multiple instruments are supported",
"Instrument-specific tunings are available",
"Frequency detection works for all instrument ranges",
"UI clearly shows selected instrument",
"Switching between instruments works smoothly"
]
},
{
"id": "DEBUG-002",
"title": "Consider persisting the Debug Mode toggle if you want it to survive restarts",
"description": "Currently, the debug mode toggle doesn't persist between app restarts. Users need to re-enable debug mode every time they launch the app.",
"priority": "low",
"category": "settings",
"labels": [
"enhancement",
"settings",
"debug"
],
"details": [
"Save debug mode preference to local storage (SharedPreferences)",
"Restore debug mode state on app startup",
"Maintain user's preference across app sessions",
"Add debug mode persistence to settings storage",
"Initialize debug mode state during app startup",
"Ensure debug mode state is properly synchronized across app lifecycle"
],
"files_affected": [
"lib/services/debug_logger.dart",
"lib/screens/settings_screen.dart",
"lib/main.dart"
],
"acceptance_criteria": [
"Debug mode preference is saved to local storage",
"Debug mode state is restored on app startup",
"User's debug preference persists across app sessions",
"Debug mode initialization is properly handled",
"No performance impact when debug mode is disabled"
]
},
{
"id": "BRANDING-001",
"title": "Change application name from 'tuner' to 'Menio Tuner' and update icon",
"description": "Update the application display name and icon to match the proper branding for the Menio Tuner app.",
"priority": "medium",
"category": "branding",
"labels": [
"enhancement",
"branding",
"icon",
"app-name"
],
"details": [
"Change application display name from 'tuner' to 'Menio Tuner'",
"Update across all platforms (Android/iOS)",
"Replace default Flutter icon with assets/images/logo.svg",
"Generate proper icon sizes for all platforms",
"Ensure icon meets platform guidelines",
"Use flutter_launcher_icons package for automated icon generation",
"Test icon appearance across different device densities",
"Verify icon meets accessibility contrast requirements"
],
"files_affected": [
"pubspec.yaml",
"android/app/src/main/AndroidManifest.xml",
"ios/Runner/Info.plist",
"android/app/src/main/res/mipmap-*/",
"ios/Runner/Assets.xcassets/AppIcon.appiconset/"
],
"acceptance_criteria": [
"App displays 'Menio Tuner' as the application name",
"Custom logo icon appears on home screen and app switcher",
"Icon looks crisp on all device densities",
"Branding is consistent across Android and iOS",
"Icon meets platform-specific design guidelines",
"Proper localization support for app name"
]
},
{
"id": "OPT-001",
"title": "Implement Battery Optimization",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/6"
}
],
"completed_tasks": [
{
"id": "AUDIO-001",
"title": "Implement Real-time Audio Input Processing",
"priority": "high",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/1"
},
{
"id": "UI-001",
"title": "Add Tuning Selection Navigation",
"priority": "high",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/2"
},
{
"id": "PERF-001",
"title": "Implement Frequency Smoothing",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/3"
},
{
"id": "UX-001",
"title": "Fix Default String Selection - Use First String Instead of Second",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/17"
},
{
"id": "DEBUG-001",
"title": "Add Debug Logging for Audio Processing and App State",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/18"
},
{
"id": "BUG-001",
"title": "Bug: App Shows 'Listening...' But Doesn't React to Guitar Input",
"priority": "critical",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/20"
},
{
"id": "PKG-001",
"title": "Change App Package Name to br.com.gusworks.meniotuner",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/21"
},
{
"id": "UI-004",
"title": "Add Subtle Background Color Changes",
"priority": "low",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/14"
},
{
"id": "A11Y-002",
"title": "Add Color-blind Safe Alternatives",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/5"
},
{
"id": "A11Y-001",
"title": "Add Haptic Feedback for In-Tune State",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/4"
},
{
"id": "THEME-001",
"title": "Implement Light/Dark Theme Support",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/7"
},
{
"id": "AUDIO-002",
"title": "Optimize Audio Buffer Configuration",
"priority": "medium",
"completed_date": "2025-09-23",
"github_issue": "https://github.com/pbalduino/menio_tuner/issues/8"
}
],
"metadata": {
"created_date": "2025-09-23",
"version": "2.6",
"project": "MenioTuner",
"total_tasks": 24,
"active_tasks": 12,
"completed_tasks": 12,
"github_sync": {
"synced_date": "2025-09-23",
"last_sync": "2025-09-23",
"repository": "pbalduino/menio_tuner",
"issues_created": 24,
"issues_closed": 12,
"issues_open": 12,
"assignee": "pbalduino"
},
"priority_breakdown": {
"critical": 0,
"high": 0,
"medium": 5,
"low": 7
},
"completion_status": {
"critical_priority": "1/1 completed (100%)",
"high_priority": "2/2 completed (100%)",
"medium_priority": "7/8 completed (87.5%)",
"low_priority": "1/7 completed (14.3%)",
"overall_progress": "50.0%"
},
"category_breakdown": {
"accessibility": 1,
"performance": 0,
"theming": 0,
"audio-optimization": 0,
"architecture": 1,
"internationalization": 1,
"bug-fix": 1,
"ui-polish": 2,
"feature": 2,
"settings": 2,
"multi-instrument": 1,
"branding": 1
},
"github_issues": {
"A11Y-002": "https://github.com/pbalduino/menio_tuner/issues/5",
"OPT-001": "https://github.com/pbalduino/menio_tuner/issues/6",
"THEME-001": "https://github.com/pbalduino/menio_tuner/issues/7",
"AUDIO-002": "https://github.com/pbalduino/menio_tuner/issues/8",
"ARCH-001": "https://github.com/pbalduino/menio_tuner/issues/9",
"UI-002": "https://github.com/pbalduino/menio_tuner/issues/10",
"UI-003": "https://github.com/pbalduino/menio_tuner/issues/11",
"CONFIG-001": "https://github.com/pbalduino/menio_tuner/issues/12",
"FEATURE-001": "https://github.com/pbalduino/menio_tuner/issues/13",
"SETTINGS-001": "https://github.com/pbalduino/menio_tuner/issues/15",
"MULTI-INSTRUMENT-001": "https://github.com/pbalduino/menio_tuner/issues/16",
"I18N-001": "https://github.com/pbalduino/menio_tuner/issues/19",
"DEBUG-002": "https://github.com/pbalduino/menio_tuner/issues/22",
"BUG-002": "https://github.com/pbalduino/menio_tuner/issues/23",
"BRANDING-001": "https://github.com/pbalduino/menio_tuner/issues/24"
}
}
}