feat: 添加 Goal, GoalRelation, StudentGoal 三个数据模型

- Goal: 目标表,支持存储学习目标
- GoalRelation: 目标自关联多对多表,支持 DAG 结构
- StudentGoal: 学员目标记录表,关联学员和目标
This commit is contained in:
hmo
2026-04-23 20:10:08 +08:00
parent 285979ff70
commit b54b6c7aec
21 changed files with 3229 additions and 0 deletions
+60
View File
@@ -190,6 +190,66 @@ class StudentProblem(db.Model):
} }
class Goal(db.Model):
"""目标表"""
__tablename__ = "goals"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
content = db.Column(db.Text)
created_at = db.Column(db.DateTime, default=datetime.now)
updated_at = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)
def to_dict(self):
return {
"id": self.id,
"name": self.name,
"content": self.content,
"created_at": self.created_at.isoformat() if self.created_at else None,
"updated_at": self.updated_at.isoformat() if self.updated_at else None,
}
class GoalRelation(db.Model):
"""目标关联表 - 自关联多对多"""
__tablename__ = "goal_relations"
parent_goal_id = db.Column(db.Integer, db.ForeignKey("goals.id"), primary_key=True)
child_goal_id = db.Column(db.Integer, db.ForeignKey("goals.id"), primary_key=True)
parent = db.relationship("Goal", foreign_keys=[parent_goal_id], backref="child_relations")
child = db.relationship("Goal", foreign_keys=[child_goal_id], backref="parent_relations")
class StudentGoal(db.Model):
"""学员目标记录表"""
__tablename__ = "student_goals"
id = db.Column(db.Integer, primary_key=True)
student_id = db.Column(db.Integer, db.ForeignKey("students.id"), nullable=False)
goal_id = db.Column(db.Integer, db.ForeignKey("goals.id"), nullable=False)
status = db.Column(db.String(20), default="未开始") # 未开始/进行中/已完成
mastery_level = db.Column(db.Integer, default=1) # 1-5
deadline = db.Column(db.DateTime)
completed_at = db.Column(db.DateTime)
created_at = db.Column(db.DateTime, default=datetime.now)
student = db.relationship("Student", backref="goal_records")
goal = db.relationship("Goal")
def to_dict(self):
return {
"id": self.id,
"student_id": self.student_id,
"goal_id": self.goal_id,
"goal_name": self.goal.name if self.goal else None,
"status": self.status,
"mastery_level": self.mastery_level,
"deadline": self.deadline.isoformat() if self.deadline else None,
"completed_at": self.completed_at.isoformat() if self.completed_at else None,
}
class PracticePlan(db.Model): class PracticePlan(db.Model):
"""练习方案表""" """练习方案表"""
Binary file not shown.
@@ -0,0 +1,120 @@
# 手小
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 八度跨度弹奏困难,手指伸张不开
- 部分和弦够不到,需要过度撑开
- 弹奏时手部扭曲,手腕酸痛
## 原因分析
- 生理结构限制(手掌大小、韧带柔韧性天生的)
- 缺乏针对性的手掌张开和扩展训练
## 核心解决方案
### 1. 手掌撑张训练
这不是"拉韧带",而是让手掌的张开能力得到发挥:
- 方法:双手合十,然后慢慢向两侧分开,感受手掌韧带的轻微拉伸感
- 每天3-5分钟,不要过于用力
- 配合热手(搓手或泡温水)效果更好
### 2. 指法优化
根据手的大小选择合适的指法:
- 使用收缩型指法(如1-2-3-1-2-3而非1-2-3-4-5
- 八度双音可考虑用1-4指代替1-5指
- 避免必须跨太大才能弹到的指法
### 3. 运用延音踏板
当手指无法保持连贯时,踏板可以"连接"声音:
- 在和弦转换时轻踩延音踏板
- 让前一个和弦的声音延续到下一个
- 注意不要让声音糊掉,踩放要干净
### 4. 音型拆分
无法一次弹完的音型可以拆分:
- 大跳的和弦可以分为两次弹(先低音后高音)
- 左右手分工也是一种办法
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 手掌撑张练习 | 5分钟 | 每天 | 扩展韧带弹性 | 启蒙/入门 |任何
| 五指位练习 | 5-8分钟 | 每天 | 建立基础手型 | 启蒙 |任何
| 简单琶音(收缩指法) | 5-10分钟 | 每天 | 琶音跨度 | 入门/进阶 |任何
| 八度感知练习 | 5分钟 | 每天 | 感受舒适伸展范围 | 入门 |任何
| 八度双音练习 | 10分钟 | 每天 | 注意手腕放松 | 进阶/熟练 |任何
| 踏板延音练习 | 5分钟 | 每天 | 和弦衔接 | 进阶/熟练 |任何
### 具体操作
**练习1:手掌撑张练习**
- 适用级别:启蒙级、入门级
- 动作:双手合十,慢慢向两侧分开,感受手掌韧带的轻微拉伸感
- 时长:每天3-5分钟
- 注意:不要过于用力,配合热手效果更好
**练习2:指法优化练习**
- 适用级别:进阶级、熟练级
- 动作:琶音使用收缩型指法(1-2-3-1-2-3),八度双音用1-4指代替1-5指
- 时长:每天10分钟
- 注意:避免强制跨太大
---
## 练习提醒
### ⚠️ 禁忌
- 强行撑开手掌超过舒适范围
- 手腕扭曲或塌陷
- 连续练习时间过长不休息(不超过30分钟应休息)
- 手指酸痛时继续练习
### ✓ 正确做法
- 了解自己手的安全伸展范围
- 选择适合自己手型的曲目
- 遇到无法克服的段落可以考虑改编指法
- 发展技术强项,规避生理限制
- 善用踏板和指法弥补生理限制
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 能舒适弹奏C-G五度音程,手腕放松,不感到疼痛 |
| 入门 | 能舒适弹奏五度音程,手掌能基本撑开 |
| 进阶 | 能弹奏六度音程,掌握音断意连,踏板切换基本准确 |
| 熟练 | 能弹奏简单八度,善用踏板延伸音色,八度双音基本清晰 |
| 精通 | 能驾驭八度双音和简单和弦,手型稳定,踏板使用自然 |
---
## 相关问题
- [[模板_针对性练习建议]] - 查看模板
- [[02_识谱慢]] - 识谱能力影响手型认知
- [[05_掌关节支撑差]] - 支撑能力影响跨度
---
> **版本**V3.0
> **创建时间**2026-04-20
> **更新说明**:根据知识库v3.0全面重写,增加分级练习方案
@@ -0,0 +1,162 @@
# 识谱慢
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 看一个音符需要花好几秒
- 看谱时找不到琴键位置,弹错音
- 只能单手看谱,双手合手困难
- 经常要看同一个音好几次
- 视奏时频繁停顿
- 跟不上节拍
## 原因分析
### 1. 音符位置记忆方式错误
很多学生用"数线法":从中央C开始一个一个格子往上数,这种方法在简单曲目时尚可应付,一旦遇到加线多的音符或快速乐句就完全失效。
正确的方法是建立"音程思维":看到两个音符要知道它们之间差几度,而不是一个一个去数。
### 2. 眼睛和手没有形成联动
眼睛看到音符后,需要传递给大脑,大脑再指挥手指去弹。如果这个链条太长,反应自然就慢。
### 3. 同时处理太多信息
视奏时需要同时处理:音高、节奏、指法、力度等。大脑容量有限,初学者经常顾此失彼。
### 4. 缺乏视奏专项训练
很多学生只练"弹过的曲子",从来不练"第一次看到的曲子"。识谱是一项需要专门训练的技能。
### 5. 对键盘位置不熟悉
即使能认出音符,也不知道它在哪个琴键上。
---
## 核心解决方案
### 1. 建立音程直觉
不逐个认音,而是一眼看出两个音之间的"距离":
- 相邻的线与间是二度(如do-re
- 相邻的线与线或间与间是三度(如do-mi)
- 隔一个的线与线或间与间是五度(如do-sol)
- 隔两个的线与线或间与间是七度(do-si)
训练方法:随便在五线谱上画两个音,立刻说出音程。
### 2. 双手分工视奏
不要一开始就想双手一起弹:
- 先单手分别练熟
- 眼睛看着谱,手在琴键上找位置
- 建立"看到这个音就想到那个键"的直接反射
### 3. 节奏先行
拿到新谱时:
1. 先用节拍器打一遍节奏(不弹音高)
2. 确认节奏对了再加音高
3. 节奏对了,音乐就对了70%
### 4. 读谱不弹练习
每天花5-10分钟,纯读谱不弹琴:
- 看着五线谱说出音名
- 不需要出声,心里默唱也行
- 训练眼睛对五线谱的反应速度
### 5. 分组记忆
不要一个音一个音记,而是按组记:
- 一个和弦 = 一组音符
- 一个小节 = 一组音符
- 一个乐句 = 一组音符
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 | 适用问题严重程度
|---------|------|------|------|---------|---------|
| 音程练习 | 5分钟 | 每天 | 建立音程直觉 | 启蒙/入门 | 严重
| 纯读谱练习 | 5分钟 | 每天 | 训练反应速度 | 启蒙/入门 |任何
| 单手视奏 | 10分钟 | 每天 | 先单手后双手 | 启蒙/入门 |严重
| 节奏打拍 | 5-10分钟 | 每天 | 节奏先行 | 入门/进阶 |任何
| 新谱视奏 | 10分钟 | 每天 | 第一次看就弹 | 入门/进阶 |任何
| 乐句分组 | 5分钟 | 每天 | 按句记不按音记 | 入门/进阶 |任何
| 限时视奏 | 5分钟 | 每天 | 计时读谱 | 进阶 |任何
| 24调视奏 | 10分钟 | 每天 | 各个调都练到 | 熟练/精通 |任何
### 具体操作
**练习1:音程练习**
- 适用级别:启蒙级、入门级
- 动作:在五线谱上随便画两个音,立刻说出音程
- 时长:每天5分钟
**练习2:节奏先行练习**
- 适用级别:入门级、进阶级
- 动作:拿到新谱先用节拍器打一遍节奏,不弹音高
- 时长:每天5-10分钟
**练习3 视奏练习**
- 适用级别:进阶级、熟练级
- 动作:拿到新谱时花30秒读谱:调性、节拍、节奏、音高、临时记号
- 时长:每次视奏前
---
## 练习提醒
### ⚠️ 禁忌
- 边看键盘边弹(形成依赖)
- 标注简谱(永远学不会五线谱)
- 弹错就停(破坏连贯性)
- 同一首曲子反复练太多遍(不是在练识谱)
### ✓ 正确做法
- 眼睛看谱,手看键只是偶尔确认
- 每天练从未弹过的曲子
- "宁可慢,不要断"
- 把识谱当作独立技能专项训练
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 能认识五线谱音符的基本形态,知道线和间的概念 |
| 入门 | 高低音谱表能识别中央C附近一个八度,能在琴键上找到对应位置 |
| 进阶 | 能独立视奏简单旋律,10秒内读出音符,节奏基本稳定 |
| 熟练 | 能独立视奏新曲目,准确率80%以上,双手分工看谱 |
| 精通 | 能进行较复杂视奏,24个大小调基本能弹 |
---
## 相关问题
- [[模板_针对性练习建议]] - 查看模板
- [[01_手小]] - 手小影响视奏时的键盘位置感知
- [[03_节奏感差]] - 节奏感知影响视奏
- [[12_不会用节拍器]] - 节拍器帮助节奏稳定
---
> **版本**V3.0
> **创建时间**2026-04-20
> **更新说明**:根据知识库v3.0全面重写,增加STARS预读法
@@ -0,0 +1,146 @@
# 节奏感差
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 演奏时快时慢,不稳定
- 打拍子会乱,不知道音符该弹多长
- 复杂节奏型(附点,切分,三连音)掌握困难
- 弹奏缺乏律动感
## 原因分析
### 1. 内心节拍器没有建立
很多学生依赖外部节拍器,关掉节拍器就不知道该弹多快。真正的高手内心有一个稳定的"隐形节拍器"。
### 2. 对音符时值理解不清
不知道四分音符和八分音符的时值比例,附点该弹多长,切分该怎么算。
### 3. 身体没有参与
节奏不仅是大脑的事,更是身体的事。只用脑子记节奏,不动手不动脚,效果很差。
### 4. 练习方法问题
从不开节拍器练习,或者开着节拍器但完全不跟着走。
### 5. 心理紧张
一上台或一录音就紧张,节奏更加不稳定。
---
## 核心解决方案
### 1. 建立内心节拍器
**第一步:节拍器感知**
- 从60速开始,仔细听节拍器的"滴答"声
- 跟着节拍器轻轻点头或踏脚
**第二步:内心默数**
- 关掉节拍器,心里默数"1-2-3-4"
- 速度与60速一致
- 用脚轻轻动一下对应每拍
**第三步:脱节拍器验证**
- 用节拍器练熟后,关闭节拍器弹同样的速度
- 过30秒后重新开启节拍器验证是否还在原速
### 2. 身体参与节奏感知
**拍手训练:**
- 只拍手不弹琴,拍手时大声数"1-2-3-4"
- 各种节奏型用拍手来感受
**脚打拍子:**
- 脚是身体最稳定的节拍器
- 弹琴时用脚保持基础节奏
### 3. 先节奏后音高
步骤:
1. 看谱,用手拍出所有音符的节奏(不弹)
2. 边拍边数:1-2-3-4
3. 节奏完全正确后再上琴弹奏
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 节拍器感知(60速) | 10分钟 | 每天 | 感受稳定节拍 | 启蒙/入门 |任何
| 纯节奏拍手 | 5分钟 | 每天 | 节奏感知 | 启蒙/入门 |任何
| 脚打拍子 | 5分钟 | 每天 | 身体参与 | 启蒙/入门 |任何
| 内心节拍器训练 | 10分钟 | 每天 | 脱离外部节拍器 | 入门/进阶 |任何
| 节奏型专项 | 10分钟 | 每天 | 附点,切分等 | 入门/进阶 |任何
| 录音回放自检 | 5分钟 | 每天 | 发现节奏问题 | 入门/进阶 |任何
| 复合节奏 | 10分钟 | 每天 | 左右手不同节奏 | 进阶/熟练 |任何
### 具体操作
**练习1:节拍器感知练习**
- 适用级别:启蒙级,入门级
- 动作:从60速开始,跟随节拍器轻轻点头或踏脚
- 时长:每天10分钟
**练习2:纯节奏拍手练习**
- 适用级别:启蒙级,入门级
- 动作:只拍手不弹琴,拍手时大声数"1-2-3-4"
- 时长:每天5分钟
**练习3:先节奏后音高练习**
- 适用级别:入门级、进阶级
- 动作:看谱,用手拍出所有音符的节奏,节奏完全正确后再上琴
- 时长:每天10分钟
---
## 练习提醒
### ⚠️ 禁忌
- 开着节拍器但弹得忽快忽慢
- 只练音符不练节奏
- 弹错就停,不继续往下
- 身体不参与节奏感知
- 不录音回放
### ✓ 正确做法
- 每天花5分钟纯节奏练习(不弹琴)
- 录音回放,听自己的节奏是否稳定
- 用脚打拍子
- 先打节奏再上琴
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 能用手打稳定4/4拍,知道强拍位置 |
| 入门 | 能用手打拍子,4/4拍稳定,会数拍 |
| 进阶 | 简单曲目节奏准确(四分、八分音符) |
| 熟练 | 掌握附点节奏、切分音,能跟伴奏 |
| 精通 | 三连音、复合节奏处理,节奏稳定自如 |
---
## 相关问题
- [[模板_针对性练习建议]] - 查看模板
- [[01_手小]] - 手小可能影响节奏控制
- [[12_不会用节拍器]] - 节拍器辅助节奏训练
---
> **版本**V3.0
> **创建时间**2026-04-20
> **更新说明**:根据知识库v3.0全面重写,增加内心节拍器训练方法
@@ -0,0 +1,152 @@
# 压手腕
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 手腕明显低于琴键平面
- 手腕呈现下塌的弧线
- 力量传递受阻,声音发闷
- 手腕酸痛或疲劳
- 弹奏时手腕上下晃动
## 原因分析
### 1. 手指支撑能力不足
当手指无法独立支撑时,手腕会不自觉地"帮忙",导致下压。
### 2. 误解了"用力弹"
误以为弹琴需要用很大力气,手臂往下压。
### 3. 手腕肌肉紧张
手腕周围的肌肉过于紧绷,无法放松,导致动作僵硬。
### 4. 缺乏手腕调节意识
不知道手腕应该保持灵活,可以轻微调节高度。
### 5. 肩臂过于紧张
从肩膀到手臂都太紧,力量淤积在手腕处。
---
## 核心解决方案
### 1. 手腕位置意识
建立正确的手腕位置感:
- 手腕应该与键盘、小臂平行即可。
- 不低于键盘,不高于手掌。
- 可以把手背放一枚硬币,弹奏时硬币不应掉落
### 2. 手指独立练习
通过断奏训练手指的独立支撑能力:
- 每个手指单独在琴键上站立
- 其他手指放松,不要帮忙
- 感受力量从手指传递而不是从手腕压下
### 3. 手臂重量弹奏法
不要用手臂往下压,而是让手臂重量自然落到指尖:
- 想象手臂是钟摆,自然摆动
- 手指"接住"手臂的重量
- 手腕保持灵活,不是固定死的
### 4. 手腕放松画圈
不弹琴时练习:
- 手腕完全放松
- 轻轻画圈,活动手腕关节
- 感受手腕可以自由活动的范围
### 5. 断奏过渡到连奏
先通过断奏建立正确的手腕位置:
- 断奏时每个音弹完手腕稍微抬起
- 逐渐过渡到连奏,保持手腕位置稳定
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 手指站立断奏 | 10分钟 | 每天 | 手指独立支撑 | 启蒙/入门 |任何
| 手腕放松画圈 | 5分钟 | 每天 | 放松关节 | 启蒙/入门 |任何
| 手臂重量弹奏 | 10分钟 | 每天 | 感受重量传递 | 入门/进阶 |任何
| 断奏过渡到连奏 | 10分钟 | 每天 | 保持位置稳定 | 入门/进阶 |任何
### 具体操作
**练习1:手腕位置意识练习**
- 适用级别:启蒙级,入门级
- 动作:把手背放一枚硬币,手腕略高于手背,弹奏时硬币不应掉落
- 时长:每天5分钟
**练习2:手指独立断奏**
- 适用级别:启蒙级,入门级
- 动作:每个手指单独在琴键上站立,其他手指放松
- 时长:每天10分钟
**练习3:手臂重量弹奏**
- 适用级别:入门级、进阶级
- 动作:想象手臂是钟摆,手指"接住"手臂的重量
- 时长:每天10分钟
---
## 练习提醒
### ⚠️ 禁忌
- 手腕塌陷用力压键
- 手腕完全不动,像铁板一样
- 手腕随着弹奏上下晃动
- 手型还没建立就追求速度
### ✓ 正确做法
- 每次练习前做手腕热身
- 慢速感受自然重量,手腕放松
- 想象手臂重量传递到指尖
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 手腕基本水平,无明显塌陷 |
| 入门 | 断奏时手腕保持稳定高度 |
| 进阶 | 连奏时手腕基本水平,无下压 |
| 熟练 | 快速跑动时手腕仍保持弹性 |
| 精通 | 手腕灵活有力,配合手指完成各种音色 |
---
## 相关问题
- [[模板_针对性练习建议]] - 查看模板
- [[05_掌关节支撑差]] - 掌关节影响手腕位置
- [[08_手指僵硬_紧张]] - 紧张会加重手腕问题
---
> **版本**V3.0
> **创建时间**2026-04-20
> **更新说明**:根据知识库v3.0全面重写,增加手腕调节意识训练
@@ -0,0 +1,151 @@
# 掌关节支撑差
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 掌关节塌陷,拱不起来
- 触键时手型扁平
- 力量无法集中传递到指尖
- 声音松散不集中
- 手型缺乏支撑感
## 原因分析
### 1. 手部肌肉力量不足
低龄学生或未经训练的学生,手掌肌肉力量不足,难以支撑手型。
### 2. 手指站立概念不清
不知道手指应该在琴键上"站住",而是"躺"在琴键上。
### 3. 手掌没有参与
只有手指用力,手掌完全放松塌陷,没有形成稳定的支撑框架。
### 4. 练习方法问题
缺乏专门的手型支撑训练,过早追求速度和曲目。
### 5. 手腕位置影响
手腕过低导致手掌被迫塌陷。
---
## 核心解决方案
### 1. 手掌撑墙练习
- 手掌撑在墙上,手指微微弯曲
- 感受掌关节向上拱起的力量
- 保持5-10秒,每天练习
### 2. 音束训练
- 234指在三个音为一组的黑琴键上
- 贴键
- 其他手指放松不参与
- 每个音束保持3-5秒
### 3. 手指站立训练
- 每个手指单独在琴键上站立
- 掌关节向上拱起支撑
- 其他手指放松不参与
- 每个手指站立保持3-5秒
### 4. 吊臂练习
- 手臂抬起,手掌悬空
- 感受手臂重量自然传递到指尖
- 掌关节在这个过程中形成自然拱度
### 5. 断奏建立支撑
通过断奏练习建立掌关节支撑:
- 每个音弹完,手指不完全离开琴键
- 保持支撑感,不让掌关节塌陷
- 逐渐加快速度但保持支撑
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度|
|---------|------|------|------|---------|---------|
| 手掌撑墙 | 5分钟 | 每天 | 感受支撑 | 启蒙/入门 |任何|
| 音束练习 | 10分钟 | 每天 | 感受支撑 | 启蒙/入门 |任何|
| 手指站立 | 19分钟 | 每天 | 手指独立 | 启蒙/入门 |任何|
| 吊臂练习 | 5分钟 | 每次练习前 | 感受重量传递 | 入门/进阶 |任何|
| 断奏支撑 | 10分钟 | 每天 | 手指独立 | 入门/进阶 |任何|
| 渐强渐弱练习 | 10分钟 | 每天 | 从弱到强保持支撑 | 进阶/熟练 |任何|
| 快速弹奏 | 10分钟 | 每天 | 保持手型不塌 | 进阶/熟练 |任何|
| 和弦弹奏 | 10分钟 | 每天 | 掌关节支撑每个音 | 进阶/熟练 |任何|
### 具体操作
**练习1:手掌撑墙练习**
- 适用级别:启蒙级,入门级
- 动作:手掌撑在墙上,手指微微弯曲,感受掌关节向上拱起
- 时长:每天5分钟
**练习2:音束训练**
- 适用级别:启蒙级,入门级
- 动作:234在三个音为一组的黑键上
- 时长:每天5-10分钟
**练习3:手指站立训练**
- 适用级别:启蒙级,入门级
- 动作:每个手指单独在琴键上站立,掌关节向上拱起
- 时长:每天10分钟
---
## 练习提醒
### ⚠️ 禁忌
- 手掌完全塌陷贴琴键
- 手指软绵绵没有力量
- 手型时好时坏不稳定
- 掌关节塌陷还继续用力弹
### ✓ 正确做法
- 每天专门练习手型支撑
- 练习时关注手型
- 感觉支撑疲劳时适当休息
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 静止时能保持基本拱形手型 |
| 入门 | 断奏时掌关节不塌陷 |
| 进阶 | 慢速连奏时手型基本稳定 |
| 熟练 | 快速弹奏时仍保持支撑 |
| 精通 | 手型饱满有弹性,声音集中有力 |
---
## 相关问题
- [[模板_针对性练习建议]] - 查看模板
- [[01_手小]] - 手小可能加重支撑问题
- [[04_压手腕]] - 手腕位置影响掌关节
- [[06_第一关节支撑差]] - 第一关节与掌关节联动
---
> **版本**V3.0
> **创建时间**2026-04-20
> **更新说明**:根据知识库v3.0全面重写
@@ -0,0 +1,128 @@
# 第一关节支撑差
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 第一关节弯曲(折指)
- 指尖发软,立不住
- 触键声音发虚
- 手指容易疲劳酸痛
- 长时间弹奏后指尖塌陷
## 原因分析
### 1. 手指力量不足
第一关节周围的肌肉和韧带力量不足以支撑触键时的压力。
### 2. 触键角度错误
手指过于躺平,而不是微微弯曲向下。
### 3. 指甲问题
指甲过长导致触键点偏移,无法用指尖触键。
### 4. 整体手型问题
其他部位(掌关节,手腕)的问题也会传递到第一关节。
---
## 核心解决方案
### 1. 指尖站立练习
- 手指自然弯曲,第一关节向外微微拱起
- 像小柱子一样站立在琴键上
- 保持3-5秒,感受支撑感
### 2. 贴键练习
- 手指贴在琴键上
- 缓慢下键,感受第一关节的支撑
- 建立触键的支撑能力
### 3. 触键点调整
- 触键点在指尖最末端
- 具体操作可观看艺超音乐培训视频号“看三遍,三分钟,学琴不跑偏”系列视频之《触键点与支撑》
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 指尖站立 | 5分钟 | 每天 | 每个手指立住 | 启蒙/入门 |任何
| 贴键慢下键 | 10分钟 | 每天 | 低触键支撑 | 启蒙/入门 |任何
| 触键点感知 | 5分钟 | 每天 | 找准指腹位置 | 启蒙/入门 |任何
| 断奏支撑 | 10分钟 | 每天 | 练习单指支撑 | 入门/进阶 |任何
| 力度变化 | 10分钟 | 每天 | 从轻到重保持支撑 | 进阶/熟练 |任何
### 具体操作
**练习1:指尖站立练习**
- 适用级别:启蒙级,入门级
- 动作:手指自然弯曲,第一关节向外微微拱起,像小柱子一样站立在琴键上
- 时长:每天5分钟
**练习2:贴键慢下键**
- 适用级别:启蒙级,入门级
- 动作:手指贴在琴键上,缓慢下键,感受第一关节的支撑
- 时长:每天10分钟
---
## 练习提醒
### ⚠️ 禁忌
- 指甲过长(超过指腹)
- 用指尖代替指腹触键
- 手指过于伸直
- 折指还继续弹
### ✓ 正确做法
- 定期修剪指甲
- 触键时第一关节保持微弯
- 用指尖最前端触键
- 感觉疲劳时及时放松
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 静止时第一关节不弯曲 |
| 入门 | 断奏时指尖能立住 |
| 进阶 | 慢速连奏时指尖基本稳定 |
| 熟练 | 中快速弹奏时保持指尖支撑 |
| 精通 | 指尖有力,声音清晰集中 |
---
## 相关问题
- [[模板_针对性练习建议]] - 查看模板
- [[05_掌关节支撑差]] - 掌关节影响第一关节
- [[04_压手腕]] - 手腕位置影响指尖
- [[08_手指僵硬_紧张]] - 紧张加重折指问题
---
> **版本**V3.0
> **创建时间**2026-04-20
> **更新说明**:根据知识库v3.0全面重写,增加指尖叩击等弹性训练
---
@@ -0,0 +1,140 @@
# 对键盘不熟悉
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 找不到琴键位置,弹奏时经常"找"键
- 识谱和弹奏无法同时进行
- 弹错音后不知道在哪,需要看键盘
- 对琴键的排列规律没有概念
## 原因分析
- 练习量不足,肌肉记忆未形成
- 练习时过度依赖视觉,忽视触觉记忆
- 缺乏键盘布局的系统性认知
## 核心解决方案
### 1. 盲弹训练
看谱不看手,建立触觉记忆:
- 先看谱看键盘,弹一个音
- 记住这个音的位置,闭眼弹
- 逐步过渡到:看谱 → 闭眼弹 → 睁眼确认
- 目标:简单曲目(没有手位变化)只看谱弹奏
### 2. 键盘位置记忆
记住中央C的位置,相邻琴键的关系:
- 中央C位于两组黑键的左边第一个白键
- 用这个"锚点"确定其他音的位置
- 训练:闭眼摸到中央C
### 3. 基准键定位
双手食指在中央C两侧的位置:
- 左手食指在中央C左边的白键
- 右手食指在中央C右边的白键
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度|
|---------|------|------|------|---------|---------|
| 中央C定位 | 5分钟 | 每天 | 建立键盘锚点 | 启蒙/入门 |严重|
| 黑键位置记忆 | 5分钟 | 每天 | 建立键盘布局认知 | 启蒙/入门 |中等
| 盲弹练习 | 10分钟 | 每天 | 建立触觉记忆 | 入门/进阶 |中等
| 音阶位移练习 | 10分钟 | 每天 | 熟悉各调键盘位置 | 精通 |轻微
### 具体操作
**练习1Do定位**
- 适用级别:启蒙级、入门级
- Do位于两组三个黑键的左边第一个白键
- 用这个"锚点"确定其他音的位置
- 训练:闭眼摸到中央Do
**练习2:键盘布局认知**
- 适用级别:启蒙级、入门级
- 认识黑键规律:两个一组、三个一组
- C大调:C是白键,D是白键,中间夹着黑键
- 记住:黑键前面的白键是B
- 白键规律:全全半全全全半(音阶排列)
**练习3:盲弹训练**
- 适用级别:入门级、进阶级
- 先看谱看键盘,弹一个音
- 记住这个音的位置,闭眼弹
- 逐步过渡到:看谱 → 闭眼弹 → 睁眼确认
- 目标:简单曲目(没有手位变化)只看谱弹奏
**练习4:键盘位移(横向移动)**
- 适用级别:入门级、进阶级
- 从中央C开始,弹一个八度
- 移高八度,再弹一个八度
- 感受不同八度之间的音高差异
- 训练对整体键盘的感知
### 键盘位置记忆口诀
```
白键顺序:C-D-E-F-G-A-BDo-Re-Mi-Fa-Sol-La-Si
黑键规律:两个一组、三个一组
C找法:两个一组黑键的左边第一个白键
F找法:三个一组黑键的左边第一个白键
```
---
## 练习提醒
### ⚠️ 禁忌
- 不看谱
- 手位没有变化时看键盘
- 依赖视觉而不是触觉记忆
### ✓ 正确做法
- 建立"肌肉记忆"
- 每天花10分钟练习识谱;视奏。
- 记住键盘的规律,熟悉键盘
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 知道C的位置,能不看键盘找到 |
| 入门 | 能找到中央C和基本音区 |
| 进阶 | 能不看键盘弹奏简单旋律 |
| 熟练 | 双手配合时能准确找到琴键 |
| 精通 | 能在键盘上自由移动,快速定位 |
---
## 相关问题
- [[06_第一关节支撑差]] - 上一个问题
- [[08_手指僵硬_紧张]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,调整为识谱类
@@ -0,0 +1,168 @@
# 手指僵硬、紧张
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 弹奏时手指伸直,无法弯曲
- 手腕、手臂僵硬,弹奏不灵活
- 弹久了手酸、手疼
- 音色死板,缺乏音乐性
## 原因分析
- 紧张情绪导致的肌肉僵硬
- 错误的手型(手型过紧或过松)
- 练习方法不当,过度用力
## 核心解决方案
### 1. 放松练习
弹奏前先放松手部,感受重力:
- 手自然垂下,感受手臂的重量
- 肩膀下沉,不耸起
- 想象手是"挂在"手臂上的
### 2. 手腕调节
手腕保持灵活,不僵硬:
- 手腕是手臂和手指之间的缓冲
- 不要把手腕锁死
- 感受手腕的微小调节
### 3. 非连奏训练
非连音弹奏,感受手指的弹性:
- 每个音都断开
- 手腕带一点"提起来"的动作
- 感受手指的弹性,而非用力压键
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 手部放松操 | 3分钟 | 每次练习前 | 放松手部肌肉 | 启蒙/入门 |任何
| 贴键练习 | 5分钟 | 每天 | 感受放松 | 启蒙/入门 |任何
| 呼吸放松法 | 2分钟 | 每次练习前 | 缓解紧张情绪 | 启蒙/入门 |任何
| 断奏训练 | 5分钟 | 每天 | 感受手指支撑 | 入门/进阶 |任何
| 重量弹奏法 | 5分钟 | 每天 | 利用手臂重量 | 入门/进阶 |任何
### 具体操作
**练习1:手部放松操**
- 适用级别:启蒙级、入门级
- 甩手:自然下垂,快速甩动30秒
- 握拳:用力握紧 → 快速松开,重复10次
- 手指展开:五指张开 → 握拳,重复10次
- 揉手腕:轻轻揉捏手腕周围肌肉
**练习2:贴键练习**
- 适用级别:启蒙级、入门级
- 手指轻轻放在琴键上,不需要太用力
- 贴键
- 感受琴键的重量,用自然力量下键
- 目标:用最小的力量发出声音
**练习3:呼吸放松法**
- 适用级别:启蒙级、入门级
- 弹奏前深呼吸3次
- 肩膀下沉,不要耸肩膀
- 手臂自然下垂,完全放松
- 心里默念"放松"再开始弹
**练习4:断奏练习**
- 适用级别:入门级、进阶级
- 每个音都断开,手腕带一点"提起来"的动作
- 弹完一个音,手腕稍微抬起,再弹下一个
- 感受手指的支撑,而非用手腕把声音压出来
**练习5:重量弹奏法**
- 适用级别:入门级、进阶级
- 感受手臂的重量自然传递到指尖
- 手指不是"敲"下去,而是"放"下去
- 利用手臂重量而非手指力量下键
- 音色更深厚,手指更轻松
### 心理放松技巧
```
紧张时的自我调节:
1. 心理暗示:告诉自己"我能行"
2. 拆解目标:不要想"弹完整首",想"弹好这个乐句"
3. 容错心态:弹错没关系,继续往下
4. 享受音乐:把弹琴当作表达,不是考试
练习中的放松:
- 弹错音不要停,继续往下
- 累了就休息,不要硬撑
- 进度慢没关系,保持正确手型,慢就是快
```
### 手型自查清单
```
正确手型要点:
□ 手指自然弯曲
□ 手腕平行于键盘和小臂,放松
□ 手臂自然下垂,肩膀不耸起
□ 指腹触键,而非仅仅是指尖
□ 第一关节不塌陷
检查方法:
- 把手垂在身体两侧,感受自然弯曲
- 慢慢把手抬到琴键上方,保持这个弧线
- 轻轻放上琴键,这就是正确手型
```
---
## 练习提醒
### ⚠️ 禁忌
- 手型过紧,像握拳头
- 手型过松,手指软绵绵
- 过度追求音量而用力压键
### ✓ 正确做法
- 保持"松而不散,紧而不僵"
- 每次练习前都做手部热身
- 感受手臂重量自然传递到指尖
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 弹奏时手部基本放松,无明显紧张感 |
| 入门 | 弹奏时手不僵硬,能保持基本手型 |
| 进阶 | 能感受到手臂重量自然传递到指尖 |
| 熟练 | 弹奏灵活,手腕能自然上下浮动 |
| 精通 | 能控制力量收放,音色丰富多变 |
---
## 相关问题
- [[07_对键盘不熟悉]] - 上一个问题
- [[09_手指不会跑动]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,补充放松操和呼吸法
@@ -0,0 +1,143 @@
# 手指不会跑动
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 弹奏时手指不灵活,移动缓慢
- 跑动时声音不均匀,有些音强有些音弱
- 速度提不上来,一快就乱
- 手指之间互相牵连,不独立
## 原因分析
- 手指独立性训练不足
- 掌关节力量不够
- 练习方法缺乏系统性
## 核心解决方案
### 1. 基础练习
每日必练,建立手指独立性:
- 1:高抬指基础训练
- 2:双音练习,增强手指支撑
- 3:音阶跑动,保持均匀
- 重点:触键后立即放松,不要粘在琴键上
### 2. 高抬指
手指自然抬起,快速落下:
- 抬指时手指向上自然抬起
- 下键要快而清晰
- 触键后立即放松,不粘在琴键上
### 3. 音阶琶音训练
各种音阶跑动练习:
- 从C大调开始,再到24个大小调
- 慢速练习:60速度一拍两个音,确保每个音清晰均匀
- 中速练习:80速度一拍两个音;一拍四个音,保持稳定性
- 快速练习:100速度一拍四个音,检验掌握程度
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 高抬指练习 | 5分钟 | 每天 | 建立手指独立性 | 进阶/熟练/精通 |任何
| 哈农练习曲 1-20条 | 10-15分钟 | 每天 | 手指独立性+跑动 | 进阶/熟练/精通 |任何
| 音阶跑动练习 | 10分钟 | 每天 | 提升跑动能力 | 进阶 /熟练/精通|任何
| 琶音练习 | 10分钟 | 每天 | 手指力量与耐力 | 进阶/熟练/精通 |任何
### 具体操作
**练习1:高抬指练习**
- 适用级别:进阶、熟练、精通
- 详情请参考教学视频
**练习2:哈农**
- 适用级别:进阶、熟练、精通
- 基础高抬指,每个音都抬高
- 触键后立即放松,不要粘在琴键上
- 慢速练习,确保每个音清晰
**练习3:音阶跑动**
- 适用级别:进阶、熟练、精通
- 从C大调开始,到24个大小调
- 慢速练习:60速度一拍两个音,确保每个音清晰均匀
- 中速练习:80速度一拍两个音;一拍四个音,保持稳定性
- 快速练习:100速度一拍四个音,检验掌握程度
**练习4:力度均匀训练**
- 适用级别:进阶、熟练、精通
- 弹奏同一组音,用不同手指
- 感受每个手指的力度差异
- 针对性弱的手指加强练习
### 跑动提速技巧
```
1. 分手练 → 合手练
先用右手单独练熟,再用左手练熟,最后合手
2. 慢练 → 快练
从60速开始,弹稳后加到72、84、100...
3. 难点单独练
把跑动中的难点乐句单独抽出来练
4. 放松是关键
手指不要紧,弹完立即放松
```
---
## 练习提醒
### ⚠️ 禁忌
- 追求速度而忽略质量
- 手指粘在琴键上不放松
- 练错手型还继续加速
### ✓ 正确做法
- 每天坚持练习,量不在多
- 慢练是快练的基础
- 听到不均匀的音要停下来调整
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 能慢速弹奏简单音阶,手指基本独立 |
| 入门 | 能以60速弹奏完整音阶 |
| 进阶 | 能以80速弹奏,力度基本均匀 |
| 熟练 | 能以100速弹奏跑动片段 |
| 精通 | 能驾驭快速技巧性曲目 |
---
## 相关问题
- [[08_手指僵硬_紧张]] - 上一个问题
- [[10_力度不会把握]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,完善哈农练习方法
@@ -0,0 +1,148 @@
# 力度不会把握
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 弹奏时力度一成不变,缺乏变化
- 不知道什么时候该强、什么时候该弱
- 渐强渐弱做得不自然
- 整首曲子听起来平淡无奇
## 原因分析
- 缺乏力度控制意识
- 手指触键方式单一
- 对音乐表现理解不足
## 核心解决方案
### 1. 重量弹奏法
利用手臂重量,而非单纯手指力量:
- 感受手臂的重量自然沉入指尖
- 手指"放"下去,不是"敲"下去
- 音色更深厚,手指更轻松
### 2. 耳朵倾听
听音色是否饱满、均匀:
- 弹的时候听自己的音色
- 感受力度变化带来的音色变化
- 用耳朵引导手指调节力度
### 3. 肩膀放松
肩膀不耸,保持放松:
- 肩膀耸起会导致力量集中在肩部
- 力量无法顺畅传递到指尖
- 放松肩膀,让手臂重量自然下沉
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 渐强渐弱练习 | 5分钟 | 每天 | 控制力度变化 | 启蒙/入门 |任何
| 音阶力度对比 | 5分钟 | 每天 | 感受不同力度 | 进阶/熟练/精通 |任何
| 练习曲力度处理 | 10分钟 | 每次新曲目 | 实践力度表现 | 进阶 |任何
| 旋律线呼吸 | 5分钟 | 每天 | 乐句起伏处理 | 入门/进阶 |任何
| 触键方式变化 | 5分钟 | 每天 | 多样化音色 | 进阶/熟练 |任何
### 具体操作
**练习1:渐强渐弱**
- 适用级别:启蒙级、入门级
- 弹一个音,从最弱(pp)渐强到最强(ff)
- 再从最强渐弱到最弱
- 感受手指力量的变化
- 目标:能平滑地控制力度起伏
**练习2:音阶力度对比**
- 适用级别:进阶、熟练、精通
- 上行渐强,下行渐弱
- 每个八度换一个力度层次
- 感受音乐的自然起伏
**练习3:旋律线呼吸**
- 适用级别:入门级、进阶级
- 找到乐句的起点和终点
- 起点稍强,呼吸处稍弱
- 像唱歌一样有抑扬顿挫
**练习4:力度层次训练**
- 适用级别:进阶级、熟练级
- ppp - pp - p - mp - mf - f - ff
- 每个力度层次都要能弹得出
- 对比弹奏,感受差异
**练习5:触键方式变化**
- 适用级别:进阶级、熟练级
- 浅触键:轻柔的声音
- 深触键:浑厚的声音
- 快触键:明亮的声音
- 慢触键:温柔的声音
### 常见曲目力度处理
```
《欢乐颂》:
- 主旋律:mf(中等力度)
- 重复句:稍微减弱,体现呼应
- 高潮句:f(加强)
《龙的传人》:
- "黑眼睛黑头发":稍强
- "永永远远是龙的传人":渐强到最强
```
---
## 练习提醒
### ⚠️ 禁忌
- 力度一成不变,从头弹到尾
- 只会用大力,不会用弱音
- 渐变太突然,不自然
### ✓ 正确做法
- 先学会听自己的弹奏
- 多听原版音频,感受力度变化
- 把手臂力量运用到指尖
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 能弹出基本音量变化,力度均匀 |
| 入门 | 能弹出强(f)和弱(p)两种力度 |
| 进阶 | 能做简单的渐强渐弱 |
| 熟练 | 乐句有自然的呼吸和起伏 |
| 精通 | 力度变化丰富,演奏有感染力 |
---
## 相关问题
- [[09_手指不会跑动]] - 上一个问题
- [[11_左右手不协调]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,补充重量弹奏法和耳朵倾听
@@ -0,0 +1,145 @@
# 左右手不协调
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 右手会了左手不会,左手会了右手不会
- 合手时总是错节奏
- 一合手就乱套,要分开才能弹
- 两只手的速度不一样
## 原因分析
- 双手独立性不够
- 缺乏双手配合的系统训练
- 大脑同时控制两手的区域待开发
## 核心解决方案
### 1. 分手练习
先单手练熟,再合手:
- 步骤1:右手单独弹10遍,直到完全记住
- 步骤2:左手单独弹10遍,直到完全记住
- 步骤3:先合3遍慢的,注意合手速度一定要比分手速度慢,确认配合正确
- 步骤4:逐步提速到正常速度
### 2. 节拍器
跟节拍器慢速练习:
- 边弹边数:1-2-3-4
- 确保左右手节奏完全一致
- 从60速开始,逐步提速
### 3. 唱谱法
双手分别唱谱(打节奏),建立独立音乐线条:
- 分别唱出左右手的旋律;打节奏
- 弹左手唱右手;弹右手唱左手
- 唱左手打右手节奏;唱右手打左手节奏
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 分手练习 | 每次新曲目 | 每次 | 各自熟练 | 启蒙/入门 |严重
| 节奏同步训练 | 5分钟 | 每天 | 统一节奏 | 启蒙/入门 |任何
| 双手对位练习 | 10分钟 | 每天 | 协调训练 | 启蒙/入门 |中等
| 难点单独练 | 每次练习 | 每次 | 解决配合问题 | 入门/进阶 |任何
| 双手合奏练习 | 10分钟 | 每天 | 解决配合问题 | 任何 |任何
###具体操作
**练习1:分手→合手**
- 适用级别:启蒙级、入门级
- 步骤1:右手单独弹10遍,直到完全记住
- 步骤2:左手单独弹10遍,直到完全记住
- 步骤3:先合3遍慢的,注意合手速度一定要比分手速度慢,确认配合正确
- 步骤4:逐步提速到正常速度
**练习2:双手对位**
- 适用级别:启蒙级、入门级
- 简单对位:右手弹高音C,左手弹低音C,同时按下
- 节奏对位:右手弹四分音符,左手弹八分音符
**练习3:节奏同步**
- 适用级别:启蒙级、入门级
- 用节拍器,双手同时打拍子
- 边打拍子边数:1-2-3-4
- 确保左右手节奏完全一致
**练习4:难点单独练**
- 适用级别:任何
- 合手时经常出错的地方
- 单独抽出来,放慢速度练
- 练到不出错再放回原速
### 协调性进阶训练
```
方法1:镜像练习
- 双手做对称动作
- 右手上行音阶,左手下行音阶
- 同时开始,同时结束
方法2:交叉练习
- 右手弹高音区,左手弹低音区
- 熟悉键盘位置后再交换
方法3:节奏切分
- 右手弹强拍,左手弹弱拍
- 感受不同拍点的分工
```
---
## 练习提醒
### ⚠️ 禁忌
- 还没分手练熟就急于合手
- 合手出错就停下来重弹
- 双手速度不一致还继续加速
### ✓ 正确做法
- 分手练到形成肌肉记忆
- 合手时先慢练,确认配合正确
- 哪里出错就单独练哪里
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 能简单合手,节奏基本准确 |
| 入门 |能合手简单曲目,不出错
| 进阶 | 能分别用左右手打不同的节奏型 | |
| 熟练 | 能合手中等难度曲目 |
| 精通 | 能驾驭复杂双手配合曲目 |
---
## 相关问题
- [[10_力度不会把握]] - 上一个问题
- [[12_不会用节拍器]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,调整为综合类
@@ -0,0 +1,164 @@
# 不会用节拍器
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 从来不用节拍器
- 不知道节拍器怎么调
- 跟着节拍器反而更乱
- 觉得自己节奏还可以,不需要节拍器
## 原因分析
- 没有建立使用节拍器的习惯
- 对节拍器的作用理解不足
- 内心缺乏稳定的节奏感
## 核心解决方案
### 1. 节拍器基础训练
从慢速开始,建立节奏感:
- 基础速度:60 = 每秒1拍(4/4拍,每小节4秒)
- 新曲目:60速开始,确保弹对
- 熟练后:每3-5天提速5-10
### 2. 跟节拍器方法
打开节拍器,听清楚节奏:
- 脚打拍子,跟上节拍
- 边弹边数:1-2-3-4
- 不抢拍,不拖拍
### 3. 脱节拍器测试
验证内心节奏是否稳定:
- 用节拍器练熟后,关闭节拍器
- 看看还能不能保持速度
- 如果慢了或快了,说明内心节奏不稳
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 节拍器基础训练 | 10分钟 | 每天 | 建立节奏感 | 启蒙/入门 |任何
| 节拍器速度递增练习 | 10分钟 | 每天 | 稳定提速 | 启蒙/入门/进阶/熟练/精通| 任何
| 节奏型节奏练习 | 10分钟 | 每天 | 复杂节奏 | 入门/进阶/熟练/精通 |任何
| 脱节拍器测试 | 5分钟 | 每周 | 验证内心节奏 | 进阶/熟练 |任何
### 具体操作
**练习1:节拍器基础设置**
- 适用级别:启蒙级、入门级
- 认识节拍器:找到TEMPO(速度)旋钮
- 基础速度:60 = 每秒1拍(4/4拍,每小节4秒)
- 速度标记:Largo广板 → Allegro快板 → Presto急板
**练习2:如何选择速度**
- 适用级别:启蒙级、入门级
- 新曲目:60速开始,确保弹对
- 熟练后:每3-5天提速5-10
- 目标速度:根据曲目要求定
**练习3:跟节拍器的方法**
- 适用级别:启蒙级、入门级
- 打开节拍器,听清楚节奏
- 脚打拍子,跟上节拍
- 边弹边数:1-2-3-4
- 不抢拍,不拖拍
**练习4:节拍器关闭测试**
- 适用级别:入门级、进阶级
- 用节拍器练熟后,关闭节拍器
- 看看还能不能保持速度
- 如果慢了或快了,说明内心节奏不稳
**练习5:变速练习**
- 适用级别:进阶级、熟练级
- 一首曲子不同段落用不同速度
- 慢速段落:60-70速
- 中速段落:80-100速
- 快速段落:110-130速
### 常见速度标记
| 术语 | 速度 | 适用 |
|------|------|------|
| Largo | 46-50 | 非常慢抒情 |
| Adagio | 66-76 | 慢速 |
| Andante | 76-108 | 行板(常用) |
| Moderato | 108-120 | 中速 |
| Allegro | 120-168 | 快板(常用) |
| Presto | 168-200 | 急板 |
### 节拍器使用场景
```
场景1:开节拍器
- 学习新曲目时
- 节奏不稳定时
- 需要提速练习时
场景2:关闭节拍器
- 已经练熟
- 想要音乐自由处理
- 考试/表演(没有节拍器)
场景3:半开节拍器
- 只打强拍
- 每小节第一拍
- 作为"拐棍"逐步撤掉
```
---
## 练习提醒
### ⚠️ 禁忌
- 从不用节拍器
- 跟着节拍器但完全合不上
- 速度设置不合理(太快或太慢)
### ✓ 正确做法
- 每天练习都开节拍器
- 从慢速开始,逐步提速
- 练到能"脱节拍器"才算真正掌握
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 能跟节拍器打拍子,知道4/4拍的结构 |
| 入门 | 能设定节拍器速度并跟上 |
| 进阶 | 能用节拍器练习并提速 |
| 熟练 | 能脱节拍器保持稳定速度 |
| 精通 | 能根据曲目处理速度变化 |
---
## 相关问题
- [[11_左右手不协调]] - 上一个问题
- [[13_不会编配指法]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,调整为识谱类
@@ -0,0 +1,129 @@
# 不会编配指法
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 拿到新谱子不知道用什么手指
- 手指不够用,跨来跨去很别扭
- 指法不合理导致弹不顺
- 总是弹错音,换个手指就好了
## 原因分析
- 不了解手指编号和分工
- 缺乏指法编配的基本原则
- 练习时没有养成良好习惯
## 核心解决方案
### 1. 手指编号认知
每个手指都有固定分工:
- 1指(大拇指):最有力,但最短
- 2指(食指):最灵活
- 3指(中指):最长
- 4指(无名指):独立性最差
- 5指(小拇指):最弱,弹高音区
### 2. 五种基本指法规则
穿指、越指、扩指、缩指、顺指:
- 穿指:1指从其他手指下方穿过
- 越指:其他手指从1指上方跨过
- 扩指:相邻的手指弹不相邻的音
- 缩指:相邻的音不用相邻的手指弹
- 顺指:顺着手指自然弹奏(五指手位)
### 3. 指法编配黄金法则
-先找到乐句最高音和最低音,确认手位
- 手位变化越少越好
- 同样结构的乐句用相同的指法
- 避免1、5指上黑键
- 同一首乐曲固定后不用其他指法
-
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 手指编号认知 | 5分钟 | 初次学习 | 熟悉手指分工 | 启蒙/入门 |任何
| 音阶指法练习 | 10分钟 | 每天 | 掌握基本指法 | 进阶/熟练/精通 |任何
| 曲目指法分析 | 10分钟 | 每次新曲目 | 学习编配思路 | 入门/进阶 |任何
| 穿指越指扩指缩指同音换指练习 | 5分钟 | 每天 | 掌握特殊指法 | 进阶/熟练/精通|任何
### 具体操作
**练习1:手指编号认知**
- 适用级别:启蒙级、入门级
- 1指:大拇指
- 2指:食指
- 3指:中指
- 4指:无名指
- 5指:小拇指
**练习2C大调音阶指法**
- 适用级别:进阶
- 右手:1 2 3 1 2 3 4 5(上行)
- 左手:5 4 3 2 1 3 2 1(上行)
- 先分手练指法
- 记住指法后形成肌肉记忆
**练习5:常用指法组合**
- 适用级别:进阶级、熟练级
- 音阶跑动:123 1234 543 5432
- 琶音:5321 5321 5321
- 分解和弦:135 135 246 246
---
## 练习提醒
### ⚠️ 禁忌
- 拿到谱子就弹,不考虑指法
- 指法不顺手也硬撑
- 同一个地方反复弹错
### ✓ 正确做法
- 先研究指法再开始练
- 弹不顺就停下来调整指法
- 复杂指法要单独练
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 知道每个手指的基本编号 |
| 入门 | 认识手指编号 |
| 进阶 | 能独立编配简单曲目的指法 |
| 熟练 | 能处理中等难度曲目的指法 |
| 精通 | 能优化指法,提升演奏流畅度 |
---
## 相关问题
- [[12_不会用节拍器]] - 上一个问题
- [[14_基本功练习]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,调整为综合类
@@ -0,0 +1,201 @@
# 基本功练习
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 不知道每天该练什么
- 直接弹曲子,不练基本功
- 练很久也没有进步
- 手型和技术始终没有提升
## 原因分析
- 缺乏系统化的练习体系
- 不重视基本功训练
- 练习方法不科学
## 核心解决方案
### 1. 音阶琶音
每天必练的基础:
- C大调音阶:入门必学
- G大调音阶:一个升号
- F大调音阶:一个降号
- 练习方法:分手 → 合手 → 提速
### 2. 连奏断奏
两种基本弹奏法:
- 连奏:音与音之间不断开,像水流
- 断奏:音与音之间断开,干净利落
- 两种都要掌握,灵活运用
### 3. 每日练习计划
科学分配练习时间:
- 热身:手部放松操
- 技术:哈农+音阶
- 曲目:练习曲+乐曲
- 循序渐进,不贪快
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |
|---------|------|------|------|---------|
| 哈农练习曲 | 10-15分钟 | 每天 | 手指独立性+支撑 | 启蒙/入门 |
| 音阶练习 | 10分钟 | 每天 | 跑动+识谱 | 启蒙/入门 |
| 琶音练习 | 5-10分钟 | 每天 | 手掌扩展+和弦 | 入门/进阶 |
| 练习曲练习 | 10-15分钟 | 每天 | 技术提升 | 入门/进阶 |
| 每日练习流程 | - | 每天 | 科学练习习惯 | 启蒙/入门 |
### 具体操作
**练习1:哈农练习曲(每日必练)**
- 适用级别:启蒙级、入门级
- 第1条:高抬指基础训练
- 第2条:双音练习
- 第5条:音阶跑动
- 第7条:拇指穿梭
- 重点:每个音都要高抬指、站稳
**练习2:音阶练习(12个大小调)**
- 适用级别:启蒙级、入门级
- C大调音阶:入门必学
- G大调音阶:一个升号
- F大调音阶:一个降号
- 练习方法:分手 → 合手 → 提速
**练习3:琶音练习**
- 适用级别:入门级、进阶级
- 属七和弦琶音
- 减七和弦琶音
- 练习手掌扩展和手指拉伸
**练习4:练习曲练习**
- 适用级别:入门级、进阶级
- 车尔尼599:入门经典
- 布格缪勒:进阶练习
- 每天练习1-2条,不要贪多
**练习5:技术模进**
- 适用级别:进阶级、熟练级
- 各种节奏型练习
- 各种音型练习
- 提升综合技术能力
### 每日练习流程建议
```
入门学员(30分钟/天):
├── 热身5分钟:手部放松操
├── 哈农10分钟:1-2条高抬指
├── 音阶10分钟:1-2个调
└── 曲目5分钟:学习新曲目
进阶学员(45-60分钟/天):
├── 热身5分钟
├── 哈农15分钟:3-5条
├── 音阶15分钟:3-4个调
├── 琶音5分钟
└── 曲目15-20分钟
高级学员(60分钟+/天):
├── 热身5分钟
├── 哈农20分钟:精选条目
├── 音阶+琶音20分钟
├── 技术练习10分钟
└── 曲目+乐理15分钟
```
### 基本功练习要点
```
要点1:高抬指
- 手指抬高后快速下键
- 触键后立即放松
- 其他手指保持不动
要点2:手型支撑
- 掌关节拱起
- 第一关节不塌陷
- 手腕略高于手背
要点3:力量传递
- 手臂重量传到指尖
- 手指支撑住手臂重量
- 音色深厚不虚
要点4:节奏稳定
- 打开节拍器
- 从慢速开始
- 逐步提速
要点5:练习质量
- 慢练是快练的基础
- 分手练是合手的基础
- 精练一首胜过快练十首
```
### 常见基本功问题解决方案
| 问题 | 解决方案 |
|------|---------|
| 手型塌陷 | 高抬指练习,加强支撑 |
| 手指无力 | 哈农+支撑练习 |
| 跑动不均 | 慢练+针对性弱指 |
| 节奏不稳 | 每天开节拍器 |
| 识谱慢 | 每天读新谱 |
---
## 练习提醒
### ⚠️ 禁忌
- 不练基本功,直接弹曲子
- 哈农草草弹一遍就完事
- 只弹喜欢的曲目,不练技术
### ✓ 正确做法
- 每天必练基本功
- 基本功占练习时间50%
- 慢练高质量,不求快
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 掌握基本手型,能弹简单音阶 |
| 入门 | 每天坚持基本功练习 |
| 进阶 | 基本功能涵盖各技术点 |
| 熟练 | 能自主设计练习内容 |
| 精通 | 形成系统化的练习体系 |
---
## 相关问题
- [[13_不会编配指法]] - 上一个问题
- [[15_练习缺乏监督]] - 下一个问题
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,调整为综合类
@@ -0,0 +1,172 @@
# 练习缺乏监督
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
- 回家后不记得练习
- 练习时间不够或偷懒
- 练习方法不固定,随意弹
- 没人督促就懈怠
## 原因分析
- 练习习惯未养成
- 缺乏外部监督机制
- 练习目标不明确
- 成就感不足,缺乏动力
## 核心解决方案
### 1. 练习习惯培养
固定时间、固定时长:
- 设置固定练习时间(如每天晚上7点)
- 手机闹钟提醒
- 形成生物钟习惯
### 2. 录音反馈
录下练习回听:
- 用手机录下练习
- 回听发现问题
- 对比进步,增强信心
### 3. 练习日志
记录每天练习内容:
- 日期、时间、内容、时长
- 问题解决情况
- 第二天要练什么
---
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 | 适用级别 |适用严重程度
|---------|------|------|------|---------|---------|
| 练习计划制定 | 10分钟 | 每周 | 明确目标 | 任何 |任何
| 练习打卡 | 每次练习 | 每天 | 记录习惯 | 任何 |任何
| 练习反馈 | 5分钟 | 每次练习 | 自我监督 | 任何 |任何
| 录音回听 | 5分钟 | 每次练习 | 发现问题 | 任何 |任何
| 目标可视化 | - | 每天 | 增强动力 | 任何|任何
### 具体操作
**练习1:制定周练习计划**
- 适用级别:任何
- 每周日制定本周练习安排
- 具体到每天练什么、练多久
- 写在纸上或手机备忘录
**练习2:练习打卡**
- 适用级别:任何
- 用练习记录表打卡
- 记录:日期、时间、内容、时长
- 可使用钢琴学习APP辅助
**练习3:自我检查**
- 适用级别:任何
- 每次练习前回顾上次问题
- 练习后检查是否解决
- 录音回放,发现问题
**练习4:设置提醒**
- 适用级别:任何
- 手机闹钟提醒练习时间
- 固定时间固定地点练习
- 形成生物钟习惯
**练习5:目标可视化**
- 适用级别:任何
- 贴练习计划在琴边
- 完成打勾,看到进度
- 积累成就感
### 提升练习动力的方法
```
方法1:设置小目标
- 本周学会一小段
- 这个月能弹完整首
- 达成后给自己奖励
方法2:社交动力
- 在群里分享练习成果
- 互相点赞鼓励
- 参加汇报演出
方法3:可视化进步
- 定期录像对比
- 记录从不会到会的过程
- 看到自己的成长
```
### 每日练习建议流程
```
开始前(2分钟):
├── 回忆上次练习的问题
└── 明确今天练习目标
练习中(按照计划):
├── 热身:哈农5分钟
├── 技术:音阶/琶音10分钟
└── 曲目:练习曲/乐曲15分钟
结束后(3分钟):
├── 检查今天的问题是否解决
├── 记录练习情况
└── 预习明天要练的内容
```
---
## 练习提醒
### ⚠️ 禁忌
- 三天打鱼两天晒网
- 练习时间不固定
- 练错了没人纠正
### ✓ 正确做法
- 固定练习时间
- 每天坚持,哪怕15分钟
- 记录练习情况,定期复盘
---
## 评估标准
| 等级 | 标准 |
|------|------|
| 启蒙 | 有固定练习时间概念,能完成简单练习计划 |
| 入门 | 能保证基本练习时间 |
| 进阶 | 练习有计划、有记录 |
| 熟练 | 形成自动化的练习习惯 |
| 精通 | 能自主制定和调整练习计划 |
---
## 相关问题
- [[14_基本功练习]] - 上一个问题
- [[01_手小]] - 返回总览
- [[模板_针对性练习建议]] - 查看模板
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V2.0
> **创建时间**2026-04-17
> **更新时间**2026-04-19
> **适用场景**:成人钢琴集体课学员个性化辅导
> **更新说明**:增加启蒙级评估标准,增加适用级别列,调整为综合类
@@ -0,0 +1,74 @@
# {{问题名称}}
> 所属系列:钢琴学习常见问题针对性练习建议
> 配合目标体系使用,针对性补齐短板
---
## 问题表现
<!-- 描述学员在这个问题上的具体表现症状 -->
- 示例:弹奏时手腕紧贴琴键或琴面
## 原因分析
<!-- 分析导致该问题的可能原因 -->
- 示例:手腕力量支撑不足
## 针对性练习方案
### 日常基础练习
| 练习名称 | 时长 | 频率 | 目的 |
|---------|------|------|------|
| 练习1 | X分钟 | 每天 | 目的1 |
| 练习2 | X分钟 | 每天 | 目的2 |
| 练习3 | X分钟 | 每天 | 目的3 |
### 具体操作
```
<!-- 详细的练习步骤,使用代码块格式便于复制 -->
练习1:练习名称
- 动作要点1
- 动作要点2
- 动作要点3
```
## 练习提醒
### ⚠️ 禁忌
- 禁忌1
- 禁忌2
### ✓ 正确做法
- 正确做法1
- 正确做法2
## 评估标准
| 等级 | 标准 |
|------|------|
| 入门 | 能达到的标准 |
| 进阶 | 能达到的标准 |
| 熟练 | 能达到的标准 |
| 精通 | 能达到的标准 |
---
## 相关问题
- [[01_手小]] - 返回总览
- [[03_节奏感差]] - 下一个问题
- [[针对性练习建议_汇总版]] - 查看完整合集
---
> **版本**V1.0
> **创建时间**2026-04-17
> **适用场景**:成人钢琴集体课学员个性化辅导
@@ -0,0 +1,130 @@
# 钢琴学习常见问题 · 针对性练习建议(汇总版)
> 包含所有常见问题的完整合集,便于快速查阅
> 配合目标体系使用,针对性补齐短板
---
## 目录
| 编号 | 问题 | 文件 |
|------|------|------|
| 01 | 手小 | [[01_手小]] |
| 02 | 识谱慢 | [[02_识谱慢]] |
| 03 | 节奏感差 | [[03_节奏感差]] |
| 04 | 压手腕 | [[04_压手腕]] |
| 05 | 掌关节支撑差 | [[05_掌关节支撑差]] |
| 06 | 第一关节支撑差 | [[06_第一关节支撑差]] |
| 07 | 对键盘不熟悉 | [[07_对键盘不熟悉]] |
| 08 | 手指僵硬、紧张 | [[08_手指僵硬_紧张]] |
| 09 | 手指不会跑动 | [[09_手指不会跑动]] |
| 10 | 力度不会把握 | [[10_力度不会把握]] |
| 11 | 左右手不协调 | [[11_左右手不协调]] |
| 12 | 不会用节拍器 | [[12_不会用节拍器]] |
| 13 | 不会编配指法 | [[13_不会编配指法]] |
| 14 | 基本功练习 | [[14_基本功练习]] |
| 15 | 练习缺乏监督 | [[15_练习缺乏监督]] |
---
## 问题速查表
| 问题 | 严重程度 | 优先级 | 相关维度 |
|------|---------|--------|---------|
| 手小 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 识谱慢 | □轻微 □中等 □严重 | ★★★ | 识谱能力 |
| 节奏感差 | □轻微 □中等 □严重 | ★★★ | 节奏控制 |
| 压手腕 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 掌关节支撑差 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 第一关节支撑差 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 对键盘不熟悉 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 手指僵硬、紧张 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 手指不会跑动 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 力度不会把握 | □轻微 □中等 □严重 | ★★★ | 音乐表现 |
| 左右手不协调 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 不会用节拍器 | □轻微 □中等 □严重 | ★★★ | 节奏控制 |
| 不会编配指法 | □轻微 □中等 □严重 | ★★★ | 弹奏技术 |
| 基本功练习 | □轻微 □中等 □严重 | ★★★ | 综合基础 |
| 练习缺乏监督 | □轻微 □中等 □严重 | ★★★ | 练习习惯 |
---
## 快速定位
### 按问题类型
**技术类问题**
- 手小 → [[01_手小]]
- 压手腕 → [[04_压手腕]]
- 掌关节支撑差 → [[05_掌关节支撑差]]
- 第一关节支撑差 → [[06_第一关节支撑差]]
- 手指僵硬、紧张 → [[08_手指僵硬_紧张]]
- 手指不会跑动 → [[09_手指不会跑动]]
- 左右手不协调 → [[11_左右手不协调]]
- 不会编配指法 → [[13_不会编配指法]]
- 基本功练习 → [[14_基本功练习]]
**认知类问题**
- 识谱慢 → [[02_识谱慢]]
- 对键盘不熟悉 → [[07_对键盘不熟悉]]
**节奏类问题**
- 节奏感差 → [[03_节奏感差]]
- 不会用节拍器 → [[12_不会用节拍器]]
**表现类问题**
- 力度不会把握 → [[10_力度不会把握]]
---
## 使用流程
### 学员端
1. 填写学员问题自评表
2. 标记问题严重程度
3. 对照问题找到对应文件
4. 按照练习方案执行
### 教师端
1. 收集学员自评结果
2. 识别主要问题(1-2个)
3. 打印或发送对应练习文件
4. 每次课后跟踪改善情况
5. 定期(每2周)重新评估
---
## 评估维度对照
| 问题 | 对应目标维度 | 评估等级 |
|------|-------------|---------|
| 识谱慢 | 识谱能力 | L1-L5 |
| 节奏感差 | 节奏控制 | L1-L5 |
| 手小 | 弹奏技术 | L1-L5 |
| 压手腕 | 弹奏技术 | L1-L5 |
| 掌关节支撑差 | 弹奏技术 | L1-L5 |
| 第一关节支撑差 | 弹奏技术 | L1-L5 |
| 对键盘不熟悉 | 弹奏技术 | L1-L5 |
| 手指僵硬、紧张 | 弹奏技术 | L1-L5 |
| 手指不会跑动 | 弹奏技术 | L1-L5 |
| 力度不会把握 | 音乐表现 | L1-L5 |
| 左右手不协调 | 弹奏技术 | L1-L5 |
| 不会用节拍器 | 节奏控制 | L1-L5 |
| 不会编配指法 | 弹奏技术 | L1-L5 |
| 基本功练习 | 综合基础 | L1-L5 |
| 练习缺乏监督 | 练习习惯 | L1-L5 |
---
## 模板文件
- [[模板_针对性练习建议]] - 查看文件模板
---
> **版本**V1.1
> **创建时间**2026-04-17
> **更新时间**2026-04-17
> **适用场景**:成人钢琴集体课学员个性化辅导
@@ -0,0 +1,553 @@
# 目标管理模块实现计划
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development or superpowers:executing-plans to implement this plan.
**Goal:** 实现目标管理模块,支持目标的CRUD、目标间的DAG关联、与学员的关联记录
**Architecture:** 使用Flask-SQLAlchemy定义数据模型,通过RESTful API暴露接口,前端复用现有EasyMDE和星级组件
**Tech Stack:** Flask, SQLite, SQLAlchemy, EasyMDE
---
## 文件结构
```
app/
├── models.py # Goal, GoalRelation, StudentGoal 模型
├── routes/
│ ├── goals.py # 目标 CRUD + 关联管理 API
│ └── student_goals.py # 学员目标 API
└── templates/
├── goals.html # 目标管理页面
└── student.html # 扩展学员详情页的目标区块
docs/
└── superpowers/plans/
└── 2026-04-23-goal-management.md # 设计文档
```
---
## Task 1: 数据模型
**Files:**
- Modify: `app/models.py:193-240` (在 PracticePlan 之前添加新模型)
- [ ] **Step 1: 在 models.py 添加 Goal 模型**
```python
class Goal(db.Model):
"""目标表"""
__tablename__ = "goals"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
content = db.Column(db.Text)
created_at = db.Column(db.DateTime, default=datetime.now)
updated_at = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)
def to_dict(self):
return {
"id": self.id,
"name": self.name,
"content": self.content,
"created_at": self.created_at.isoformat() if self.created_at else None,
"updated_at": self.updated_at.isoformat() if self.updated_at else None,
}
```
- [ ] **Step 2: 在 models.py 添加 GoalRelation 模型**
```python
class GoalRelation(db.Model):
"""目标关联表 - 自关联多对多"""
__tablename__ = "goal_relations"
parent_goal_id = db.Column(db.Integer, db.ForeignKey("goals.id"), primary_key=True)
child_goal_id = db.Column(db.Integer, db.ForeignKey("goals.id"), primary_key=True)
parent = db.relationship("Goal", foreign_keys=[parent_goal_id], backref="child_relations")
child = db.relationship("Goal", foreign_keys=[child_goal_id], backref="parent_relations")
```
- [ ] **Step 3: 在 models.py 添加 StudentGoal 模型**
```python
class StudentGoal(db.Model):
"""学员目标记录表"""
__tablename__ = "student_goals"
id = db.Column(db.Integer, primary_key=True)
student_id = db.Column(db.Integer, db.ForeignKey("students.id"), nullable=False)
goal_id = db.Column(db.Integer, db.ForeignKey("goals.id"), nullable=False)
status = db.Column(db.String(20), default="未开始") # 未开始/进行中/已完成
mastery_level = db.Column(db.Integer, default=1) # 1-5
deadline = db.Column(db.DateTime)
completed_at = db.Column(db.DateTime)
created_at = db.Column(db.DateTime, default=datetime.now)
student = db.relationship("Student", backref="goal_records")
goal = db.relationship("Goal")
def to_dict(self):
return {
"id": self.id,
"student_id": self.student_id,
"goal_id": self.goal_id,
"goal_name": self.goal.name if self.goal else None,
"status": self.status,
"mastery_level": self.mastery_level,
"deadline": self.deadline.isoformat() if self.deadline else None,
"completed_at": self.completed_at.isoformat() if self.completed_at else None,
}
```
- [ ] **Step 4: 运行 lint 验证**
Run: `lsp_diagnostics('app/models.py')`
- [ ] **Step 5: 提交**
```bash
git add app/models.py
git commit -m "feat: 添加 Goal, GoalRelation, StudentGoal 模型"
```
---
## Task 2: 目标 CRUD API
**Files:**
- Create: `app/routes/goals.py`
- [ ] **Step 1: 创建 routes/goals.py**
```python
from flask import Blueprint, request, jsonify
from app.models import db, Goal
from app.routes.auth import login_required_json
goals_bp = Blueprint("goals", __name__)
@goals_bp.route("/api/goals", methods=["GET"])
@login_required_json
def get_goals():
goals = Goal.query.order_by(Goal.created_at.desc()).all()
return jsonify([g.to_dict() for g in goals])
@goals_bp.route("/api/goals", methods=["POST"])
@login_required_json
def create_goal():
data = request.get_json()
goal = Goal(name=data["name"], content=data.get("content", ""))
db.session.add(goal)
db.session.commit()
return jsonify(goal.to_dict()), 201
@goals_bp.route("/api/goals/<int:goal_id>", methods=["GET"])
@login_required_json
def get_goal(goal_id):
goal = Goal.query.get_or_404(goal_id)
return jsonify(goal.to_dict())
@goals_bp.route("/api/goals/<int:goal_id>", methods=["PUT"])
@login_required_json
def update_goal(goal_id):
goal = Goal.query.get_or_404(goal_id)
data = request.get_json()
if "name" in data:
goal.name = data["name"]
if "content" in data:
goal.content = data["content"]
db.session.commit()
return jsonify(goal.to_dict())
@goals_bp.route("/api/goals/<int:goal_id>", methods=["DELETE"])
@login_required_json
def delete_goal(goal_id):
goal = Goal.query.get_or_404(goal_id)
db.session.delete(goal)
db.session.commit()
return jsonify({"message": "删除成功"})
```
- [ ] **Step 2: 在 app/routes/__init__.py 注册蓝图**
```python
from app.routes import goals
app.register_blueprint(goals.goals_bp)
```
- [ ] **Step 3: 运行 lint 验证**
Run: `lsp_diagnostics('app/routes/goals.py')`
- [ ] **Step 4: 提交**
```bash
git add app/routes/goals.py app/routes/__init__.py
git commit -m "feat: 目标 CRUD API"
```
---
## Task 3: 目标关联 API + 循环检测
**Files:**
- Modify: `app/routes/goals.py` (添加关联接口)
- [ ] **Step 1: 添加循环检测函数**
```python
def _has_cycle(parent_id, child_id):
"""检测添加 child_id 作为 parent_id 的子目标是否会形成循环"""
visited = set()
stack = [child_id]
while stack:
current = stack.pop()
if current == parent_id:
return True
if current in visited:
continue
visited.add(current)
for rel in GoalRelation.query.filter_by(parent_goal_id=current).all():
stack.append(rel.child_goal_id)
return False
```
- [ ] **Step 2: 添加关联接口**
```python
@goals_bp.route("/api/goals/<int:goal_id>/children", methods=["GET"])
@login_required_json
def get_goal_children(goal_id):
relations = GoalRelation.query.filter_by(parent_goal_id=goal_id).all()
child_ids = [r.child_goal_id for r in relations]
children = Goal.query.filter(Goal.id.in_(child_ids)).all() if child_ids else []
return jsonify([c.to_dict() for c in children])
@goals_bp.route("/api/goals/<int:goal_id>/parents", methods=["GET"])
@login_required_json
def get_goal_parents(goal_id):
relations = GoalRelation.query.filter_by(child_goal_id=goal_id).all()
parent_ids = [r.parent_goal_id for r in relations]
parents = Goal.query.filter(Goal.id.in_(parent_ids)).all() if parent_ids else []
return jsonify([p.to_dict() for p in parents])
@goals_bp.route("/api/goals/<int:goal_id>/children", methods=["POST"])
@login_required_json
def add_goal_child(goal_id):
data = request.get_json()
child_id = data["child_goal_id"]
if goal_id == child_id:
return jsonify({"error": "不能将目标关联到自身"}), 400
if _has_cycle(goal_id, child_id):
return jsonify({"error": "添加此关联会形成循环引用"}), 400
# 检查是否已存在
existing = GoalRelation.query.filter_by(parent_goal_id=goal_id, child_goal_id=child_id).first()
if existing:
return jsonify({"error": "关联已存在"}), 400
relation = GoalRelation(parent_goal_id=goal_id, child_goal_id=child_id)
db.session.add(relation)
db.session.commit()
return jsonify({"message": "添加成功"})
@goals_bp.route("/api/goals/<int:goal_id>/children/<int:child_id>", methods=["DELETE"])
@login_required_json
def remove_goal_child(goal_id, child_id):
relation = GoalRelation.query.filter_by(parent_goal_id=goal_id, child_goal_id=child_id).first()
if relation:
db.session.delete(relation)
db.session.commit()
return jsonify({"message": "移除成功"})
```
- [ ] **Step 3: 运行 lint 验证**
Run: `lsp_diagnostics('app/routes/goals.py')`
- [ ] **Step 4: 提交**
```bash
git add app/routes/goals.py
git commit -m "feat: 目标关联 API + 循环检测"
```
---
## Task 4: 学员目标 API
**Files:**
- Create: `app/routes/student_goals.py`
- [ ] **Step 1: 创建 student_goals.py**
```python
from flask import Blueprint, request, jsonify
from app.models import db, Student, Goal, StudentGoal
from app.routes.auth import login_required_json
from datetime import datetime
student_goals_bp = Blueprint("student_goals", __name__)
@student_goals_bp.route("/api/students/<int:student_id>/goals", methods=["GET"])
@login_required_json
def get_student_goals(student_id):
Student.query.get_or_404(student_id)
records = StudentGoal.query.filter_by(student_id=student_id).all()
return jsonify([r.to_dict() for r in records])
@student_goals_bp.route("/api/students/<int:student_id>/goals", methods=["POST"])
@login_required_json
def add_student_goal(student_id):
Student.query.get_or_404(student_id)
data = request.get_json()
goal_id = data["goal_id"]
# 检查目标是否存在
Goal.query.get_or_404(goal_id)
# 检查是否已添加
existing = StudentGoal.query.filter_by(student_id=student_id, goal_id=goal_id).first()
if existing:
return jsonify({"error": "该目标已添加"}), 400
record = StudentGoal(
student_id=student_id,
goal_id=goal_id,
status="未开始",
mastery_level=1
)
db.session.add(record)
db.session.commit()
return jsonify(record.to_dict()), 201
@student_goals_bp.route("/api/students/<int:student_id>/goals/<int:goal_id>", methods=["PUT"])
@login_required_json
def update_student_goal(student_id, goal_id):
record = StudentGoal.query.filter_by(student_id=student_id, goal_id=goal_id).first_or_404()
data = request.get_json()
if "status" in data:
record.status = data["status"]
if data["status"] == "已完成":
record.completed_at = datetime.now()
if "mastery_level" in data:
record.mastery_level = data["mastery_level"]
if "deadline" in data:
record.deadline = datetime.fromisoformat(data["deadline"]) if data["deadline"] else None
db.session.commit()
return jsonify(record.to_dict())
@student_goals_bp.route("/api/students/<int:student_id>/goals/<int:goal_id>", methods=["DELETE"])
@login_required_json
def remove_student_goal(student_id, goal_id):
record = StudentGoal.query.filter_by(student_id=student_id, goal_id=goal_id).first_or_404()
db.session.delete(record)
db.session.commit()
return jsonify({"message": "移除成功"})
```
- [ ] **Step 2: 在 app/routes/__init__.py 注册蓝图**
```python
from app.routes import student_goals
app.register_blueprint(student_goals.student_goals_bp)
```
- [ ] **Step 3: 运行 lint 验证**
Run: `lsp_diagnostics('app/routes/student_goals.py')`
- [ ] **Step 4: 提交**
```bash
git add app/routes/student_goals.py app/routes/__init__.py
git commit -m "feat: 学员目标 API"
```
---
## Task 5: 目标管理页面
**Files:**
- Create: `app/templates/goals.html`
- [ ] **Step 1: 创建 goals.html**
参考现有模板结构,包含:
- 目标列表(树状或平铺)
- 创建/编辑目标 Modal(使用 EasyMDE
- 关联管理(添加/移除子目标)
- [ ] **Step 2: 添加路由**
```python
@goals_bp.route("/goals")
@login_required_json
def goals_page():
return render_template("goals.html")
```
- [ ] **Step 3: 运行 lint 验证**
Run: `lsp_diagnostics('app/templates/goals.html')`
- [ ] **Step 4: 提交**
```bash
git add app/templates/goals.html app/routes/goals.py
git commit -m "feat: 目标管理页面"
```
---
## Task 6: 学员详情页目标区块
**Files:**
- Modify: `app/templates/student.html`
- [ ] **Step 1: 在 student.html 添加目标区块**
在现有问题记录和练习方案之间添加目标区块:
- 显示学员目标列表(名称、状态、★完成度、截止日期)
- 添加/移除目标
- 编辑目标状态
- [ ] **Step 2: 添加 JS 函数**
- `loadGoals()` - 加载目标列表
- `renderGoalList()` - 渲染目标
- `showAddGoalModal()` - 显示添加目标弹窗
- `saveAddGoal()` - 保存添加
- `updateGoalStatus()` - 更新状态
- [ ] **Step 3: 运行 lint 验证**
Run: `lsp_diagnostics('app/templates/student.html')`
- [ ] **Step 4: 提交**
```bash
git add app/templates/student.html
git commit -m "feat: 学员详情页目标区块"
```
---
## Task 7: 数据库迁移
**Files:**
- Modify: `app/__init__.py` (在 db.create_all() 之前添加迁移逻辑)
- [ ] **Step 1: 添加表存在性检测和创建**
`create_app()` 中 db.create_all() 之后添加:
```python
# 检查 goals 表是否存在,不存在则创建
result = db.session.execute(
text("SELECT name FROM sqlite_master WHERE type='table' AND name='goals'")
)
if not result.fetchone():
db.session.execute(text("""
CREATE TABLE goals (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(100) NOT NULL,
content TEXT,
created_at DATETIME,
updated_at DATETIME
)
"""))
db.session.commit()
# 检查 goal_relations 表
result = db.session.execute(
text("SELECT name FROM sqlite_master WHERE type='table' AND name='goal_relations'")
)
if not result.fetchone():
db.session.execute(text("""
CREATE TABLE goal_relations (
parent_goal_id INTEGER NOT NULL,
child_goal_id INTEGER NOT NULL,
PRIMARY KEY (parent_goal_id, child_goal_id),
FOREIGN KEY (parent_goal_id) REFERENCES goals(id),
FOREIGN KEY (child_goal_id) REFERENCES goals(id)
)
"""))
db.session.commit()
# 检查 student_goals 表
result = db.session.execute(
text("SELECT name FROM sqlite_master WHERE type='table' AND name='student_goals'")
)
if not result.fetchone():
db.session.execute(text("""
CREATE TABLE student_goals (
id INTEGER PRIMARY KEY AUTOINCREMENT,
student_id INTEGER NOT NULL,
goal_id INTEGER NOT NULL,
status VARCHAR(20) DEFAULT '未开始',
mastery_level INTEGER DEFAULT 1,
deadline DATETIME,
completed_at DATETIME,
created_at DATETIME,
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (goal_id) REFERENCES goals(id)
)
"""))
db.session.commit()
```
- [ ] **Step 2: 提交**
```bash
git add app/__init__.py
git commit -m "feat: 数据库迁移脚本 - goals, goal_relations, student_goals 表"
```
---
## Task 8: 更新文档
**Files:**
- Modify: `docs/MODELS.md` (添加新表说明)
- Modify: `docs/API.md` (添加新 API 说明)
- Modify: `docs/STRUCTURE.md` (添加新文件)
- [ ] **Step 1: 更新 MODELS.md**
添加 Goal, GoalRelation, StudentGoal 表说明
- [ ] **Step 2: 更新 API.md**
添加目标 API 和学员目标 API 说明
- [ ] **Step 3: 提交**
```bash
git add docs/MODELS.md docs/API.md docs/STRUCTURE.md
git commit -m "docs: 更新文档 - 目标管理模块"
```
---
## 验证清单
- [ ]goals 表创建成功
- [ ]goal_relations 表创建成功
- [ ]student_goals 表创建成功
- [ ] 目标 CRUD API 测试通过
- [ ] 目标关联 API 测试通过(包含循环检测)
- [ ] 学员目标 API 测试通过
- [ ] 目标管理页面可访问
- [ ] 学员详情页目标区块正常显示
- [ ] 星级显示正确(1-5 → ★-★★★★★)
@@ -0,0 +1,143 @@
# 目标管理模块设计
> 日期:2026-04-23
> 状态:待评审
## 概述
目标管理模块用于管理系统化的钢琴学习目标,支持目标间的多对多关联(DAG结构),以及目标与学员的关联记录。
## 数据模型
### 1. Goal (目标)
| 字段 | 类型 | 说明 |
|------|------|------|
| id | Integer | 主键,自增 |
| name | String(100) | 目标名称,必填 |
| content | Text | Markdown 格式详细内容 |
| created_at | DateTime | 创建时间 |
| updated_at | DateTime | 更新时间 |
### 2. GoalRelation (目标关联 - 自关联多对多)
| 字段 | 类型 | 说明 |
|------|------|------|
| parent_goal_id | Integer | 外键 → goals.id |
| child_goal_id | Integer | 外键 → goals.id |
| PRIMARY KEY | (parent_goal_id, child_goal_id) | 联合主键 |
**约束**
- 禁止循环引用(A→B→C→A
- 自关联:goal 可以是自身的父/子节点
### 3. StudentGoal (学员目标记录)
| 字段 | 类型 | 说明 |
|------|------|------|
| id | Integer | 主键,自增 |
| student_id | Integer | 外键 → students.id |
| goal_id | Integer | 外键 → goals.id |
| status | String(20) | 状态:未开始/进行中/已完成 |
| mastery_level | Integer | 完成度:1-51最少,5最精通) |
| deadline | DateTime | 截止日期 |
| completed_at | DateTime | 完成日期 |
| created_at | DateTime | 创建时间 |
**显示规则**
- `mastery_level` 直接渲染为对应数量的五角星(★)
---
## API 接口
### 目标管理
```
GET /api/goals # 获取所有目标
POST /api/goals # 创建目标
GET /api/goals/<id> # 获取目标详情
PUT /api/goals/<id> # 更新目标
DELETE /api/goals/<id> # 删除目标
```
### 目标关联
```
GET /api/goals/<id>/parents # 获取父目标列表
GET /api/goals/<id>/children # 获取子目标列表
POST /api/goals/<id>/children # 添加子目标关联
DELETE /api/goals/<id>/children/<child_id> # 移除关联
```
### 学员目标
```
GET /api/students/<student_id>/goals # 获取学员的目标列表
POST /api/students/<student_id>/goals # 为学员添加目标
PUT /api/students/<student_id>/goals/<goal_id> # 更新学员目标状态
DELETE /api/students/<student_id>/goals/<goal_id> # 移除学员的目标
```
---
## 循环引用检测
在添加关联时必须检测:
```python
def has_cycle(goal_id, new_child_id):
"""检测添加 new_child_id 作为 goal_id 的子目标是否会形成循环"""
visited = set()
stack = [new_child_id]
while stack:
current = stack.pop()
if current == goal_id:
return True # 发现循环
if current in visited:
continue
visited.add(current)
# 获取 current 的所有子目标,继续检测
for child in get_children(current):
stack.append(child)
return False
```
---
## 前端页面
### 1. 目标管理页面 (`/goals`)
- 目标列表(可树状展示)
- 创建/编辑/删除目标
- 目标内容 Markdown 编辑器
- 关联管理(拖拽或选择器添加关联)
### 2. 学员详情页目标区块
在现有 `student.html` 中扩展:
- 显示学员的目标列表
- 每项目标显示:名称、状态、★完成度、截止日期
- 可添加/移除/编辑目标
- 状态变更触发刷新
---
## 实现顺序
1. **数据模型** - goals, goal_relations, student_goals 表
2. **目标 CRUD API** - 基础的增删改查
3. **目标关联 API** - 关联管理 + 循环检测
4. **学员目标 API** - 学员与目标的关联管理
5. **目标管理页面** - 目标列表 + 关联管理
6. **学员详情页扩展** - 目标区块
---
## 依赖关系
- 无外部依赖
- 复用现有的 Markdown 编辑器(EasyMDE)和星级组件