jamulus
jamulus copied to clipboard
Option ctrlmidich writes fader tags in .ini file as Channel':'Name
Describe the bug
When using the --ctrmidich
option, the jamulus.ini file is rewritten with fader tags identified by ChannelNumber:Name
which defeats the purpose of conserving fader info since the same user only has a 1/250 (I think) chance of being assigned the same channel number in a future session.
To Reproduce
- Provided a previous Jamulus usage was without this option, the jamulus.ini fader tags are identified with the Base64 hash as
Name
only. - While Jamulus is not executing , make a backup copy of jamulus.ini file
- Launch the Jamulus client with the --ctrlmidich option (ex.:
--ctrlmidich "1;o2"
; will work even if you don't have a midi device) - Connect to a site with participants : notice that if one was muted in previous session, it will not be so now and you will have to mute it again (should apply to any other fader settings)
- For each participant's fader, the diplayed information is now identified with
ChannelNumber:Name
along with instrument and country if provided. - Disconnect and quit Jamulus
- The rewritten Jamulus .ini file will now contain fader tags identified as
ChannelNumber:Name
Note: the Base64 encryption/decryption can be verified with http://www.unit-conversion.info/texttools/base64/
Expected behavior
The usage of fader info in .ini file should always be written and used as identification as Name
, not ChannelNumber:Name
.
Screenshots
Names modified
jamulus.ini file when using the --ctrlmidich option.
<storedfadertag5_base64>OTpObyBOYW1l</storedfadertag5_base64>
<storedfaderlevel5>2</storedfaderlevel5>
<storedpanvalue5>50</storedpanvalue5>
<storedfaderissolo5>0</storedfaderissolo5>
<storedfaderismute5>1</storedfaderismute5>
<storedgroupid5>-1</storedgroupid5>
In Base64 "OTpObyBOYW1l" equals "9:No Name" i.e. channel number, ":" and name. It should stay as "Tm8gTmFtZQ==" equals "No Name" i.e name only
Operating system This was observed on up-to-date Windows 10.
Version of Jamulus Jamulus standard 3.8.2 from the Jamulus site.
Additional context From Discussion/Bug Investigation/Negative impact of --ctrlmidich on jamulus.ini #2678
A friend confirmed that he gets the same behavior in Linux ; Ubuntu 18,04 LTS I believe.
U
Yes, confirmed Jamulus 3.8.2 compiled from src on Ubuntu Studio 18.04:
ardy@daw1:~(0)$ decode_jamulusini_usernames.sh
Name Base64
7:dave h NzpkYXZlIGg=
5:RickD miditest NTpSaWNrRCBtaWRpdGVzdA==
4:Frank Groove NDpGcmFuayAgIEdyb292ZQ==
3:𝄞 Eric♪ MzrwnYSeIEVyaWPimao=
2:Rob MjpSb2I=
0:Phil2 MDpQaGlsMg==
1:Andrea MTpBbmRyZWE=
Probably we get the name from the UI or do something "naive" to display and save the names (not looked at the respective code yet). @ignotus666 or @dakhubgit know the Midi Code.
@ann0see, looks like the code just concatenates the channelnumber to the name when the option is used. Should the solution be changing the label into two individual labels for this or would it be okay just the "strip" the channelnumber from the saved data?
Yes, that would be an option.
Ideally the channel number could be inside CChannelInfo
(src/util.h
line 916), populated when the client creates a new channel entry for a server channel - that should allow any consumer of the object access to the necessary data. The UI could then display both number and name when the option is active. Saving the channel name (for the faders) wouldn't care about the number. Ooh look, line 934 - public int iChanID
...
Does the fader know to display this? Currently not (but it gets CChannelInfo
alright). I'd suggest we introduce a new setting in the fader to reflect the option and pass the option through from CAudioMixerBoard
(which would read the setting).
OK, I've raised a pull request for the fix. The autobuild artifacts should be available soon. It would be good to get some testing done -- particularly on fader sort options but also loading old Jamulus.ini or saved fader settings files: I'm hoping this might clean them up if I've done it right.