Loomer Architect Tips.txt "Still a few issues that I can't seem to figure out , is how to send midi cc to external hardware" Built-in > MIDI Process > pack controller. Connect this to a MIDI out. If you're struggling to figure it out, I can know up a quick example. "Also , how to enter longer notes (tied ) , and re-trigger individual steps" If the gate is at maximum, it will tie into the next note. To retrigger steps, put the count up from 1. To skip them, put it to 0. "Inividual note delay (built in sequencers )...?" Depends what you want here. You can use the speed parameter to lengthen or shorten notes - basically coming off the meter - or maybe use an aux output to a MIDI delay. "No mouse wheel suppport ?" There is for rotary controls, etc. Which components do you think should also have mouse-wheel support? "How can i load a midi file to then process within Architect?" Import it in the MIDI Files window. Play the file with Built-in > MIDI Source > MIDI player. "thanks _ I will try that. Ultimately I want to do more than play, eg apply processes to the file to generate a new file based on the original eg shuffle timing and pitch independently" You can use a `MIDI player` connected to a `write to MIDI pool` to run a file through Architect, as it were. I tend to prefer using the `memory`, `store` and `load` modules for incrementing values, rather than feedback (which is what you've done when you feedback into the left-hand inlet of `+`), but that's just a personal preference. "I'm glad we don't have to deal with the hot and cold inlet mess from PD in Architect. The separate call inlet is a really nice idea and way more intuitive." I went with the 3 aux lanes in the end because I felt that to go with hardcoded CCs vs flexible aux data that can be used for anything was a bit of a limitation. `MIDI output` is a module, found in Built-ins > Output, and that'll be your link between the graph and the mixer or external MIDI devices. Mappings can MIDI learn if you turn on auto-mapping, which is on the bottom right of the Remote Mappings window. Select a purple destination and wiggle your controller. Sequencers created in the graph are, by default, set to Auto conduct, which just means play the first (or current) pattern continually. This is for people who just want a looped pattern, for perpetuity. What you want is Play conduct. The icons do change depending on if you're in Auto, Play, Timeline mode, but you're right: this can be confusing, so I will try to address this in the next cycle to make it obvious what is what. "Just found out that any parameter of any sequencer can be controlled by other sequencers." "Another quick question , I want to use a monosequencer (seq1)gate/trigger out to advance to the next gate of another sequencer (seq2) , old skool trick" The second sequencer, the slave, should be set to a Conduct of "Modulate", and have its mod inlets shown with the "Modulation" eye at the bottom of "Pattern". Set its "Control Action" to Gate. Connect your master source to the "play pattern control" inlet. "Is there a way to make notes just a tiny bit longer than 1 step, for glissando effects, so that the end of the note overlaps the (beginning) of the successive note?"" I (think) that in the mono seq, if you set a note's gate to maximum (tie) you will get this affect. EDIT: Yes, it does. "Is there any way currently to add parameters to user macros in the way that the built in objects have various classes of parameter (generic parameters for the metronome, note parameters for sequencers etc.), or are we restricted just to defining input parameters via the data inlets at the moment?" The latter, at the moment, I'm afraid. Adding macro properties is planned, though. "On a similar note, what's the difference between an active data inlet and a regular data inlet? I noticed the active data inlet is green but I can't quite get my head around the difference in functionality."" Basically, active inlets will (or may) send a message or perform an action, while inactive ones just cache the value until the module's active inlet is signalled. "Are the pre-built sequencers dissectable / modifiable ? Would love to study how’s everything was done (if possible of course). Having a set of sequencers that I can modify / complexify whenever needed is exactly what I dream of."" The pre-built monolithic sequencers are currently not decomposable as they use a lot of internal gubbins I really didn't want to expose. Potentially, in a pre-1.0 future, I could look into refactoring them to make them into macros, if possible. "1. Could be architect a way of building editors/librarians for external gear (via SysEx)?" Yeah, easily. I think that there is a limitation in Arc's maximum allowed size of sysex messages. Library editing should be fine, but sample dumping via sysex is probably out of the question! "2. Is there any MIDI buffer recording/playing features? (to build MIDI loopers and the likes)."" There's a MIDI delay, write to MIDI pool, MIDI player. I had a specific MIDI looper module, but it didn't make the cut for the beta. I'll look into getting that back in shortly. "I am using the plug-in inside Bitwig and was wondering whether it was possible to send the midi output of two different mono sequencers to separate VST tracks inside the DAW? If so, how would one go about this?" VSTs only have a single MIDI output, so I guess the best thing to do would be to send the data on separate channels and then have each VST respond to only data on that channel. I have a feeling I can actually do something to tell Bitwig to treat each MIDI channel individually, which would effectively give you 16 MIDI outputs per instance. I'll add it to my things to do, take a look when I get a chance. Sudden thought: is audio actually running through the plug-in. All graph events happen during the plug-in process, so if a plug-in is suspended or audio turned off, the graph events will be queued up waiting for audio to be turned back on. "Ah, now I have it: The dial needs to be connected to an output before it does anything. Ok, as you were, works now. Just while building something that may not be obvious...? Hmm... Can things that do not really rely on triggers always work? Like a rotary going into a text field - this should always "do" something when the dial is turned if at all possible. (this is in the plugin)" As it currently works internally, it's not possible because in order for events to happen at exact positions, they occur on the audio thread. So no audio, no events, no update. "I had this yesterday but no longer :( In graph view how do I play a file from the pool?"" This would play the "Seq 02" file from the MIDI pool: "At the moment I'm using to call with input with the numerator & denominator to check whether or not to send an output signal, but I'm worried that this is excessively CPU intensive (as mentioned in the info)? Is there a better way to do this?" You should be fine. This type of thing - where you need to check something every single tick - is what that module is there for. The comment was more to dissuade people from doing `print` every tick or something. Architect does some sneaky things with objects behind the scenes to ensure it can do things fast. For example, for common objects such as signal, true, false, number 0, etc, there is only ever one object created. if you send one of these, Arc doesn't actually create any new objects at all, just shares the global one. "Currently when duplicating a scene , an alias is created of the original pattern , making changes to the new scene patterns are reflected in the original pattern." You can do that in the timeline, but somehow it got overlooked in the play view. I'll make a note to get it added. "i'm trying to send a little sysex message to one of my external hardware synths. It seems that "pack sysex" wants arrays and not tuples. So the problem is that i want send a sysex message with a variable value controlled by a slider. Would a thing like send a tuple (index, value) to an array work? And then send an array to the "pack sysex"." "All my attempts are giving errors like: 'build array: array contains elements of mixed types'. I'm trying to build an array of 2 elements sending [build array] two tuplets: (0, 127) and (1, slider value)." Sliders output float types and your array is integer. Array building is (I think) the only case where numeric types are treated differently because by knowing if an array if integer or float, other bits can be optimised. So first off, I'll enhance that error message to make it clear that it is mixed numeric types. What you need to do is cast your slider outputs to integer. "So basically a tuple is not considered a vector? I guess beacause it has no indexes. It's just a collection of data?" Yes. The key difference is that arrays are homogeneous (each element is of the same type); whilst tuples are heterogenous (elements can be different types), and the position of an element actually means something. So if you look at the tuple from say a noteon, you will see ("noteon", key, velocity, channel). "Anyone knows how to set up the debug midi , the module has a midi output but the debug print has a data input?" Debug MIDI only passes through MIDI when the debugger is on. You can use it to route MIDI to debugger-only parts of the graph. "In Reaktor we have the global sample rate clock to trigger read events , is there some kind of equivalent in architect?" There's an On Every Tick module (or something along those lines, not at PC right now) which sends a signal at 960 ppq which is Architect's internal timing resolution. "I want to use the onscreen keyboard module to record in the stepsequencer ( while playing ) Midi out of keyboard into midi input of the seq , but the notes should be recorded under the playcursor position I assume that's the 'record write index' is for , but I have no idea what should be connected to it ..something along the lines of "play cursor ' ??" It just takse the step to write to as a number. I guess in your case, you probably want to enable the sequencer's "Step Out" (Properties > Transport) and then feed it back into "record write index". "Any particular reason why we can't adjust the play head marker in the song position view ?"" Double-click on the ruler. I think it quantises the click position to whatever the timeline Q setting is. Standalone only, though, because as a plug-in the host controls the transport. The best way to discover what things are sending in the absence of documentation is a print (for data types) or `MIDI to tuple` connected to a print (for MIDI types.) "Audio files pool - is it used to show up only recorded sounds within architect, correct?"" Yes, just for capturing audio output. "Monostep sequencer: notes can be entered only of the same length? I mean, we have 16 steps and I want to enter 1/4, 1/8, 1/8 , 2/4 notes and so on. Is it possible?" Use the divide and multiply rows, which are per-step. "Monostep sequencer: Can patterns be imported from the midi pool?" No. You can play them using a `MIDI player`, but not convert them to mono-seq (for example) patterns. "Monostep sequencer: If I duplicate a pattern it is "linked" to the original, how to unlink it?" If you duplicate in the pattern view to the left of the sequencer, if creates a new pattern. In the timeline, you can convert a clip to a new pattern. "Are "Custom Scales" (.scale) limited to chromatic intervals?, BTW the ubiquitous "aeolian" scale is not present (I know, it's the natural minor :-)" Yes, currently. "If Architect is loaded as a VST in a DAW (specifically in a track of the DAW) and I select "host" as a method for playing notes: what if the Architect graph uses more than one midi channel as output to host? Didn't try this yet, I've to experiment more with this." It'll just pass MIDI data out in a multi-channel format. What the host does with this is up to the host. "And what about a midi send (inside macro ) --->midi receive ( outside macro ) not working" By design. The scope of a send is limited to the same macro. Otherwise, what could happen is, say, you have a send called `synth` in your project, and you import a macro built by someone else and they use the same `synth` label. Suddenly, you're getting interference from some other send that may not know even exists! "I scaled the output of a random generator upwards by 100 , then I want to restrict the minimum (60) value by routing it into a minimum module." A `minimum` module returns the smallest of the two numbers that are passed in. You want a `maximum` module. There is also a flexible `remap` module, with which you could remap from one range (0 - 1) to another (60 - 100). "Properties are things that are in the property tree or have a UI element. They are stored in the patch. Other things (values) are stored internally in their modules, but are lost after a reset or the if preset is loaded from new. Disconnecting things after setting values a la Pure Data is a perfectly reasonable and sometimes handy thing to do." "Hi all- It's not possible to put Panel UI Components inside a macro?" Yes, but the macro needs to be visible on the panel as well. "Is there a way to turn on and off the "distinguish notes" module during play?" You can use a branch to either route notes to or away from such a module. . . . . . Tue Jan 08, 2019 4:02 am EST