Problems saving xtmpreset for analogue and cerberus synths

41 views
Skip to first unread message

George

unread,
Sep 21, 2026, 3:07:26 AMSep 21
to Extempore
Hi all
I began fiddling with cerberus synths for the first time and found errors when attempting to save and load presets.
I went back to analogue synths which I know worked OK in earlier versions of extempore.

(analogue-save-preset syn1 "syn1_preset.xtmpreset")
;;  Terminal message:  done

But when I try to load the preset:
(analogue-load-preset syn1 "syn1_preset.xtmpreset")

;;  Terminal message:  Analogue Synthesizer Reset!
;;  Terminal error message:
;car argument, ..., is a symbol but should be a pair
;    ((define tag (symbol->string (car x))... ;; ))
;    *stdout*, line 303, position: 14450
       
I think this refers to:
https://github.com/digego/extempore/blob/81b1193dac2dd60f4cb51999c85a7cb9ce1f2bf0/libs/core/instruments/analogue_fileio-scm.xtm#L303
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Back to the cerberus synth:
I changed the syn1 of examples/sharedsystem/audiosetup.xtm to cerberus

I created the cerberus synth:
SetValue:  cerberus >>> [float,float,i64,i64,float*]*
;; New instrument bound as cerberus in both scheme and xtlang

and then followed the pattern of analogue_synth_basics.xtm.

When I try to save the preset:
(cerberus-save-preset cerberus "cerbpr01.xtmpreset")
I get an error message:
;vector-set! second argument, 128, is out of range (it is too large)
;    ((vector-set! modvec (+ (* i 32) j) (... )     ;        ))

I took a stab in the dark and changed line 321 to make the vector bigger:
"(define modvec (make-vector (* 4 32) 0.0))"
to
"(define modvec (make-vector (* 8 32) 0.0))"
https://github.com/digego/extempore/blob/81b1193dac2dd60f4cb51999c85a7cb9ce1f2bf0/libs/core/instruments/cerberus_fileio-scm.xtm#L321

Then it seems to save the preset without complaining.
But the load-preset won't work

(cerberus-load-preset cerberus "cerbpr01.xtmpreset")

;car argument, ..., is a symbol but should be a pair
;    ((define tag (symbol->string (car x))...
        ;    *stdout*, line 356, position: 18118

https://github.com/digego/extempore/blob/81b1193dac2dd60f4cb51999c85a7cb9ce1f2bf0/libs/core/instruments/cerberus_fileio-scm.xtm#L356

Ben, I suspect this could be another s7 issue. I'm looking forward to your response.

Regards
George

Ben Swift

unread,
Sep 21, 2026, 5:14:30 AM (14 days ago) Sep 21
to extemp...@googlegroups.com, Extempore
Hi George


It is an s7 issue, and not specific to cerberus. Analogue presets were broken the same way.


s7's writer drops list elements past (*s7* 'print-length), which defaults to 40, and writes a literal ... in their place. TinyScheme never truncated. The preset code serialises its whole parameter alist with write, so every preset saved since 0.9 was cut off after the fortieth entry. Open one in a text editor and you'll see it end in ...). That trailing symbol is what (car x) chokes on. The save was already broken; the load is just where you found out.


Fixed on master, along with the cerberus bugs your report flushed out. Your stab in the dark was right: the mod matrix is sized for 4 sources where cerberus has 8, and the load path had the same bug.


Three things at your end:


1. Revert your line 321 edit and pull.

2. Re-save your presets. The old files are truncated on disk with nothing to recover from them.

3. If you set an LFO type by name, rename it. PARAM_AD is now PARAM_LFO_AD, alongside PARAM_LFO_WT, PARAM_LFO_CONST and PARAM_LFO_RANDOM. PARAM_WT now means the oscillator wavetable only, and is 4. Oscillator waveforms are otherwise unchanged.


Tagged as v0.11.1, binaries building now.


Cheers,

Ben


On 21 Sep 2026, at 5:07 pm, 'George' via Extempore <extemp...@googlegroups.com> wrote:

Hi all
--
You received this message because you are subscribed to the Google Groups "Extempore" group.
To unsubscribe from this group and stop receiving emails from it, send an email to extemporelan...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/extemporelang/b9016efb-fc43-4fa6-9ff5-317ce4ddf9bdn%40googlegroups.com.

George J Wright

unread,
Sep 21, 2026, 5:54:16 AM (14 days ago) Sep 21
to extemp...@googlegroups.com
As I have said several times before - “You’re a wonder!”

Regards
George


George J Wright



George J Wright

unread,
Sep 21, 2026, 6:26:41 PM (13 days ago) Sep 21
to extemp...@googlegroups.com
Ben
Sorry to do this but ….
Fired up v0.1.1 on Mac
Loaded  “analogue_synth_basics.xtm”
Started the first pattern language code.
Getting this error:
xtm_play_note_adhoc_23_W05vdGVEYXRhKixpNjQsW2Zsb2F0LGZsb2F0LGk2NCxpNjQsZmxvYXQqXSosZmxvYXQsZmxvYXQsaTY0LGk2NCxmbG9hdCpd Scheme wrapper error: check the arg arity and types

Which appears in “xtminstruments.ll”

What does that mean?

Tried other “pattern_basics.xtm” with same response.

Regards

George J Wright



Ben Swift

unread,
Sep 22, 2026, 6:00:12 AM (13 days ago) Sep 22
to extemp...@googlegroups.com, extemp...@googlegroups.com
Oh, that is a slightly different issue but I think I fixed it in the new release that I just pushed. Can you try that one?

Cheers
Ben

On 22 Sep 2026, at 8:26 am, 'George J Wright' via Extempore <extemp...@googlegroups.com> wrote:

Ben

George

unread,
Sep 22, 2026, 6:26:18 PM (12 days ago) Sep 22
to Extempore

Thanks Ben
v0.11.2 the pattern language problem fixed!
Regards
George

Minoru

unread,
Oct 1, 2026, 1:08:14 AM (4 days ago) Oct 1
to Extempore
All my programs have been working without any problems on ver 0.11.2 for these days...
Thanks much to Ben, George, and every one else !
2026年9月23日水曜日 7:26:18 UTC+9 George:

Ben Swift

unread,
Oct 1, 2026, 1:14:46 AM (4 days ago) Oct 1
to extemp...@googlegroups.com
Great, glad to hear it.

Ben
>>> <https://groups.google.com/d/msgid/extemporelang/b9016efb-fc43-4fa6-9ff5-317ce4ddf9bdn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Extempore" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to extemporelan...@googlegroups.com.
>>> To view this discussion visit
>>> https://groups.google.com/d/msgid/extemporelang/1EBD4B63-D907-4CC2-A407-EF83A63F9B95%40benswift.me
>>> <https://groups.google.com/d/msgid/extemporelang/1EBD4B63-D907-4CC2-A407-EF83A63F9B95%40benswift.me?utm_medium=email&utm_source=footer>
>>> .
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Extempore" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to extemporelan...@googlegroups.com.
>>>
>>> To view this discussion visit
>>> https://groups.google.com/d/msgid/extemporelang/A35B0251-69B8-4AB4-82EA-793F54148ADC%40bigpond.net.au
>>> <https://groups.google.com/d/msgid/extemporelang/A35B0251-69B8-4AB4-82EA-793F54148ADC%40bigpond.net.au?utm_medium=email&utm_source=footer>
>>> .
>>>
>>>
>
>--
>You received this message because you are subscribed to the Google Groups "Extempore" group.
>To unsubscribe from this group and stop receiving emails from it, send an email to extemporelan...@googlegroups.com.
>To view this discussion visit https://groups.google.com/d/msgid/extemporelang/6e47b0f4-9174-449b-8d8a-33d603baca40n%40googlegroups.com.


--

Cheers,
Ben
Reply all
Reply to author
Forward
0 new messages