- Create a file with "samples" from your formulas.

Simple "C" or Python scripting will do the thing, unless Octave itself has means for it.
- Install
`Audacity`

- Menu: File > Import > ... your sample-file.

Some Python -code to play with...

```
$ cat rawsnd.py
#!/bin/env python
import math, sys
# trick to make CSI, ESC[ - sequences work in Windows-stupid-CMD.EXE to activate "ANSI.SYS" (as in old MS-DOS)
import os;os.system("");CSI='\x9B' # terminfo, curses, "ANSI" terminal expected
sps=44100 # sample rate, 44100 for "CD"-like
et=10 # end time, seconds
res=2**16-10 # max value for samples, UNSIGNED, < base-two-binary-max.
halfres=(res)/2 # adjust for SIGNED, Because*sin()/cos() [-1,1]
pi=3.141592653589793
Hz=440 # base frequency, at least for simple cos or sin
top=-1
bot=1
length = math.ceil(math.log(res, 256)) # bytes per sample
sys.stderr.write(str(length)+' bytes /sample\n\n')
f=open('TEST.raw','wb')
for t in range(int(et*sps)): # "t" in "samples"
timespot=Hz*t/sps
#
#> cos t + cos 2^(1/2) t # note: cos()+cos() may reach [-2,2], so scaled to half.
#s=int(( math.cos( 2*pi*timespot )+math.cos(1.414*timpespot) )/2*halfres)
#
#> cos(2π · 440 t)
s=int(math.cos( 2*pi*timespot )*halfres)
#
print(f'{CSI}A{s}{CSI}K')
if s>top:
top=s
elif s<bot:
bot=s
f.write( int.to_bytes(s, length=length, byteorder='big', signed=True) )
print(f'{CSI}AValues: top; {top}, bottom; {bot}{CSI}J')
```