Architect beta for macOS, Windows, and Linux. 0.10.5 now available

Official support for: loomer.co.uk
Post Reply New Topic
RELATED
PRODUCTS

Post

colin@loomer wrote: Wed Jan 23, 2019 8:53 am You can indeed Charles.

* Show the modulation inlets (under Pattern)
* Set the Transport > Conduct to Modulate and the Transport > Control Action to One-Shot
* Send the pattern number that you wish to play to the "play pattern index" inlet
* Start the pattern playing with a signal to the "play pattern control" inlet.
...
Thanks for this info.
And to add to it.
What would be way to have the mono step sequencer to advance in one step increment for each "true" or "1" it'd received?

Post

Nice and easy. Using the same setup as above, set the Control Action to "One-Step", and then send anything truthy to the "play pattern control".
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.

Post

colin@loomer wrote: Wed Jan 23, 2019 8:53 amIf you're struggling, let me know and I'll post a quick example patch for you.
No, very clear; I'm having quite some fun.

It seems that the "restart" and "one-shot" properties are saved with the pattern? I have one pattern of each, and believe switching between them changes their loopiness.

The other thing that interests me ATM is whether a pattern's data can be written all in a go. Can I create an array of format:

[(index, key, velo, oct, gate, multi, div, cnt, aux1, aux2, aux3),(...)]

or something?

Thnx!
Tranzistow Tutorials: http://vze26m98.net/tranzistow/
Xenakis in America: http://oneblockavenue.net

Post

Hi Colin- I've noticed this:

The preset: http://vze26m98.net/loomer/write_pat_index.xml

Image

Pattern 1 is a one-shot, pattern 0 restarts. I dbl-click the two [data] objects to switch between patterns. If I click on pattern 0 to play, its index is printed on the console, if I click on pattern 1 to play, its index is printed also, but any further clicks to this one-shot don't result in a print of the pattern index.
Tranzistow Tutorials: http://vze26m98.net/tranzistow/
Xenakis in America: http://oneblockavenue.net

Post

(In reply to your first post!) That's correct: that option is a pattern property. Someone requested I differentiate global and pattern properties, so when I add such an indicator, it'll help make this classification clearer.

I'm afraid there is currently no single inlet to write all pattern data in one chunk. Using your given example, though, you could extract the individual elements with `get element` and then route each individually. Maybe a `for` and a `data switch 1:N` could be used for this? Due to the event order, you're guaranteed to write all the data before the sequencer processes so don't need to worry about torn writes.

Let me know if this works for you, and if not, I'll think about how I can soften this in a future iteration.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.

Post

cturner wrote: Wed Jan 23, 2019 3:20 pm Pattern 1 is a one-shot, pattern 0 restarts. I dbl-click the two [data] objects to switch between patterns. If I click on pattern 0 to play, its index is printed on the console, if I click on pattern 1 to play, its index is printed also, but any further clicks to this one-shot don't result in a print of the pattern index.
That outlet sends only when the pattern index actually changes. So retriggering say pattern 0 will only send the one 0, no matter how many times it is retriggered afterwards.

I guess you could show the step outlet and detect when the step is 0, if you wanted to know when the pattern restarts.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.

Post

colin@loomer wrote: Wed Jan 23, 2019 3:32 pmThat outlet sends only when the pattern index actually changes. So retriggering say pattern 0 will only send the one 0, no matter how many times it is retriggered afterwards.
That's fair. I'm sure that I'd want to trigger on pattern change at some point in the future. ;-)
Tranzistow Tutorials: http://vze26m98.net/tranzistow/
Xenakis in America: http://oneblockavenue.net

Post

colin@loomer wrote: Wed Jan 23, 2019 3:25 pmUsing your given example, though, you could extract the individual elements with `get element` and then route each individually.
Just to confirm the obvious: I write arrays of data into exposed row inlets to create a pattern? Is there a "step-record-like" method whereby one can specify a step index, and then write all the data for a step?

EDIT: I see I can write MIDI data successfully in a step-record-like fashion. Cool!
Tranzistow Tutorials: http://vze26m98.net/tranzistow/
Xenakis in America: http://oneblockavenue.net

Post

@cturner: I tried what you describe (step-record like) a week ago or so and was almost there (and I'm not a hundredth as skills as you are when it comes to patching). I don't have the fragment any longer, but I built on Gentleclockdivider similar experiments, using tuples and unpack note / pack note. I could make it work using multiples tuples IIRC (one for the step and note, another for the step and gate, a third one for the step and velocity etc...) but failed to pack it all into the same tuple : then I could change pitch / gate / velocity at once, but not the step.
Sorry not to be more specific, hopefully it'll be enough to help a bit ;)
I suppose it won't be as useful once Colin adds text-input / tracker-like workflow to Architect though (can't wait !)
Computer musician / Ableton Certified Trainer / Mastering engineer
.com
3OP

Post

Maybe a generic "step write offset" * would be handy for these cases, as it would save a lot of tupling back and forth?

* The name needs work; I'm just brainstorming.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.

Post

Thanks @nilhartman, I’ll keep poking around.

I actually haven’t got enough experience with what’s currently on offer in Architect, so I’m disinclined to say something’s missing ATM.

I have at least one idea where scripting patterns in Lua would be appropriate, so there, writing rows at a time would be easy-peasy.
Tranzistow Tutorials: http://vze26m98.net/tranzistow/
Xenakis in America: http://oneblockavenue.net

Post

colin@loomer wrote: Tue Jan 22, 2019 9:08 am I hear you guys. Seems to me like it would benefit us for me to move my focus onto tutorials and examples, rather than bug-fixing and features, as that is the current sticking point for a number of you.

As an interim, though, I am happy to help and to explain how to build things, or to at least point people in the right direction regarding which modules to use, etc.
Yes, for those of us who don’t have any experience with Lua this would be helpful. :)

Post

Hi Colin- Noticed this about entry into a [data] object. I won't complain about the font size of the data entry box in the property panel being small-ish for my aging eyes, but it seems that if there's a syntax error, the box can't set the text correctly:
Image

After I've copied the data out into a text editor and fixed the problem, things display well:
Image

EDIT: Also seems like there's a space required after the comma separating the key/value pairs in a map?

EDIT2: Is there a discrepancy between what the manual and application say is a map definition? Must the "value" be either a scalar or an array, not tuple?
map - A map consists of a number of key and value pairs, They are denoted with curly braces,
for example {"noteons": [60, 62, 64], "noteoffs": [60]}.
Image

EDIT3: I guess I get the [build map] syntax, but I don't understand why I can't use the syntax that's in the manual or printed on the console as a definition? Re the below: things work, but I'm having a bit of a time trying to understand how to define keys that are vectors.

Image
Tranzistow Tutorials: http://vze26m98.net/tranzistow/
Xenakis in America: http://oneblockavenue.net

Post

delete post
Eyeball exchanging
Soul calibrating ..frequencies

Post

cturner wrote: Wed Jan 23, 2019 9:15 pm Hi Colin- Noticed this about entry into a [data] object. I won't complain about the font size of the data entry box in the property panel being small-ish for my aging eyes, but it seems that if there's a syntax error, the box can't set the text correctly:
Image

After I've copied the data out into a text editor and fixed the problem, things display well:
Image
Noted, thanks, I'll take a look. As an aside, you can magnify the whole UI under the preferences, but on reflection, I think you are correct in that these property field fonts could do with being a mite larger.
EDIT: Also seems like there's a space required after the comma separating the key/value pairs in a map?
I don't believe that's the case, but if you've found an example where you need a space, could you send it to me and I'll see if I can work out where the lexer is going wrong. Thanks
EDIT2: Is there a discrepancy between what the manual and application say is a map definition? Must the "value" be either a scalar or an array, not tuple?
No, the value can be anything, as far as I recall. I think the map key can be anything but another map or array (although I think I could probably relax this limitation, if requested.)
I'm having a bit of a time trying to understand how to define keys that are vectors.
Ah, so that is the request! I'll see if there is any technical reason why array map keys were forbidden, and if not, I'll allow them.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.

Post Reply

Return to “Loomer”