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 both
C5 becomes (C4) because the user set a global preference to see the ISO code rather than the BIAB code.

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

Last edited by bowlesj; 12/23/20 01:43 PM.

John Bowles
My playing in my 20s:
https://www.reverbnation.com/johnbowles