Skip to content

Repository files navigation

listen

完全离线的 Android 原生 Kotlin 应用,用于日常听力训练、歌曲转录和五度圈练习。听力训练对齐 JustinGuitar Ear Training Grade 1–4 课程结构。

功能

听力训练(JustinGuitar 课程对齐)

  • Grade 1:完全音程(纯五度 → 纯四度 → 纯八度)
  • Grade 2:大音程(大二度、大三度)+ 声乐辅助
  • Grade 3:小音程(小三度、小二度)+ 内心指板
  • Grade 4:七和弦辨听(CQR / SSR / CPR)+ 全音程
  • Play What You Hear:Justin 核心练习 — 听到旋律,判断移动方向和距离
  • 分级测试:每级 20 题、75% 通过线、自动解锁下一级
  • 原创拨弦 PCM 合成,无第三方课程音频

歌曲转录

  • 本地音频导入(SAF)、保持音高变速(0.5×–1.25×)
  • AB 循环、波形显示、时间标记(段落/和弦/旋律/节奏/笔记)
  • ±5 秒快进快退

五度圈

  • 双层可交互五度圈(外圈大调、内圈小调)
  • 调号、音阶、调内和弦、常用进行
  • 四类测验:相邻调、关系调、调号、调内和弦

进度与计划

  • 每日练习计划(基于当前 Grade 自适应)
  • 连续练习天数、7/30 天统计
  • 听力等级进度追踪(Grade 1–4 测试历史)
  • 完全离线:无账号、广告、后端或网络权限

构建

.\gradlew.bat :app:assembleDebug :app:testDebugUnitTest :app:lintDebug --no-daemon --max-workers=1

Debug APK 输出:app/build/outputs/apk/debug/app-debug.apk

设备测试需要 Android 8.0(API 26)或更高版本:

.\gradlew.bat :app:connectedDebugAndroidTest --no-daemon --max-workers=1

技术栈

  • Kotlin、Jetpack Compose、Material 3、Navigation Compose
  • Room(本地数据库)、DataStore(设置)
  • Media3 ExoPlayer(音频播放)
  • 原创 PluckedStringSynth(拨弦 PCM 合成 + AudioTrack)
  • JDK 17、minSdk 26、compileSdk/targetSdk 36

About

Offline Android ear training, transcription, and circle of fifths practice app built with Kotlin and Jetpack Compose.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages