import numpy as np
import sounddevice as sd

# Physical freq to "sample", must be integer
F_1 = 1000
# Volume must be between 0 and 100, may be float
volume = 20
# Sampling freq, must be integer
F_s = 6000
# Time how long a sample should last, must be integer
duration = 4

# Calculation of constants
volume = volume / 100
totalSamples = F_s * duration

# Comment out the last decleration if you want to use a fixed f1
f_1 = 0.3
#f_1 = F_1 / F_s

def GenSound(f1, noSamples, vol):
    x = np.empty(noSamples)
    for n in range(noSamples):
        x[n] = np.cos(2*np.pi * f1 * n) * vol
    return x

x = GenSound(f_1, totalSamples, volume)

print(x)

sd.play(x, F_s)
sd.wait()
sd.stop()