So I'm new to coding, but I'm attempting to make my first full application. My goal is to have three Tkinter scale widgets representing the probability/weight of each corresponding note (either a plucked note, explicit silence, or a sustained note) showing up in a randomly generated rhythm. That being said, NumPy's Random module requires that all three probabilities must equal one - however, I do still want to keep the default starting value.

I've tried using the `.get()` and `.set()` methods extensively as well as the Scale Variable, all to no avail.
It's been a few days and my brain hurts. I can't get any of them to link dynamically whatsoever. Do I need a more OOP approach maybe?

I've stripped all functionality and unnecessary GUI elements to help isolate the problem: 

```
from tkinter import *

# def notes_comp():
#   summ = (float(silence_weight.get()))+(float(sustain_weight.get()))
#   diff = 1 - (float(note_weight.get())+summ)
#   if float(note1_weight.get())+summ != 1:
#       silence_weight.set(silence_weight.get()+diff/2)
#       sustain_weight.set(sustain_weight.get()+diff/2)

def notes_comp(value):
    notes_weight = var_1.set("value")
    silence_set = var_2.get()
    sustain_set = var_3.get()
    for i in range(1 - notes_weight):
        silence_set += .5*(1 - var_1.get())
        sustain_set += .5*(1 - var_1.get())

# tkinter GUI
root = Tk(className=" Rhythm Generator")
# setting color variables
bg_color = "#1c1c1c"
rollover_color = "#d9d9d9"
var_1 = DoubleVar()
var_2 = DoubleVar()
var_3 = DoubleVar()
root.configure(bg=bg_color)

# creating master frames
top_frame = Frame(root, bg=bg_color)
top_frame.grid(row="0")

# creating sliders
note1_weight = Scale(top_frame, from_="1", to="0", resolution=".1", variable="var_1", command="notes_comp")
note1_weight.grid(column="2", row="0")
silence_weight = Scale(top_frame, from_="1", to="0", resolution=".1", variable="var_2")
silence_weight.grid(column="3", row="0")
sustain_weight = Scale(top_frame, from_="1", to="0", resolution=".1", variable="var_3")
sustain_weight.grid(column="4", row="0")
note1_weight.set(.1)
silence_weight.set(.1)
sustain_weight.set(.8)

root.mainloop()

```