Not sure how we would document the difference, given there is not any real scheme for doing so. Any suggestions? Note that features often change when moving between platforms, so this isn't entirely unusual.
It would be fairly easy to alter the splash screen which is a .png file to include information such as.
"This version does NOT support the midi or OSC features mentioned in the Tutorial and Language sections"
Or to change the message displayed at the top of each fresh buffer, with a similar message. (see line 431 of the runtime.rb file in the sonicpi lib.)
EDIT or better to alter the info.html file in <sonic-pi src>/app/gui/qt/html to new text like:
AIUI, the differences are all pretty obscure with regard to Raspberry Pi, MIDI and ERLANG are not really part of our target audience, which is more from an education point of view. So really from our point of view, this bump to 3.1 is more about bug fixes etc than new features (which may not even work on the Pi even if enabled as they will never have been tested). If anyone is willing to make the required changes, test and report back, that would be good. We won't be doing that, not enough resource.
As a retired teacher of physics, electronics and computing for 36 year I find the statement that the use of OSC and midi is not useful from an educational point of view an amazing statement to make. Having used Sonic Pi from version one, I have found every new feature added welcome, and the changes in version three to include midi and OSC functionality really opened up a huge range of possibilities. Sonic Pi works extremely well as an adjunct to many electronics projects involving GPIO connected devices, from simple burglar alarms, or touch operated home made keyboards, to communications projects involving passing data between different programs on the same Pi or between separate computers, or to cooperating in visual projects with processing or p5.js or musical bots. These are of considerable interest to secondary pupils studying for GCSE or A-level, and younger pupils as well.
Also I hardly think the differences are obscure when the facilities for using midi and OSC are fully documented in the built in Tutorial and the Language section of the help files built into Sonic Pi. To have them absent, makes this documentation incorrect.
I can appreciate your problems in building Sonic Pi as the source code has not been structured for easy packaging into a .deb, and I think it is great that you have managed to get something working for use on Buster. The build documentation (is not really up to date on main github distro at the top level, which doesn't help. There are several build-scripts files in the app/gui/qt folder for various flavours of linux which can be useful..
I spent some time with the current 3.1 install on Buster and managed to add the missing osmid and erlang stuff fairly easily this afternoon, with some tweaks to the paths stored in util.rb (in the sonicpi library). It works OK, although I have one remaining problem in installing the sys-proctable-1.1.3 gem which is missing from the vendor folder and which is needed for the code in task-register.rb to function. This file controls storing the pids of the various subprocesses for osmid and erlang so that they can be killed off when sonic pi quits. At present this is not working properly, although otherwise it all works fine with midi and OSC. Hopefully I can sort this out, because it works fine on my source build from scratch.
I hope that sooner or later a fully working 3.1 (and to cope 3.2) can be incorporated in Raspbian. Sonic Pi 3.2dev works extremely well on a Pi4 where all its facilities can be fully exploited.