Rewrite SPL
Closed this issue · 1 comments
Bubobubobubobubo commented
SPL is too complex and not effective enough. Some changes are needed to make the language more expressive but also more discoverable for users. I believe that it could be much better just by adding a few more functions and by correcting the grammar to really embrace the list processing model Sardine currently follows:
- removing numbers before sample names. It just breaks everything.
- supporting global scale and scale function for user friendly melodies
- support for variables using
(set id val)
and(get id)
- real euclidian rhythms (durations, not boolean mask) using the
(e steps nb_steps rotation)
function - removing some operators (
$
, replaced by the(time)
,(phase)
,(beat)
,(unix)
function, etc...) - Octave down is
_
, silence is still.
. Repaired'
.- Limiting MIDI up and down when using
'
and_
.
- Limiting MIDI up and down when using
- some goodies like
(drunk)
- Updating
process.py
to line up with SuperDirt changes. - Fixed the new LFOs:
(ulsaw)
,(ultri)
and(ulsin)
. - Adding a new binary rhythm generator with rotation
(br number rot)
- Adding a variant for generating binary lists
(bl number rot)
- Adding a variant for generating binary lists
Some bugs still remain:
- Polyphony is wonky, things revert back to list very easily
Documentation is important. I don't want to push these changes to the user without documenting everything properly. I guess that it is time to rework the poor Function Library
section to make it obvious that you can do more than just lining numbers.
Bubobubobubobubo commented
URGENT: I need to finish the update of the function library part of the documentation.