#|
A tiny :cl-buchberger trivial usage.

Since I've currently been defining my beeping sounds as like
(flet ((period (timestep-x) #|...|#)) #|...|#)
It seems I could use somewhat intuitive polynomials.

Further, I could have more than one dimension of change over time,
which would simply be polynomials of more than one variable.

I want to explore this rather than using a dft, since I have the
plan to implement the polyblep method as my low level signal
generation already.

Using goofily chosen polynomials like this I think let's me sweep
out funky harmonics in a way that might not be obvious choosing
them in frequency space. The way different instruments sound has
to do with their harmonics.

cl-buchberger also has
|#
(asdf:oos 'asdf:load-op :cl-buchberger)

(in-package :cl-buchberger-user)

(defparameter *ring* (make-instance 'ring :variables '(x)))

(defparameter *f-1*
(make-polynomial '(+ (expt x 1) 10)))
#|
*f-1*
#<POLYNOMIAL x + 10>
|#

(defparameter *f-2*
(make-polynomial '(- (expt x 1) 10)))
#|
*f-2*
#<POLYNOMIAL x - 10>
|#

(defparameter *f-2.3*
(ring* *f-1* *f-2*))
#|
*f-2.3*
#<POLYNOMIAL x^2 - 100>
|#

(mapterm #'identity *f-2.3*)
#|
(#<CL-BUCHBERGER::TERM -100 #(0)> #<CL-BUCHBERGER::TERM 1 #(2)>)

Which it seems like I could use to evaluate polynomial equations.

I guess integration & differentiation is another matter.

For now, it seems I ran out of time today.

Jack Daniel (McCLIM and ECL developer) tells my bbn's scigraph is
bitrotten. While I would like to read and tease something out of
it, Jack Daniel is also developing a new McCLIM based graphing
program (my meaning of program here may be different to what you
think) here's @[email protected] 's fossil:
https://fossil.turtleware.eu/polyclot

Also @[email protected] 's cl-buchberger
https://git.sr.ht/~jmbr/cl-buchberger/tree/

McCLIM:
https://codeberg.org/McCLIM/McCLIM
|#