This opens an XML file in a browser that is not my default browser. In that browser I just get a blank page. When I copy the link and open it in Safari, I get the plain XML data, without line breaks. In the past, this link send me to a HTML page, if I remember correctly.
We’re using a xml-stylesheet for that (have a look at the xml file content), which many browser seem to block nowadays because it’s a local file reference.
I see. Can you recommend a browser that does show it correctly? Firefox, Chrome and Safari do not.
The only way to avoid this would be generating a html file locally in Renoise, then showing this one in Renoise.
This probably isn’t worth the troubles.
For me the XML opens in Internet Explorer 11.
And the result is ok for reading.
My default browser is Firefox and I also have Internet Explorer, Edge and Chrome installed on the same PC.
So I recommand IE to open this XML.
As far as I know, Internet Explorer is not available for any platform other than Windows, though.
I don’t know, but there are probably extensions to install in Firefox or Chrome that can open this type of files correctly. XML is a simple text file.
Chrome on W10 opens local XML files just fine for me (formatted and syntax-highlighted).
Apart from that any text editor works since XML is a plain text format.
Yes, but it’s not made for human reading, but for machine reading. Users want to quickly see what the shortcuts are. They are not going to parse an XML file in a text editor
From Chrome on Windows 10 can you see it like this? How have you done to make it look correctly, with formatting and highlighted text?
This screenshot is from Microsoft Edge Windows 10 64bit 1903.
This screenshot is from Firefox Quantum 69.0 (64 bit).
In my Chrome 76.0.3809.132 64 bits, the blank page appears.
Here are the default shortcuts in HTML format.
Of course, if you defined your own shortcuts, they won’t be there…
I stand corrected. I was talking about opening plain XML files (data, configuration, etc) with Chrome.
However, there is a way to make it work:
Create a shortcut to or simply run Chrome with the following parameters:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files "C:\Users\MY_USERNAME\AppData\Roaming\Renoise\V3.2.0\KeyBindings.xml"
Replace MY_USERNAME with yours and it works. Keep in mind that you have to close other Chrome instances that have been started without the
--allow-file-access-from-files parameter first or it’ll open the file in the existing Chrome process.
This is not super convenient but it is definitely possible to display the Renoise shortcuts with Chrome.
Keep in mind that this is a major security risk as it allows any website to access your local files.
Don’t browse the web in a Chrome instance started with that parameter!
So what does Microsoft Edge do to be able to display this XML without formatting problems? Does Microsoft Edge skip some security issue?
Can’t say for sure but my guess would be that Edge allows access to local files from within files that were already opened from the local filesystem.
All the other major browsers are very strict when it comes to accessing the local filesystem (for good reasons).
Actually, I do have another solution for Chrome!
Get this Chrome Extension: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb
- Click the switch so it says
Web Server: Started
- Open http://127.0.0.1:8887/KeyBindings.xml
Not sure if I set that port (8887) or if its the default port, if its not the default you might have to adjust the URL in step 4.
This works, because Chrome allows loading resources from URLs, but not from the filesystem (which the flag in my previous post enables).
EDIT: Of course any webserver should work. The Chrome extension is just a remarkably easy way to get a simple local webserver running.
This is a summary of the XML code. This file is always in that direction.
Through a window tool it would be possible to display all those shortcuts with a custom format, also with a vertical slider on the right. It would be enough to “read” that data and transform it through LUA with the possible formats of the API6 (now it has “strong” for the text source).
The number of possible shortcuts is always the same.
I guess the XML format is used for two reasons:
- Be able to update keyboard shortcuts and show it.
- Being able to print these shortcuts on paper in a pleasant format (from the browser).
I don’t think it was complicated for Renoise to have her own big window to show all this information. It could even offer the possibility of changing the shortcuts there, and not through a ridiculously small window.
If you press the “Print” button, it will open that XML file in the browser.
Keyboard shortcuts are very important in Renoise. The user would feel more comfortable with a larger window.
Perhaps in this way there would be no need to print anything on paper. Maybe a resizable and detachable window would be magnificent.
The same goes for the MIDI Mapping window:
Why are these windows so small ???
The below combined xml + stylesheet works fine here in Safari and Firefox, locally. Following changes are required:
- The stylesheet moves at the end of the xml, before the last closing root node
- The stylesheet gets an id
- On top of the xml, the stylesheet will be referred / href’ed using a inner document link like
- The following doctype needs to be added:
<!DOCTYPE KeyboardBindings [ <!ATTLIST xsl:stylesheet id ID #IMPLIED> ]>
Working local xml with stylesheet:
I did. Tricky but doable
KeyBindings (partial result)
Global Application Preferences... Control + Comma Application Switch to Other Application Alt + Tab File New Song Control + N File New Song (no template) Shift + Control + N File Open Song... Control + O File Save Song... Control + S File Save Song As... Shift + Control + S Document Undo Control + Z Document Redo Shift + Control + Z Clipboard Select Clipboard 1 Alt + 1 Clipboard Select Clipboard 2 Alt + 2 Clipboard Select Clipboard 3 Alt + 3 Clipboard Select Clipboard 4 Alt + 4 View Toggle Fullscreen/Windowed Mode Alt + Return View Focus Next View Control + Tab View Focus Previous View Shift + Control + Tab View Recall View Preset 1 F1 View Recall View Preset 2 F2 View Recall View Preset 3 F3 View Recall View Preset 4 F4 View Recall View Preset 5 F5 View Recall View Preset 6 F6 View Recall View Preset 7 F7 View Recall View Preset 8 F8 View Focus/Show Pattern Editor Shift + Numpad1 View Focus/Show Mixer Shift + Numpad2 View Open MIDI Mapping Dialog... Control + M View Show Used MIDI Mappings... Shift + Control + M View Open Render Dialog... Shift + Control + R View Open Render Plugin To Instrument Dialog... Alt + Control + R View Open Sample Record Dialog... Shift + Alt + R Transport Play/Stop/Edit Space Transport Toggle Loop Pattern Control + Scroll Transport Play Pattern RAlt Transport Play Pattern from Current Line Shift + RAlt Transport Play Song RControl Transport Play Song from Current Line Shift + RControl Transport Pause/Continue Apps Transport Schedule Edited Sequence for Playback Control + Space Transport Play from Edited Sequence Shift + Control + Space Transport Record Pattern Shift + RShift Transport Play from Cursor Shift + Space Transport Toggle Block Playing NumpadEnter Transport Select Previous LoopBlock Control + NumpadMinus Transport Select Next LoopBlock Control + NumpadPlus Transport Note Off Shift + Capital Transport Smart Note Off Capital Transport Note Off Row Shift + Control + Capital Transport Smart Note Off Row Control + Capital Song Control Toggle Auto Solo Alt + Backslash Song Control Toggle Metronome Grave Song Control Toggle Follow Pattern Scroll Instruments Select Previous Instrument NumpadMinus Instruments Select Previous Instrument (2nd) Alt + Up Instruments Select Next Instrument NumpadPlus Instruments Select Next Instrument (2nd) Alt + Down Instruments Select Previous Instrument Page Alt + Left Instruments Select Next Instrument Page Alt + Right Instruments Select First Instrument Alt + Home Instruments Select Last Instrument Alt + End Instruments Select 1st Instrument Numpad1 Instruments Select 2nd Instrument Numpad2 Instruments Select 3rd Instrument Numpad3 Instruments Select 4th Instrument Numpad4 Instruments Select 5th Instrument Numpad5 Instruments Select 6th Instrument Numpad6 Instruments Select 7th Instrument Numpad7 Instruments Select 8th Instrument Numpad8 Instruments Select 9th Instrument Numpad9 Instruments Open Instrument Editor Numpad0 Instruments Select Previous Sample in Instrument Shift + NumpadMinus Instruments Select Next Sample in Instrument Shift + NumpadPlus Octave Increase Octave NumpadMultiply Octave Decrease Octave NumpadDivide Octave Increase Octave (2nd) Control + RBracket Octave Decrease Octave (2nd) Control + LBracket Track Muting Mute Track Backslash Track Muting Mute Track Secondary Shift + Backslash Track Muting Solo Track Control + Backslash Track Muting Mute Track 1 Control + Numpad1 Track Muting Mute Track 2 Control + Numpad2 Track Muting Mute Track 3 Control + Numpad3 Track Muting Mute Track 4 Control + Numpad4 Track Muting Mute Track 5 Control + Numpad5 Track Muting Mute Track 6 Control + Numpad6 Track Muting Mute Track 7 Control + Numpad7 Track Muting Mute Track 8 Control + Numpad8 Track Muting Mute Track 9 Control + Numpad9 Transport Note Off (2nd) Shift + A Transport Smart Note Off (2nd) A View Attach/Detach Instrument Editor Alt + D View Toggle Track- and Instrument Editors Alt + E View Show/Focus Instrument Editors Alt + I View Show/Focus Track Editors Alt + K View Show/Hide Disk Browser Alt + B View Show/Hide Instrument Box Alt + N View Show/Hide Instrument Properties Shift + Alt + N View Show/Hide Pattern Matrix Alt + M View Show/Hide Phrase Editor Alt + R Transport Halve LoopBlock Size Control + NumpadDivide Transport Double LoopBlock Size Control + NumpadMultiply View Attach/Detach Mixer View Alt + F Pattern Editor Navigation Focus Pattern Matrix Shift + Escape Navigation Move to Previous Column Left Navigation Move to Next Column Right Navigation Move to Previous Row Up Navigation Move to Next Row Down Navigation Move to Previous Row with EditStep Shift + Control + Up Navigation Move to Next Row with EditStep Shift + Control + Down Navigation Move to Previous Row with Note Shift + Control + Prior Navigation Move to Next Row with Note Shift + Control + Next Navigation Toggle Auto Capture Instrument Shift + Alt + Backslash Navigation Capture Instrument Shift + Control + Return Navigation Capture Nearest Instrument Shift + Return Navigation Jump 16 Rows Up Prior Navigation Jump 16 Rows Down Next Navigation Jump to First Row Home Navigation Jump to Last Row End Navigation Jump to Row 0 F9 Navigation Jump to Row 16 F10 Navigation Jump to Row 32 F11 Navigation Jump to Row 48 F12 Navigation Jump to Previous Track Shift + Tab Navigation Jump to Next Track Tab Navigation Jump to Master Track Shift + Control + End Navigation Jump to First Track Shift + Control + Home Insert/Delete Insert New Row Insert Insert/Delete Delete Current Row Back Insert/Delete Insert New Row in Column Shift + Control + Insert Insert/Delete Delete Current Row in Column Shift + Control + Delete Play Play Current Line Return Edit Step Increase EditStep Control + Equals Edit Step Decrease EditStep Control + Minus Edit Step Double EditStep Alt + Equals Edit Step Halve EditStep Alt + Minus Edit Step Set EditStep To 0 Control + 0 Edit Step Set EditStep To 1 Control + 1 Edit Step Set EditStep To 2 Control + 2 Edit Step Set EditStep To 3 Control + 3 Edit Step Set EditStep To 4 Control + 4 Edit Step Set EditStep To 5 Control + 5 Edit Step Set EditStep To 6 Control + 6 Edit Step Set EditStep To 7 Control + 7 Edit Step Set EditStep To 8 Control + 8 Edit Step Set EditStep To 9 Control + 9 Record Toggle Record Quantized Shift + Control + Grave Record Increase Quantization Shift + Control + Equals Record Decrease Quantization Shift + Control + Minus Record Set Quantization To 1 Shift + Control + 1 Record Set Quantization To 2 Shift + Control + 2 Record Set Quantization To 3 Shift + Control + 3 Record Set Quantization To 4 Shift + Control + 4 Record Set Quantization To 5 Shift + Control + 5 Record Set Quantization To 6 Shift + Control + 6 Record Set Quantization To 7 Shift + Control + 7 Record Set Quantization To 8 Shift + Control + 8 Record Set Quantization To 9 Shift + Control + 9
KeyBindings.txt (87.3 KB)
To be fair, XML is a plain text based format that was specifically made to be machine AND human readable
Otherwise you could as well store data in a binary format and save a lot of space and parsing.