I modified the MS-Access computer code showing in the above post and I display the revised version below. The change allows the displaying of the scientific notation that appears in the piano roll which does not have enough room to display both the ISO standard format and the BIAB representation. Here is where a user preference global parameter would be needed to be referenced (I hard coded that preference in the function which is called). The test results and code are below. So this covers everything and is extremely easy to do. It is still a very low risk change, it will make BIAB look better in the eyes of most musicians and remove the confusion which wastes people's time. The "insufficient room to display both" factory default really should be ISO since it is the most popular and the recognized standard as indicated in post #1. However, as PG-Music no doubt knows, it would be wise to point this out to users (especially existing users) so they know of this change and so that they can keep it as is if they wish. If BIAB provides all the info from post #1 at the appropriate time I suspect most will choose the ISO standard. From what I can tell there is room for the ISO C-1 code on the piano roll since there appears to be a gap there already. Another idea would be to have a hover over popup which shows the two naming methods and even the frequency or more.
Test Results:'Comment: the display for the notation window. In the test code Y means it can display both
C5 becomes (C4 bC5)
'Comment: the display for the Vocal Wizard. In the test code Y means it can display both
C5 becomes (C4 bC5)
'Comment: the display for the guitar tuner. In the test code Y means it can display both
C5 becomes (C4 bC5)
'Comment: the display for the piano roll. In the test code N means it can not display bothC5 becomes (C4) because the user set a global preference to see the ISO code rather than the BIAB code.
Private Sub cmdTempTest_Click()
Dim strExampleCode As String
strExampleCode = funcJWInputBox(14, "C5", "Enter the BIAB representation code such as C5 for Midde C")
'Comment: the display for the notation window. Y means it can display both
MsgBox funcProperCommunication(strExampleCode, "Y")
'Comment: the display for the Vocal Wizard. Y means it can display both
MsgBox funcProperCommunication(strExampleCode, "Y")
'Comment: the display for the guitar tuner. Y means it can display both
MsgBox funcProperCommunication(strExampleCode, "Y")
'Comment: the display for the piano roll. N means it can not display both
MsgBox funcProperCommunication(strExampleCode, "N")
End Sub
Public Function funcProperCommunication(strNon_ISO_Code As String, strRoomForBoth As String) As String
Dim strUser_RoomForOnly1_Preference As String
strUser_RoomForOnly1_Preference = "ISO" 'Note: the other setting is BIAB.
Dim strISO_Code As String
Dim intISO_OctaveNumber As Integer
Dim strDisplayCode As String
Dim strNote As String
Dim strBIAB_OctaveNumber As String
Dim intBIAB_OctaveNumber As Integer
Dim strBIAB_OutCode As String
strNote = Left(strNon_ISO_Code, 1)
strBIAB_OctaveNumber = Right(strNon_ISO_Code, 1)
intBIAB_OctaveNumber = strBIAB_OctaveNumber
strBIAB_OutCode = "b" & strNote & strBIAB_OctaveNumber
intISO_OctaveNumber = intBIAB_OctaveNumber - 1
strISO_Code = strNote & intISO_OctaveNumber
If strRoomForBoth = "Y" Then
strDisplayCode = "(" & strISO_Code & " " & strBIAB_OutCode & ")"
Else
If strUser_RoomForOnly1_Preference = "ISO" Then
strDisplayCode = strISO_Code
End If
If strUser_RoomForOnly1_Preference = "BIAB" Then
strDisplayCode = strBIAB_OutCode
End If
End If
funcProperCommunication = strDisplayCode
End Function