You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When playing notes with computer keybord, neither extended ascii key nor dead key
can be used for mapping.
Then, e.g. with a french azerty keybord, only the bottom set of keys is usefull.
There are in fact two different issues :
the extended ascii keys : only one line of code has to be changed!
In brightonControllers.c, inside brightonMapKeyboard method, the "from" variable
must be declared "unsigned char" in place of "int".
That's it! Well almost: the profile file must be coded in any kind of iso 8859
to get extended ascii characters on one byte.
To use UTF 8 coding (or any other multi bytes coding), (unsigned) int or char
declarations would have to be replaced by wchar_t. That's an other story.
the dead keys (on a french azerty keyboard, the key "^" between "p" and "$" is one of them...)
Here a list of substitutions is needed. Can be done by adding a dynamic array to brightonWindow. It's not
very clean but it avoids any other change of existing struct definitions. To fill this
array, add a optional fourth field to "KM" records in the profile file.
Solve the first issue would be already a big step forward, for a very little price.
Specify the device name (amongst files under /usr/local/share/bristol/memory/profiles)
with env var PROFILE_FILE_NAME ('mini' by default)
The key mapping format is changed and now is:
KM: Extended_ASCII MIDI_note [MIDI_chan [key_code]]
If the changes are made with an editor, the file must be
saved with any ISO 8859 encoding scheme.
Nothing is changed for usual keys.
For a dead key:
- Extended_ASCII is any arbitrary character not present on the keyboard
- key_code is the code returned by the keyboard on hitting the dead key
See issue nomadbyte#26
atao60
added a commit
to atao60/bristol-fixes
that referenced
this issue
May 24, 2021
When playing notes with computer keybord, neither extended ascii key nor dead key
can be used for mapping.
Then, e.g. with a french azerty keybord, only the bottom set of keys is usefull.
There are in fact two different issues :
In brightonControllers.c, inside brightonMapKeyboard method, the "from" variable
must be declared "unsigned char" in place of "int".
That's it! Well almost: the profile file must be coded in any kind of iso 8859
to get extended ascii characters on one byte.
Here a list of substitutions is needed. Can be done by adding a dynamic array to brightonWindow. It's not
very clean but it avoids any other change of existing struct definitions. To fill this
array, add a optional fourth field to "KM" records in the profile file.
Solve the first issue would be already a big step forward, for a very little price.
See #93 extended ascii char. from keyboard are ignored
The text was updated successfully, but these errors were encountered: