Thanks! I hope I managed to explain everything somewhat clearly in the documentation.
documentation looks really nice.
Beta release 2 of the TimeSeq module is now available at
https://github.com/not-things-modular/not-things-vcv/releases/tag/v2.0.3-timeseq-beta-02
This update includes:
- Added set-label action to allow updating the tooltip labels of output ports
- Updated state handling during script loading to fix a memory issue when a script is already running
- Added an addition Sample and Hold example/tutorial to the documentation
Release v2.0.3 of the not-things modules is now available in the VCV Rack library.
New TimeSeq module
This release includes the first official version of the TimeSeq module, a JSON script driven sequencer: https://library.vcvrack.com/not-things/timeseq
The 8 inputs and 8 outputs (all supporting polyphony) are fully controllable using a JSON script that supports:
- receiving voltages or triggers from the input ports
- updating output voltages on the output ports (with scriptable polyphony)
- “glide” values that change from a start value to an end value with optional easing factor
- internal variables
- internal triggers to start, restart, stop and chain sequences
- conditional actions
- random voltages
- support for several parallel sequences
- timing based on samples, milliseconds, bpm (beats & bars) or hertz
Using the script, it’s possible to create simple sequences, more complex parallel sequences or even perform logic processing (e.g. one of the documented Samples recreates the Bernoulli Gate)
Full documentation is available in the GitHub repository:
- Main documentation page with links to:
- Overview of the UI
- Overview of the JSON script
- Detailed reference of the JSON script
- Samples/Tutorials with explanation, including full scripts and VCV Rack patches for:
- Building a chord & note sequence, incorporating some randomness
- Creating clock signals - Creating multiple clock signals with different time signatures
- Sample and Hold - Several ways to do S&H with TimeSeq
- A Bernoulli Gate - Recreating the Bernoulli Gate functionality
- Oscillator - Just because it’s possible
Other changes
Other v2.0.3 changes include:
- Small design updates, including a color scheme update
- Fixed an issue where a disconnect of the Solim Output Octaver was not correctly detected on the main Solim module
I just tried to build your main branch. Got this error:
In file included from ./include/core/timeseq-core.hpp:3,
from src/components/timeseq-display.cpp:2:
./include/core/timeseq-json.hpp:5:10: fatal error: nlohmann/json.hpp: No such file or directory
5 | #include "nlohmann/json.hpp"
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
But I wanted to see if you included any presets. looking at the source I don’t think so? would there be an opportunity there if you made some?
Did you do a “make dep” first?
That did it. sry. Oops, spoke to soon. Now I get:
In file included from ./include/core/timeseq-json.hpp:3,
from ./include/core/timeseq-core.hpp:3,
from src/core/timeseq-core.cpp:1:
./include/core/timeseq-script.hpp:172:25: error: 'uint64_t' was not declared in this scope
172 | std::unique_ptr<uint64_t> samples;
No prob
There are no presets indeed, because it depends on what the user wants to sequence, and the preset output would probably be confusing because you don’t know that comes out of which ports for which reason. That’s why I included the samples (script and patches) on the documentation pages, as a starter guide
ah, makes sense.
looks like include cinttypes isn’t included in that file?
correct, I didn’t include that file, but it does compile on my system and in the build that the VCV Rack team did?
so you don’t care that it seems to work by luck sometimes, and correctly fails other times?
If I had known that error could occur, I would have fixed it, but I haven’t seen it happen yet in my builds (Windows or Linux), the GitHub builds, or had a complaint from the VCV Rack team about it … so I would first have to know how to also get it on my system to fix it and verify that it doesn’t also happens somewhere else…
why not just put it in and ask me if it worked? It would clearly be “correct” to put it in.
I can tell from your code that your are an experienced programmer. Surely this is not the first time you can run into code that “works for me, not for you”?
100% repro for me:
- delete dep folder, to simulate forgetting to run make dep.
- make - fails as it should.
- make dep
- make
fails for me every time. msys fully up to date. win11 fully up to date.
btw, make gives me:
Makefile:34: warning: overriding recipe for target 'cleandep'
../../dep.mk:81: warning: ignoring old recipe for target 'cleandep'
tr: warning: an unescaped backslash at end of string is not portable
tr: warning: an unescaped backslash at end of string is not portable
There’s a Makefile in the dep directory that does the actual downloading of dependencies (similar to how Rack does it), so if anybody else wants to build from source: don’t just remove the dep directory because that will also remove part of the build setup.
Colour me impressed! This is super cool…
The user manual is remarkably well done, structured and… understandable! Thank you for this great work.
Sorry… posted in wrong thread… DOH
