Reason's (not so?) "kludgy" code

This forum is for discussing Reason. Questions, answers, ideas, and opinions... all apply.
chaosroyale
Posts: 728
Joined: 05 Sep 2017

11 Dec 2018

Something that has been bothering me a little, related to comments by various users who said they feel that Reason is kludged together under the hood and that's why optimization is so difficult.

In combinators, new devices (after about R8 I think) display options like "enable, off, bypass" in English. Whereas old devices show only "0,1,2" for the same options.

Are there really 2 completely different pieces of display code for bypassing devices in a combinator? Why not update the combinator display defaults so that state "0" automatically displays the word "off" or whatever, instead of leaving it alone and then making a completely new display mode that only affects newer devices. It doesn't make any sense from either a UI point of view or a programming point of view. This is a small detail but that makes it even more worrying to me. If such an obvious thing doesn't get addressed in an optimized way, what is the situation with the main parts of the program?

I hope that the delay in the performance update is due to the "kludgey" code being completely rationalized and streamlined and that this makes all future updates easier for the developers. That might be a big undertaking for a smaller developer like Props, but I hope they pull it off.

edit: this is all speculation based on how Reason "feels" to use, compared to more streamlined programs.

2nd edit: It seems like this particular issue is a UI issue rather than a coding issue and I was drawing connections between unrelated things. Lack of standardization in the UI still annoys me though. Enochlight's explanation about legacy MIDI and the changeover to RE's is pretty interesting for anyone interested in the history of the software.
Last edited by chaosroyale on 14 Dec 2018, edited 3 times in total.

User avatar
dioxide
Posts: 1788
Joined: 15 Jul 2015

11 Dec 2018

Reason's rack devices use two different type of tech. The first was native devices, and more recent devices are all Rack Extensions. That's why there is a difference between devices.

As for performance, I'm sure they can improve, but it is partly due to Reason's completely free audio and CV routing, which makes multi-threading tricky.

I doubt very much that their code is "kludgey".

Undistraction

11 Dec 2018

Why do you think it's taking them so long to release the performance update or upgrade to modern resolutions, or do anything really other than pump out Rack Extensions? Because they are struggling to update an ancient codebase that they have allowed to rot through neglect. All they can do is build on top, and that doesn't address the fundamental issues buried underneath. This is my guess based on recent events of course, so no need for any outrage at my 'wild speculation',

User avatar
aeox
Competition Winner
Posts: 3222
Joined: 23 Feb 2017
Location: Oregon

11 Dec 2018

:lol:

User avatar
MrFigg
Competition Winner
Posts: 9136
Joined: 20 Apr 2018

11 Dec 2018

Kludgy or more correctly cludgey is the old Scots name for a toilet :). Just so’s you know :).
🗲 2ॐ ᛉ

User avatar
aeox
Competition Winner
Posts: 3222
Joined: 23 Feb 2017
Location: Oregon

11 Dec 2018

chaosroyale wrote:
11 Dec 2018
this is all speculation based on how Reason "feels" to use, compared to more streamlined programs.
Personally, Reason is much better to use than other DAWs I've used (Ableton, bitwig, fl studio) Maybe it's just not the right DAW for you?

I really don't know what you mean by "kludgey". You're assuming that something dire and wrong is happening under the hood based on a inconsistency in text characters. I think it's wild for music producers to try to speculate on the codebase. No one knows anything about it, only speculation, which is unhealthy.

edits: multiple typo fixes :oops:
Last edited by aeox on 11 Dec 2018, edited 2 times in total.

User avatar
dioxide
Posts: 1788
Joined: 15 Jul 2015

11 Dec 2018

Oh. So your opinion is based on your feelings rather than something you can demonstrate? NEXT!!

User avatar
EnochLight
Moderator
Posts: 8407
Joined: 17 Jan 2015
Location: Imladris

11 Dec 2018

MrFigg wrote:
11 Dec 2018
Kludgy or more correctly cludgey is the old Scots name for a toilet :). Just so’s you know :).


cludgey .jpg
cludgey .jpg (103.36 KiB) Viewed 3004 times
Win 10 | Ableton Live 11 Suite |  Reason 12 | i7 3770k @ 3.5 Ghz | 16 GB RAM | RME Babyface Pro | Akai MPC Live 2 & Akai Force | Roland System 8, MX1, TB3 | Dreadbox Typhon | Korg Minilogue XD

User avatar
rcbuse
RE Developer
Posts: 1176
Joined: 16 Jan 2015
Location: SR388
Contact:

11 Dec 2018

Its my experience that the more kludgy the code, the more fragile the software is. Things that are all hacked together under the hood show though with weird ass behaviors or crashes across platforms. Reason could easily be the most rock solid piece of software I've ever owned. I would be willing to bet money the codebase giving that behavior is extremely well maintained and a probably an example of best practices.

User avatar
aeox
Competition Winner
Posts: 3222
Joined: 23 Feb 2017
Location: Oregon

11 Dec 2018

dioxide wrote:
11 Dec 2018
Oh. So your opinion is based on your feelings rather than something you can demonstrate? NEXT!!
:lol:

That's sounds like a quote straight out of a gender identity debate

User avatar
motuscott
Posts: 3440
Joined: 16 Jan 2015
Location: Contest Weiner

11 Dec 2018

Themz fightin' words.
Oh shit. Banned again.
Who’s using the royal plural now baby? 🧂

User avatar
EnochLight
Moderator
Posts: 8407
Joined: 17 Jan 2015
Location: Imladris

11 Dec 2018

chaosroyale wrote:
11 Dec 2018
In combinators, new devices (after about R8 I think) display options like "enable, off, bypass" in English. Whereas old devices show only "0,1,2" for the same options. This really looks like a kludge, and one that will come back to bite the programmers in the ass.

Are there really 2 completely different pieces of display code for bypassing devices in a combinator? Why not update the combinator display defaults so that state "0" automatically displays the word "off" or whatever, instead of leaving it alone and then making a completely new display mode that only affects newer devices.
No, there is no different code, and it's certainly not a "kludge". For the record, since many here were never a part of the old Propellerhead User Forum or may have missed discussions like these in the past, the only reason this is like this is because at one point in the past (beginning with Reason 1.0), all pop-up dialog displays were displayed with standard MIDI 0-127 numerical values only. The Rack Extension SDK was developed with the option to include new data, allowing devices to display more useful information (such as db, frequency, percentages, etc).

For legacy devices, it's a laborious and time consuming process to convert older MIDI 0-127 data to meaningful decibels, etc. They just never got around to doing it because reasons. One could say the RE SDK addressed a lot of the original shortcomings (while introducing its own issues, obviously). ;)

Fun fact: The Echo, Alligator, and Pulverizer were all RE's.
Win 10 | Ableton Live 11 Suite |  Reason 12 | i7 3770k @ 3.5 Ghz | 16 GB RAM | RME Babyface Pro | Akai MPC Live 2 & Akai Force | Roland System 8, MX1, TB3 | Dreadbox Typhon | Korg Minilogue XD

User avatar
KirkMarkarian
Posts: 292
Joined: 13 Dec 2015
Location: Tucson, AZ
Contact:

11 Dec 2018

rcbuse wrote:
11 Dec 2018
Its my experience that the more kludgy the code, the more fragile the software is. Things that are all hacked together under the hood show though with weird ass behaviors or crashes across platforms. Reason could easily be the most rock solid piece of software I've ever owned. I would be willing to bet money the codebase giving that behavior is extremely well maintained and a probably an example of best practices.
Agreed. Solid performer. Issues have only arose from the Rack Extensions I choose (and rarely, I might add), and not from Reason alone.

Ostermilk
Posts: 1535
Joined: 15 Jan 2015

11 Dec 2018

Another master software developer able to cast the first stone.

I'll tell ya, nothing here presently makes me as nauseous as the amount of expert pwogwammaz that infest this board lately!

Reason is a product much like a fridge. You either dig it or you don't, who on earth ponders on how the moulded inserts are made, let alone wonder on the background technology used to make them?

Armchair expertese seems like a much more common phenomenon lately and yet it achieves/proves nothing. If one really can see the faults then come up with something better, or as Frank would have said "Shaddup and play yer guitar"... :)

User avatar
guitfnky
Posts: 4411
Joined: 19 Jan 2015

11 Dec 2018

sort of tangential to the topic, but I was wondering about the bypass/on/off switch the other day...what is the use case for needing an off option? it’s been more annoying than anything, in my experience, when I accidentally turn a device off when I really just wanted to bypass it. 🤔
I write music for good people

https://slowrobot.bandcamp.com/

User avatar
ScuzzyEye
Moderator
Posts: 1402
Joined: 15 Jan 2015
Contact:

11 Dec 2018

EnochLight wrote:
11 Dec 2018
Fun fact: The Echo, Alligator, and Pulverizer were all RE's.
Proto-REs. The Echo has an annoying "feature" that's actually pretty closely related to this topic (displayed values in Combinators). Something that was changed for the final RE SDK release. The time knob has two modes, free and sync. Many devices do this, so you can either use ms, or beats. On REs when a knob has two functions it actually behaves as two different controls (as visible in the Combinator or automation lane). The sync on/off button chooses which control is active. Not so on The Echo. The knob is one control that has two different ranges? I don't know how to describe what happens, but it's definitely odd. Try putting The Echo in a Combinator, and using programmer to map the time control. Set a range for it to cover. Now toggle the sync button, and adjust either the top of bottom of the range. Odd, huh? It's most annoying when you set a time in ms, but change the sync to try something else, and don't like it, and turn sync off.

User avatar
ScuzzyEye
Moderator
Posts: 1402
Joined: 15 Jan 2015
Contact:

11 Dec 2018

guitfnky wrote:
11 Dec 2018
sort of tangential to the topic, but I was wondering about the bypass/on/off switch the other day...what is the use case for needing an off option? it’s been more annoying than anything, in my experience, when I accidentally turn a device off when I really just wanted to bypass it. 🤔
"Off" stops all code in the device from running, to possibly free up DSP resources. Some things like free-running LFOs, may still take CPU time, even if a device isn't receiving audio. If Reason had a quick way to freeze tracks, automatically setting bounced devices to Off would be perfect.

chaosroyale
Posts: 728
Joined: 05 Sep 2017

11 Dec 2018

That's a very good point. I got distracted by an annoying feature and speculated without any real evidence. At most I should have just said "this lack of standardization is annoying" and left it at that. If I had waited 5 minutes I probably would have let it go and not posted anything at all.
dioxide wrote:
11 Dec 2018
Oh. So your opinion is based on your feelings rather than something you can demonstrate? NEXT!!

User avatar
guitfnky
Posts: 4411
Joined: 19 Jan 2015

11 Dec 2018

ScuzzyEye wrote:
11 Dec 2018
guitfnky wrote:
11 Dec 2018
sort of tangential to the topic, but I was wondering about the bypass/on/off switch the other day...what is the use case for needing an off option? it’s been more annoying than anything, in my experience, when I accidentally turn a device off when I really just wanted to bypass it. 🤔
"Off" stops all code in the device from running, to possibly free up DSP resources. Some things like free-running LFOs, may still take CPU time, even if a device isn't receiving audio. If Reason had a quick way to freeze tracks, automatically setting bounced devices to Off would be perfect.
ah, that makes sense. that does sound like a good idea for freezing tracks...similar to the send to track functionality of Players, where it automatically bypasses the device(s).
I write music for good people

https://slowrobot.bandcamp.com/

User avatar
dvdrtldg
Posts: 2399
Joined: 17 Jan 2015

11 Dec 2018

chaosroyale wrote:
11 Dec 2018
If such an obvious thing doesn't get addressed in an optimized way, what is the situation with the main parts of the program?
Maybe for "obvious thing" substitute "tiny thing of next-to-zero relevance to the successful functioning of Reason whose non-existence as a serious issue makes it a low-order priority" and you've got your answer

User avatar
MrFigg
Competition Winner
Posts: 9136
Joined: 20 Apr 2018

12 Dec 2018

EnochLight wrote:
11 Dec 2018
MrFigg wrote:
11 Dec 2018
Kludgy or more correctly cludgey is the old Scots name for a toilet :). Just so’s you know :).



cludgey .jpg
That one’s in Edinburgh. I’ve seen a lot worse in Glasgow...and Stockholm for that matter :).
🗲 2ॐ ᛉ

User avatar
motuscott
Posts: 3440
Joined: 16 Jan 2015
Location: Contest Weiner

12 Dec 2018

Don't get me started about those "footprint toilets" I found while on tour in northern Italy. Luckily I was high as der Materhorn.
Who’s using the royal plural now baby? 🧂

synthetechsound
RE Developer
Posts: 136
Joined: 02 Oct 2015
Location: Brisbane, Australia

12 Dec 2018

Having used the RE SDK I can say with some level of certainty that the sdk was the most organised sdk I have ever used in 20 years of development. Not only was the code elegant and well organised but it was also extremely well documented. My impression from using their tools and the platform is that they know development. I see their approach as a step beyond best practice.

My .02

chaosroyale
Posts: 728
Joined: 05 Sep 2017

12 Dec 2018

That's really good to hear, and I am very glad that my bear-with-a-sore-head late night ranting was misdirected. I can certainly believe the documentation was excellent- Reason's manual is the best manual of any music technology product ever, hands down.

Given what you and others have said about the SDK, and the recent thread and video about the forward-thinking architecture behind the Rack Extensions which has apparently existed for years now....I wonder why Reason still feels so "last gen" compared to other software in terms of UI and workflow? It bugs me like crazy because I love the inspirational quality of Reason, and I feel like it has the potential to be a market leader. Right now it feels more like a quirky outlier slowly getting left behind. I'm not going to move over to the dreary spreadsheet that is Ableton just yet , but there are so many things left undone that leave me scratching my head in confusion.

synthetechsound wrote:
12 Dec 2018
Having used the RE SDK I can say with some level of certainty that the sdk was the most organised sdk I have ever used in 20 years of development. Not only was the code elegant and well organised but it was also extremely well documented. My impression from using their tools and the platform is that they know development. I see their approach as a step beyond best practice.

My .02

User avatar
Noplan
Competition Winner
Posts: 726
Joined: 16 Jan 2015
Location: Cologne, Germany

12 Dec 2018

It was not long ago when Reason was praised for its stability and everybody was hoping for VST support. Now the support is just here and reason is said to be the purest disaster under the hood. That's how fast it can go. And yet, I haven`t had a single crash yet to blame Reason. I don`t believe it's that bad. It's just a bit more complicated if you want to integrate everything into a virtual rack that is consistently upwards compatible. Reasons concept was not originally intended as a DAW. it has grown into one. If you already compare Reason with top DAWs with many years of VST experience, then everything seems to have gone well.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: Sogou [Spider] and 24 guests