Skip to content

Commit

Permalink
Corrections for Indian notation systems
Browse files Browse the repository at this point in the history
  • Loading branch information
thetwom committed May 23, 2023
1 parent 1469441 commit 777bdbb
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 55 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ android {
applicationId "de.moekadu.tuner"
minSdkVersion 23
targetSdkVersion 33
versionCode 27
versionName "6.1.0"
versionCode 28
versionName "6.2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
resourceConfigurations += ['cs', 'de', 'en', 'fr']
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/de/moekadu/tuner/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ class MainActivity : AppCompatActivity() {
currentPrefs.referenceFrequency,
preferenceResources.noteNamePrinter.value
)
preferenceBarContainer.setSharpFlatPreferenceVisibility(
it.hasSharpFlatCounterpart
)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ class NoteNamePrinter(
private val context: Context,
val sharpFlatPreference: SharpFlatPreference,
private val noteResourceIds: Map<NoteNameStem, Int>,
val noteNameWidth: MaxNoteNameWidth
val noteNameWidth: MaxNoteNameWidth,
val hasSharpFlatCounterpart: Boolean = true
) {
enum class MaxNoteNameWidth {
SingleLetter, // C, D, E, ... or similar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,38 +49,30 @@ private val noteCarnaticResourceIds = mapOf(
NoteNameStem(BaseNote.C) to R.string.sa_carnatic,
NoteNameStem(BaseNote.C, NoteModifier.Sharp, BaseNote.D, NoteModifier.Flat) to R.string.ri1_carnatic,
NoteNameStem(BaseNote.D) to R.string.ri2_carnatic,
NoteNameStem(BaseNote.None, enharmonicBaseNote = BaseNote.D) to R.string.ga1_carnatic,
NoteNameStem(BaseNote.D, NoteModifier.Sharp, BaseNote.E, NoteModifier.Flat) to R.string.ri3_carnatic,
NoteNameStem(BaseNote.E, NoteModifier.Flat, BaseNote.D, NoteModifier.Sharp) to R.string.ga2_carnatic,
NoteNameStem(BaseNote.E) to R.string.ga3_carnatic,
NoteNameStem(BaseNote.D, NoteModifier.Sharp, BaseNote.E, NoteModifier.Flat) to R.string.ga1_carnatic,
NoteNameStem(BaseNote.E) to R.string.ga2_carnatic,
NoteNameStem(BaseNote.F) to R.string.ma1_carnatic,
NoteNameStem(BaseNote.F, NoteModifier.Sharp, BaseNote.G, NoteModifier.Flat) to R.string.ma2_carnatic,
NoteNameStem(BaseNote.G) to R.string.pa_carnatic,
NoteNameStem(BaseNote.G, NoteModifier.Sharp, BaseNote.A, NoteModifier.Flat) to R.string.dha1_carnatic,
NoteNameStem(BaseNote.A) to R.string.ni1_carnatic,
NoteNameStem(BaseNote.None, enharmonicBaseNote = BaseNote.A) to R.string.dha2_carnatic,
NoteNameStem(BaseNote.A, NoteModifier.Sharp, BaseNote.B, NoteModifier.Flat) to R.string.ni2_carnatic,
NoteNameStem(BaseNote.B, NoteModifier.Flat, BaseNote.A, NoteModifier.Sharp) to R.string.dha3_carnatic,
NoteNameStem(BaseNote.B) to R.string.ni3_carnatic,
NoteNameStem(BaseNote.A) to R.string.dha2_carnatic,
NoteNameStem(BaseNote.A, NoteModifier.Sharp, BaseNote.B, NoteModifier.Flat) to R.string.ni1_carnatic,
NoteNameStem(BaseNote.B) to R.string.ni2_carnatic,
)

private val noteHindustaniResourceIds = mapOf(
NoteNameStem(BaseNote.C) to R.string.sa_hindustani,
NoteNameStem(BaseNote.C, NoteModifier.Sharp, BaseNote.D, NoteModifier.Flat) to R.string.re1_hindustani,
NoteNameStem(BaseNote.D) to R.string.re2_hindustani,
NoteNameStem(BaseNote.None, enharmonicBaseNote = BaseNote.D) to R.string.ga1_hindustani,
NoteNameStem(BaseNote.D, NoteModifier.Sharp, BaseNote.E, NoteModifier.Flat) to R.string.re3_hindustani,
NoteNameStem(BaseNote.E, NoteModifier.Flat, BaseNote.D, NoteModifier.Sharp) to R.string.ga2_hindustani,
NoteNameStem(BaseNote.E) to R.string.ga3_hindustani,
NoteNameStem(BaseNote.D, NoteModifier.Sharp, BaseNote.E, NoteModifier.Flat) to R.string.ga1_hindustani,
NoteNameStem(BaseNote.E) to R.string.ga2_hindustani,
NoteNameStem(BaseNote.F) to R.string.ma1_hindustani,
NoteNameStem(BaseNote.F, NoteModifier.Sharp, BaseNote.G, NoteModifier.Flat) to R.string.ma2_hindustani,
NoteNameStem(BaseNote.G) to R.string.pa_hindustani,
NoteNameStem(BaseNote.G, NoteModifier.Sharp, BaseNote.A, NoteModifier.Flat) to R.string.dha1_hindustani,
NoteNameStem(BaseNote.A) to R.string.ni1_hindustani,
NoteNameStem(BaseNote.None, enharmonicBaseNote = BaseNote.A) to R.string.dha2_hindustani,
NoteNameStem(BaseNote.A, NoteModifier.Sharp, BaseNote.B, NoteModifier.Flat) to R.string.ni2_hindustani,
NoteNameStem(BaseNote.B, NoteModifier.Flat, BaseNote.A, NoteModifier.Sharp) to R.string.dha3_hindustani,
NoteNameStem(BaseNote.B) to R.string.ni3_hindustani,
NoteNameStem(BaseNote.A) to R.string.dha2_hindustani,
NoteNameStem(BaseNote.A, NoteModifier.Sharp, BaseNote.B, NoteModifier.Flat) to R.string.ni1_hindustani,
NoteNameStem(BaseNote.B) to R.string.ni2_hindustani,
)

fun createNoteNamePrinter(
Expand Down Expand Up @@ -109,13 +101,15 @@ fun createNoteNamePrinter(
NotationType.Carnatic -> {
NoteNamePrinter(
context, sharpFlatPreference, noteCarnaticResourceIds,
NoteNamePrinter.MaxNoteNameWidth.MultipleLetters
NoteNamePrinter.MaxNoteNameWidth.MultipleLetters,
hasSharpFlatCounterpart = false
)
}
NotationType.Hindustani -> {
NoteNamePrinter(
context, sharpFlatPreference, noteHindustaniResourceIds,
NoteNamePrinter.MaxNoteNameWidth.MultipleLetters
NoteNamePrinter.MaxNoteNameWidth.MultipleLetters,
hasSharpFlatCounterpart = false
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,16 @@ class PreferenceBarContainer(val activity: MainActivity) {
private val temperament = activity.findViewById<TextView>(R.id.temperament)
private val preferFlatSwitch = activity.findViewById<ImageView>(R.id.prefer_flat)

private var isPreferFlatSwitchVisible = true
var visibility = View.VISIBLE
set(value) {
background.visibility = value
referenceNote.visibility = value
temperament.visibility = value
preferFlatSwitch.visibility = value
preferFlatSwitch.visibility = if (isPreferFlatSwitchVisible)
value
else
View.INVISIBLE
field = value
}

Expand Down Expand Up @@ -60,4 +64,11 @@ class PreferenceBarContainer(val activity: MainActivity) {
fun setTemperament(temperamentType: TemperamentType) {
temperament.text = activity.getString(getTuningNameAbbrResourceId(temperamentType))
}

fun setSharpFlatPreferenceVisibility(isVisible: Boolean) {
// Log.v("Tuner", "PreferenceBarContainer.setSharpFlatPreferenceVisibility: isVisible=$isVisible")
isPreferFlatSwitchVisible = isVisible
if (visibility == View.VISIBLE)
preferFlatSwitch.visibility = if (isVisible) View.VISIBLE else View.INVISIBLE
}
}
2 changes: 2 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -226,4 +226,6 @@
<string name="notation_standard">Standard (A-H-C-…)</string>
<string name="notation_solfege">Solfège</string>
<string name="notation_international">International (A-B-C-…)</string>
<string name="notation_carnatic">Karnatisch</string>
<string name="notation_hindustani">Hindustanisch</string>
</resources>
54 changes: 23 additions & 31 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -253,37 +253,29 @@
<string name="capture_in_scientific_mode">Capture in scientific mode</string>
<string name="solfege_notation">Solfège notation</string>
<string name="sa_carnatic">Sa</string>
<string name="ri1_carnatic">Ri₁</string>
<string name="ri2_carnatic">Ri₂</string>
<string name="ga1_carnatic">Ga₁</string>
<string name="ga2_carnatic">Ga₂</string>
<string name="ri3_carnatic">Ri₃</string>
<string name="ga3_carnatic">Ga₃</string>
<string name="ma1_carnatic">Ma₁</string>
<string name="ma2_carnatic">Ma₂</string>
<string name="pa_carnatic">Pa</string>
<string name="dha1_carnatic">Dha₁</string>
<string name="dha2_carnatic">Dha₂</string>
<string name="ni1_carnatic">Ni₁</string>
<string name="ni2_carnatic">Ni₂</string>
<string name="dha3_carnatic">Dha₃</string>
<string name="ni3_carnatic">Ni₃</string>
<string name="ri1_carnatic" translatable="false">Ri₁</string>
<string name="ri2_carnatic" translatable="false">Ri₂</string>
<string name="ga1_carnatic" translatable="false">Ga₁</string>
<string name="ga2_carnatic" translatable="false">Ga₂</string>
<string name="ma1_carnatic" translatable="false">Ma₁</string>
<string name="ma2_carnatic" translatable="false">Ma₂</string>
<string name="pa_carnatic" translatable="false">Pa</string>
<string name="dha1_carnatic" translatable="false">Dha₁</string>
<string name="dha2_carnatic" translatable="false">Dha₂</string>
<string name="ni1_carnatic" translatable="false">Ni₁</string>
<string name="ni2_carnatic" translatable="false">Ni₂</string>
<string name="notation_carnatic">Carnatic</string>
<string name="sa_hindustani">Sa</string>
<string name="re1_hindustani">Re₁</string>
<string name="re2_hindustani">Re₂</string>
<string name="ga1_hindustani">Ga₁</string>
<string name="ga2_hindustani">Ga₂</string>
<string name="re3_hindustani">Re₃</string>
<string name="ga3_hindustani">Ga₃</string>
<string name="ma1_hindustani">Ma₁</string>
<string name="ma2_hindustani">Ma₂</string>
<string name="pa_hindustani">Pa</string>
<string name="dha1_hindustani">Dha₁</string>
<string name="dha2_hindustani">Dha₂</string>
<string name="ni1_hindustani">Ni₁</string>
<string name="ni2_hindustani">Ni₂</string>
<string name="dha3_hindustani">Dha₃</string>
<string name="ni3_hindustani">Ni₃</string>
<string name="sa_hindustani" translatable="false">Sa</string>
<string name="re1_hindustani" translatable="false">Re₁</string>
<string name="re2_hindustani" translatable="false">Re₂</string>
<string name="ga1_hindustani" translatable="false">Ga₁</string>
<string name="ga2_hindustani" translatable="false">Ga₂</string>
<string name="ma1_hindustani" translatable="false">Ma₁</string>
<string name="ma2_hindustani" translatable="false">Ma₂</string>
<string name="pa_hindustani" translatable="false">Pa</string>
<string name="dha1_hindustani" translatable="false">Dha₁</string>
<string name="dha2_hindustani" translatable="false">Dha₂</string>
<string name="ni1_hindustani" translatable="false">Ni₁</string>
<string name="ni2_hindustani" translatable="false">Ni₂</string>
<string name="notation_hindustani">Hindustani</string>
</resources>
9 changes: 9 additions & 0 deletions fastlane/metadata/android/en-US/changelogs/28.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
v6.2.0:
- Indian notation systems

v6.1.0:
- Custom instrument with no strings becomes chromatic with just pitch history

v6.0.0:
- Improved note detection by better evaluation of higher harmonics.
- A lot of internal refactoring.

0 comments on commit 777bdbb

Please sign in to comment.