A long time ago in a forum far far away a cool forum jedi named mbncp and I (mostly mbncp) worked on a utility to display your key command map in an html page to get a better view of how it was set up.
EDIT: Put the column headers back in the fixed order of the original.
EDIT: I think I found the fix for the macro commands bug. But, because of the way the xml file is laid out, I may have screwed something else up. So, grab this new version and give it a good looking over to see if all your mapped commands are showing up.
EDIT: I updated the script so that all the new key command categories can be colored. I also set it so that it will show all key combos. In the previous posting it hid keys that weren't being used at all. That kind of defeats the purpose of letting you see what is available. Feel free to set the value to True on line 22 if you want to hide them again.
New NOTE: There are some odd keyboard choices like '-' and '+' that are not treated normally. For example + should really be 'SHIFT+='. But because the + is treated as it's own symbol, there is a + row that can only ever have 1 command mapped to it. And you can never have a 'SHIFT+='. Hope that makes sense.
NOTE 2: If you hover your mouse over a command, it will show you the complete name as it is in the Cubase key command list like below;

Here is the original thread
Key Command Utility
It still seems to work with C7. So just create a RandomName.vbs file in your \\Users\AppData\Roaming\Steinberg\Cubase7(_64)\ directory.
Copy the following code into the vbs file. You can edit it with any text editor. You can mess with the colors for the type of command and there are options for dealing with some non-US character sets. Once you copy the code into the file, save it ... double click the file and an html file should pop up with your key commands laid out by accelerator.
- Code: Select all
' TODO: Set the different Const and Arrays to your needs
' ---------------------------------------------------
Option Explicit
Const HTML = True ' True html file, False texte file (Tab delimited)
Const SECTIONNAME = False ' add the section name (True or False)
Const SORTKEY = False ' sort by key name (True or False)
' TODO : to have your keys in a certain order, enter them here:
'-----------------------------------------------
B = Array( _
"F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12", _
"`","1","2","3","4","5","6","7","8","9","0", _
"-","=","_","+","Backspace", _
"A","B","C","D","E","F","G","H","I","J","K","L", "M", _
"N","O","P","Q","R","S","T","U","V","W","X","Y","Z", _
"[", "]","\",";","'",",",".","/","Return","Space", _
"Insert", "Del", "Home", "End", "PgUp", "PgDown", _
"Left Arrow", "Up Arrow", "Right Arrow", "Down Arrow", _
"Pad0","Pad1","Pad2","Pad3","Pad4","Pad5","Pad6","Pad7", _
"Pad8","Pad9","Pad .","Pad /","Pad *","Pad -","Pad +","Enter" _
) ' end of array
' Make sure you have SORTKEY = False ;)
Const REMOVE_UNUSED = False ' removes unused keys from the list
' Find Replace key name , add always by pair: "SX key name", "New Name"
C = Array("_", "Shift+-", "+", "Shift+=")
' C = Array(-1) ' uncomment if you don't want key renaming
' Section color (http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/colors/colors.asp)
' Each section name must be followed by a color name
BK = Array( "AddTrack", "white", _
"Analyze", "gold", _
"Arranger", "gold", _
"Audio", "white", _
"Audio Export", "white", _
"Audio Realtime Processing", "white", _
"Automation", "white", _
"Beat Designer", "white", _
"Chords", "white", _
"Control Room", "white", _
"Devices", "white", _
"Edit", "crimson", _
"Editors", "MediumVioletRed", _
"Export", "deeppink", _
"File", "indianred", _
"Focus", "white", _
"Hitpoints", "Teal", _
"Hub", "white", _
"Import", "limegreen", _
"Inspector", "white", _
"Media", "DarkTurquoise", _
"MIDI", "turquoise", _
"Mixer", "linen", _
"Navigate", "peachpuff", _
"Note Expression", "white", _
"Nudge", "PeachPuff", _
"Preferences", "silver", _
"Preset", "white", _
"Process", "lightskyblue", _
"Process Logical Preset", "white",_
"Process Plugin", "mediumturquoise", _
"Process Project Logical Editor", "white",_
"Project", "GreenYellow", _
"Quantize Category", "steelblue", _
"Sample Editor", "white", _
"Score Align Elements", "white",_
"Score Functions", "white", _
"Score Meter Scale", "white", _
"Score Symbol Palettes", "white", _
"Scores", "white", _
"Scores Statusbar", "white", _
"Set Insert Length", "skyblue", _
"Tool", "Thistle", _
"Transport", "yellow", _
"Windows", "white", _
"Workspaces", "tan", _
"Zoom", "beige", _
"Macro", "MediumOrchid" _
)
CH = Array("auml" ,228,"ouml" ,246,"uuml" ,252,"szlig" ,223,"Auml" ,196,"Ouml" ,214,"Uuml" ,220,"nbsp" ,160,"Agrave" ,192,"Egrave" ,200,"Eacute" ,201,"Ecirc" ,202,"egrave" ,232,"eacute" ,233,"ecirc" ,234,"agrave" ,224,"iuml" ,239,"ugrave" ,249,"ucirc" ,251,"uuml" ,252,"ccedil" ,231,"AElig" ,198,"aelig" ,330, "OElig" ,338,"oelig" ,339,"euro" ,8364,"laquo" ,171,"raquo" ,187, "sect", 167)
' / TODO
'---------------------------------------------------
Dim A, B, C, BK, CH
GetSX_Keys
Sub GetSX_Keys
Dim WshShell, fso, f, f2, f3, dir, dir2, tp, bc, n
Redim A(UBound(B)+1)
For f = 0 To UBound(B)
A(f+1) = Array( B(f), ".", ".", ".", ".", ".", ".", ".", ".")
Next
A(0) = Array("key", "-", "Shift", "Ctrl", "Alt", "Ctrl+Shift", "Alt+Shift", "Ctrl+Alt", "Ctrl+Alt+Shift")
If HTML Then tp = "html" else tp = "txt"
set WshShell = CreateObject("WScript.Shell")
dir = WshShell.SpecialFolders("AppData") & "\Steinberg\Cubase 7_64\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(dir & "Key Commands 2." & tp, True)
Set f2 = fso.CreateTextFile(dir & "KC_TMP.xml", True)
Set f3 = fso.OpenTextFile(dir & "Key Commands.xml", 1)
dim xmlDoc, t, u, v, w, x, y, z, s, d
set xmlDoc = CreateObject("Microsoft.XMLDOM")
dir2 = replace(dir , "\", "/")
xmlDoc.validateOnParse = False
xmlDoc.resolveExternals = False
xmlDoc.async = False
' special foreign chars
f2.write "<!DOCTYPE characters [ <!ELEMENT characters (character*) > <!ELEMENT character (#PCDATA ) > "
For n = 0 To UBound(CH)
f2.Write "<!ENTITY " & CH(n) & " " & chr(34) & "&#" & CH(n+1) & ";" & chr(34) & " >"
n = n+1
Next
f2.write "] > "
f2.write vbCRLF
f2.write(f3.ReadAll())
f2.Close
f3.Close
xmlDoc.load(dir2 & "KC_TMP.xml")
If xmlDoc.parseError.errorCode Then
MsgBox _
"File: " & dir & "Key Commands.xml" &vbCrLf & _
"Line : " & xmlDoc.parseError.line & vbCrLf & _
"Error: " & xmlDoc.parseError.reason, 0, "XML parser error:"
' Exit Sub
End If
On error resume next
for each t in xmlDoc.childNodes
If s = "Macro" Then Exit For
for each u in t.childNodes
If s = "Macro" Then Exit For
for each v in u.childNodes
If s = "Macro" Then Exit For
for each w in v.childNodes
If w.nodename = "string" Then s = w.attributes.item(1).text
If s = "Process Plugin" Then bc = True Else bc = False
If s = "Macros" Then Exit For
for each x in w.childNodes
If x.childNodes.length = 2 Then
d = x.childNodes.item(0).attributes.item(1).text
If bc Then
If len(d) > 34 Then d = Mid(d, 35)
End If
If x.childNodes.item(1).childNodes.length > 1 Then
for each y in x.childnodes.item(1).childNodes
AddKey s, d , y.attributes.item(0).text
next
Else
AddKey s, d , x.childNodes.item(1).attributes.item(1).text
End If
End If
next
next
next
next
next
If HTML then
f.write "<TABLE cellSpacing=1 cellPadding=1 width=" & _
chr(34) & "99%" & chr(34) & "align=center border=1>" & vbCrLf
End If
If SORTKEY Then
For t = 1 To UBound(A)
For u = t+1 To UBound(A)
If UCase(A(u)(0)) < UCase(A(t)(0)) Then
z = A(t) : A(t) = A(u) : A(u) = z
End If
Next
Next
End If
For t = 0 To UBound(A)
If HTML Then f.write "<TR>"
If REMOVE_UNUSED Then
For B = 1 To UBound(A(t))
If A(t)(B) <> "." Then Exit For
Next
If B > UBound(A(t)) Then
Redim b(-1) : A(t) = b
End If
End If
For u = 0 To UBound(A(t))
If HTML Then
If t = 0 Or u = 0 Then
f.write "<TD align=middle style=" & chr(34) & "FONT-WEIGHT: bold" & Chr(34) & ">" & A(t)(u) & "</TD>"
Else
If A(t)(u) = "." Then
'f.write "<TD align=middle>" & A(t)(u) & "</TD>"
f.write "<TD align=middle>.</TD>"
Else
f.write "<TD align=middle style=" & chr(34) & "BACKGROUND-COLOR: " & A(t)(u) & "</TD>"
End If
End If
Else
f.write A(t)(u)
If u <> UBound(A(t)) Then f.write vbTab
End If
Next
If HTML Then f.write "</TR>"
f.write vbCrLf
Next
If HTML then f.write "</TABLE>" & vbCrLf
f.close
If HTML Then s = "Explorer.exe " Else s = "notepad.exe "
WshShell.Run s & dir & "Key Commands 2." & tp
End Sub
Sub AddKey(s, d, byval k)
dim bp, ak, n, kn, bkc, m, ks
k = Trim(k)
If IsArray(C) Then
For n = 0 To UBound(C) Step 2
If C(n) = k Then
k = C(n+1)
Exit for
End If
Next
End If
ks = k
If Right(k, 1) = "+" Then bp = True
k = Replace(k, "+", vbCr)
If bp Then k = Left(k, len(k)-1) & "+"
ak = Split(k, vbCr) : kn = 0
For n = 0 To UBound(ak)-1
Select Case UCase(ak(n))
Case "SHIFT"
kn = kn Or 1
Case "CTRL"
kn = kn Or 2
Case "ALT"
kn = kn Or 4
End Select
Next
For n = 1 To UBound(A)
If UCase(A(n)(0)) = UCase(ak(UBound(ak))) Then Exit For
Next
If n > UBOund(A) Then
Redim Preserve A(n)
A(n) = Array(ak(UBound(ak)), ".", ".", ".", ".", ".", ".", ".", ".")
End If
Select Case kn
Case 4:
kn = 3
Case 3:
kn = 4
End Select
If HTML Then
bkc = "white"
If IsArray(BK) Then
For m = 0 To UBound(BK) Step 2
If BK(m) = s Then
bkc = BK(m+1)
Exit For
End If
Next
End If
End If
If SECTIONNAME Then
A(n)(kn+1) = bkc & A(0)(kn) & ">" & s & "-" & d
Else
A(n)(kn+1) = bkc & chr(34) & " title=" & chr(34) & "[ " & s & " ] " & ks & " : " & d & chr(34) & ">" & d
End If
End Sub
EDIT: If you are using the 32 bit C7, you have to edit the line that starts with dir = WshShell and remove _64.
