Storing values/data in Axoloti, and ability to recall it


#7

Thanks smile Will check it out right away smile

EDIT:
I tried using it like this:
1. Push button in top left corner to feed the table with random notes.
2. Push save button
3. Push load button
4. Nothing happens smile

I think I am not doing it right....... I connected a display to the output of the load table. That is where new stored signal should be send out, right?


#8

I think the way to test is:
fill the table with random values, push save, fill the table again with different rnd values, then push load, and it should fill the table again with the first rnd values.
Not sure what the outlet of table/load is for, seems to have something to do with error messages.
And error messages I do get:
Axoloti says: Open failed
Axoloti says: Write failed
Axoloti says: Close failed
There is a help file for table/load and table/save, but inside load.axo it redirects to
<helpPatch>table.axh</helpPatch>
instead,
that should probably be:
<helpPatch>table_load_save.axh</helpPatch>


#9

Just tried what you wrote. I am pretty sure that when I fill the table with random numbers the second time, I can not recall the numbers I filled in the first time. Anyway that is what I experience here. I made the test really simple with the pattern length set to 4 so I know for sure if the pattern is loaded again.

Also when I "unlive" the patch and make it live again, I cannot recall anything form the load button.


#10

@alex

After reading what you suggest with knobs and midi I got a bit curious about your idea. Could you post an example? Just a very simple one. Thanks wink


#11

dont you need to allocate memory for the table first *
oh wait you did.
Probably needs to be in top left corner though for the operation execution order to work correctly.


#12

well maybe its the indexer - it works fine (i guess) with a simple string.
I can save and load the table file.


Feeding random pitches into a sel_fb_16?
Newbie Questions about Patch Loading, Preset saving, Polyphony, Midi Channels of standalone patches
#13

YES @alexk that works smile even when I unlive and live again it works. Freaking awesome. THANKS wink But also big thanks to @timvets for helping me realize my idea.

I am not 100% sure what those strings do and how they work..... But it works. Couldnt find any help file for the string objects....


#14

so i wonder if this is the way to build a preset save load system...


#15

Actually after REALLY testing it, I am back to zero.... It does not recall the exact numbers that I saved, so still just random, not really random patterns. Anyway, I have another idea to make it happen, which I am going to try out.

@allexk, about the save/load preset system: I am not sure what you mean? Have you tested the presets system that comes with axoloti? I tried and to me it works pretty ok. Still need to do some more testing.

What is you idea with preset load/save system?


#16

are you saying table/save, table/load doesn't work?
if so, perhaps we can create a simple test case to prove this...
e.g. fill a table with a sequence 1 to N, save, then load it....
(don't use random numbers as its hard to debug and prove whats going on)

more specifically in your case, are you saying that you want a random sequence, but that you want it repeatable? if so the usual solution to this is to use random seeds. this would allow 'repeatable' random patches.
(the only disadvantage, is if you want to have some 'really random sequences' mixed in with repeatable random sequences ... as there is only one random seed , on the flip side this is often an advantage, as you can have lots of things being pseudo random)


#17

i need to save presets while the synth is live since i want to build a hardware interface that lets me noodle without a pc or the patcher. I was thinking of using a table to save all of the values of knobs into a string and then parse it out and feed it back to the knobs when loading different tables (presets).

weird you weren't getting the same number loaded back in. i think it worked fine for me.


#18

this would probably be better done at the the parameter level... the firmware already maintains a list of all parameters and their values, so it would just be a matter of persisting this to the SD card, and then being able to reload it. Id also store it as binary... much faster to read/write.
(note: there are some limitations in parameters, but this will need to be resolved mid term anyway)

one complication, would be ensuring it worked, even if the patch changed.... not impossible, but a complication. (it knows the names of the parameters too)


#19

im still a little bit away from writing that design doc in the other thread about what i wish to do..since im still info-diving about all the wavetable synths out there and making the sound engine. but cant wait hehe.


#20

I am not saying table/load table save doesnt work.... I wouldnt go that far smile

Will do test again now... but a few days ago I also tested it with a pattern length of 4 so I can see if the exact pattern is repeating. As I save it and load it again it is not the same pattern that is reproduced. That is what I noticed.... You can push load button but it is not the pattern that was saved.

To me it makes no point trying with not random numbers, cause I want to use it with random numbers. Also if you set the pattern length to only 4 it should be possible to trouble shoot...

But maybe it does remember the numbers but doesnt play them back in the right order?

Will do the test again now.

But yes I am looking for random patterns or sequences if you will. Not just random..... Random has no pattern... Random patterns is made of random numbers, but it has an order on what and when it is played....... Take a look a bit up in this thread there is an explanation on the G2 module I am trying to recreate..

Anyway, I think I have found another approach which doesnt include tables. New idea is much more DSP friendly too.


#21

Ok..... Hmmmm..... I might have to take my statement back again.... Now it works and recall the exact pattern. Maybe I did something wrong on the test the other day.......


#22

Seeds, patterns I think we are talking about the same just different names :=)

Anyway, my new approach is to take the "Sel/sel i 32" chain 4 of them into a 128 steps sequencer..... Then set the random values manually(I use https://www.random.org/integers/ for the random values).

This seems like a more sufficient way of doing it and doesnt take up precious SRAM.

Could use a "Sel/sel i 128" object for this and other things too, but it also works just chaining a few shorter ones.


#23

Yeah sure, would be awesome to be able to read and write presets in real time smile If you find a solution for that, please let us know smile For me the string object is still a mystery.... Dont know how those work yet. Are they also used in Reaktor or Max? Anywhere I can read about different uses of scripts?


#24

well thats what I'm trying to determine.... there is a one line C function called srand, that takes an integer....

if you call this with a particular number, say srand(1234), you can then just call uniform, and it will automatically always give you the same sequencer of (apparently) random numbers.... (in computers numbers are never random!)
if you call srand(124817) then calling uniform will again give you another (different) sequence of (apparently) random number

the only thing you have to be aware of, is if you have more than one uniform (or anything else that uses random numbers, e.g. noise?) then the sequence will depend on them always be called in the same order....

its a tricky thing to get your head around, and may or may not work for your use-case, but its simple to implement smile


#25

I am not sure I totally understand the one line c function idea, but it sounds interesting smile But it needs a new object to function, right?

Random in the G2 module is also not really random, cause values are predefined, hence I called it random PATTERN. But that is what I want to do. I want to be able to recall the same "random" pattern at will and not just a string of values that is different everytime. And the patch Tim Vets made works fine for this... I think the reason it didnt work the other day was because I used an old version of the patch... Today I found newest one and that worked... Dough, smile

But I found this new approach with sequencer a little bit better cause it is easier to control and dont use tables(SRAM)...... And therefor I dont have to push "load" button everytime I make the patch live to load it into the the table again. I just load the patch and the predefined random numbers are availabe in the sequencer.. Much easier to access...


#26

so how to load and save ?

i get Axoloti says: Open failed

Axoloti says: Write failed

Axoloti says: Close failed

Axoloti says: Open failed

Axoloti says: Write failed

Axoloti says: Close failed

Axoloti says: Open failed

Axoloti says: Open failed

hmm :smirk: