NicoHC28/guitar_autotuner
GitHub: NicoHC28/guitar_autotuner
一款基于Web的吉他调音器,支持多种乐器和自定义调音。
Stars: 0 | Forks: 0
# 规范文档
请填写此文档以反映您团队的项目。这是一个活文档,需要定期更新。您还可以将任何部分移除到自己的文档中(例如,一个单独的标准和约定文档),但是您必须保留标题并提供一个链接到该其他文档。
此外,请务必查看维基百科,了解如何维护您团队的需求。
## 团队名称
TuneDevs
### 项目摘要
我们项目的首要目标是创建一个小型设备,让吉他手能够在录音室环境以及嘈杂的酒吧中调整他们的乐器。这个手持设备将使用实时信息通过接触麦克风自动调整乐器,以便调音器能在多种环境中工作。
请查看此文件的源代码,以查看``中关于如何使用此文档不同部分的指导。
### 客户
我们的客户将是那些欣赏能够随时进行这些调音的便利性的音乐家。许多资深音乐家“凭耳朵调音”,但添加多个配置文件以便能够根据歌曲即时调音将使音乐家更有效率,并能更多地专注于他们所呈现的艺术。
### 规范
#### 技术堆栈
以下是一些您可以用来灵感的示例技术堆栈:
```
flowchart RL
subgraph Front End
A(Javascript: React)
end
subgraph Back End
B(Python: Flask
end
subgraph Database
C[(MySQL)]
end
A <-->|"REST API"| B
```
#### 数据库
```
---
title: Database ERD for Smart Guitar Tuner
---
erDiagram
User ||--o{ TuningProfile : "creates"
User ||--o{ UserProgress : "tracks"
Lesson ||--o{ UserProgress : "attempted in"
TuningProfile |o--o{ Lesson : "required for"
User {
int user_id PK
string username
string email
string password_hash
}
TuningProfile {
int profile_id PK
int user_id FK
string name
string frequencies_json
boolean is_custom
}
```
#### 类图
```
---
title: Class Diagram for Tuner Logic (Strategy Pattern)
---
classDiagram
class TunerMode {
- AudioStream stream
+ TunerMode(AudioStream stream)
+ void startListening()
+ void stopListening()
+ float getFrequency()
}
class StandardTuner {
+ StandardTuner()
+ void detectPitch()
+ void displayNeedle()
}
class AutoTuner {
+ AutoTuner()
+ void calculatePID()
+ void driveMotor(float speed)
}
class LessonAI {
+ LessonAI()
+ void loadTensorFlowModel()
+ bool validateChord(float[] frequencies)
}
%% Inheritance Relationships
TunerMode <|-- StandardTuner
TunerMode <|-- AutoTuner
TunerMode <|-- LessonAI
```
#### 流程图
```
---
title: Smart Tuner Logic Flow
---
graph TD;
Start([Start System]) --> Init_Hardware[Initialize Mic & Motors];
Init_Hardware --> Select_Mode{Select Mode};
%% Standard/Auto Tuning Path
Select_Mode -->|Auto-Tune| Listen_Pitch[/Input: Audio Stream/];
Listen_Pitch --> FFT_Process[Fast Fourier Transform];
FFT_Process --> Pitch_Detect{Pitch Detected?};
Pitch_Detect -- No --> Listen_Pitch;
Pitch_Detect -- Yes --> Compare_Target[Compare vs Target Freq];
Compare_Target --> Calculate_PID[Calculate PID Error];
Calculate_PID --> In_Tune{In Threshold?};
In_Tune -- No --> Drive_Motor[Drive Servo Motor];
Drive_Motor --> Listen_Pitch;
In_Tune -- Yes --> Display_Green[/Display: In Tune/];
```
#### 行为
```
---
title: Device State Machine
---
stateDiagram-v2
[*] --> Standby
Standby --> Listening : Audio Detected (> -40dB)
Listening --> Standby : Silence / Timeout
state Listening {
[*] --> AnalyzingFreq
AnalyzingFreq --> MotorActive : Frequency Stable & Off-Pitch
MotorActive --> AnalyzingFreq : Motor Step Complete
AnalyzingFreq --> LockedIn : Frequency Matches Target
}
MotorActive --> SafetyStop : Current Spike (String Jammed)
SafetyStop --> ErrorState : Display "Check Peg"
ErrorState --> Standby : Manual Reset
LockedIn --> LessonMode : User requests verification
LessonMode --> Standby : Lesson Complete
```
### 标准与约定
[风格指南与约定](STYLE.md)
标签:12弦设置, CMS安全, ERD, Flask, JavaScript, Python, React, Syscalls, 交互式用户界面, 保存收藏, 后端偏好设置, 在线吉他调音器, 域名枚举, 多乐器支持, 实时信息, 扩展范围吉他, 技术栈, 接触麦克风, 效率提升, 数据可视化, 数据库架构, 数据管道, 无后门, 浏览器音高检测, 自定义调音配置, 艺术表现, 贝斯调音, 软件工程, 逆向工具, 音乐家工具, 音乐设备