# ZynSeq Pads \[SOLVED!\]

**URL:** <https://discourse.zynthian.org/t/zynseq-pads-solved/5980>\
**Category:** Software\
**Created:** [June 27, 2021, 5:24pm UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980 "2021-06-27T17:24:17Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![harrytuttle](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/harrytuttle/32/6644_2.png) [@harrytuttle](https://discourse.zynthian.org/u/harrytuttle)\
**Post date:** [June 27, 2021, 5:24pm UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/1 "2021-06-27T17:24:17Z")

</div>

I have a question / idea (maybe I overlooked something and it’s already implemented):  
In Pads/Grid View, would it be useful to somehow visibly see if a pad has any notes in it? Maybe a symbol or any “empty” pads would be more greyish/desaturated? That would be different from a slot on the grid that has yet no pad at all, as that simply has no color and shows an empty grey slot, which is fine.  
That way one could distinguish on the grid any slots with empty pads vs those pads who already have playable notes in it.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [June 27, 2021, 9:03pm UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/2 "2021-06-27T21:03:20Z")

</div>

I suppose we could add a _stopped_ icon to the pad for sequences with content.

---

<div class="post-metadata">

**Author:** ![harrytuttle](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/harrytuttle/32/6644_2.png) [@harrytuttle](https://discourse.zynthian.org/u/harrytuttle)\
**Post date:** [June 28, 2021, 7:38am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/3 "2021-06-28T07:38:47Z")

</div>

You mean a little square? Sounds great! 🙂

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [June 28, 2021, 8:07am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/4 "2021-06-28T08:07:27Z")

</div>

> [@harrytuttle](#):
>
> a little square

Yep! That kinda makes some logical sense. I just took a look at the code and it will be a little tricky and needs some design decisions.

A pad triggers a sequence. A sequence is a set of one or more tracks. A track contains zero or more consecutive, non-overlapping patterns. Patterns each have a user defined quantity of steps. Each step may contain zero or more notes.

Do we want to indicate that a pad will trigger an sequence that will or will not play notes? In this case we need to check whether there are any events in any patterns in any tracks within the sequence triggered by the pad.

Now, that isn’t in itself too tricky but it needs to be done efficiently to reduce impact on performance. The code may be optimised in one direction and we may be swimming up tide!

---

<div class="post-metadata">

**Author:** ![harrytuttle](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/harrytuttle/32/6644_2.png) [@harrytuttle](https://discourse.zynthian.org/u/harrytuttle)\
**Post date:** [June 28, 2021, 8:25am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/5 "2021-06-28T08:25:37Z")

</div>

Right.  
Default, all pads are initialized with an empty pattern, I assume that was done being able to longpress and add notes right away?

So the tricky question is when to check for changes, so the program can decide to place a stop icon or not?

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [June 28, 2021, 10:15am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/6 "2021-06-28T10:15:21Z")

</div>

Yes! We redesigned the system to allow a simple, instant access to patterns where by default each pad triggered a sequence that had a single track which had a single pattern at time zero. It is quite a neat approach because we can use the same interface for tracker style sequencing and linear track based sequencing (and interesting hybrid operation too).

I am looking at the code now and think I can add a function to the library which indicates whether a sequence is empty. I will see what I can do.

---

<div class="post-metadata">

**Author:** ![harrytuttle](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/harrytuttle/32/6644_2.png) [@harrytuttle](https://discourse.zynthian.org/u/harrytuttle)\
**Post date:** [June 28, 2021, 10:34am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/7 "2021-06-28T10:34:01Z")

</div>

Awesome!

Btw. was this inspired by Ableton Live? It kinda reminds me of it, but in a good way given the reduced screen real estate.

I still need to wrap my head around its possibilities…  
Like e.g. Arranger mode is not 1:1 mapped to a layer, or is it? I first thought all same colored pads are assigned one specific layer, so then it could show that preset name also in pads view? or maybe allow naming a colored column/track in arranger a chosen name via longpress → virtual keyboard popup?

Maybe i’m still confusing things though 🙂

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [June 28, 2021, 10:44am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/8 "2021-06-28T10:44:19Z")

</div>

> [@harrytuttle](#):
>
> was this inspired by Ableton Live?

I have never used Ableton Live so I think I can defend my statement that it wasn’t _directly_ inspired by it. Most of the inspiration came from step sequencers and drum machines I used in the 1980’s, updated with experience of various apps I have used since. I think there are some novel workflows in ZynSeq which don’t appear elsewhere - or at least not in the combination we have implemented. I am quite pleased with the integration of different workflows into (what I think is) a unified, consistent and _fairly intuitive_ workflow.

Arranger mode allows access to some of the complexity that underlays the overall operation. As described above, there is a hierarchical structure which by default implements a simple, single pattern and hence out-of-the-box it appears like a direct mapping of one pad to one pattern. That pad may be assigned a channel which in turn aligns with a layer. (This may change in the future but let’s stay on topic…)

What Arranger does is expose the fact that each sequence may have multiple tracks and it is the track that has a MIDI channel assigned. The fact that simple mode has only one track makes it appear that the pad is associated with a layer but in fact it may drive multiple layers.

The sequence name (and hence the pad label) may be configured by the user using the on-screen keyboard.

Colours are associated with mutually exclusive groups which are used to control how sequences interact with each other, e.g. starting a sequence when another stops. This is also indicated by the letter shown at the bottom left of the pad and the name prefix in the title bar of Arranger.

Do take a look at the [wiki](https://wiki.zynthian.org/index.php/Using_ZynSeq) for a (fairly) complete description of the sequencer.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [June 29, 2021, 7:18am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/9 "2021-06-29T07:18:09Z")

</div>

I have added a [feature request](https://github.com/zynthian/zynthian-issue-tracking/issues/474) for this.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [June 30, 2021, 7:46am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/10 "2021-06-30T07:46:45Z")

</div>

I have added the feature to display a grey square (stop symbol) on a pad if the sequence is stopped _and_ the sequence contains content otherwise a stopped sequence shows no icon. This is implemented in the _feature/747\_indicate\_empty\_sequence_ branch and may be tested by switching to it with webconf and updating. I think it is okay so I will submit a pull request to merge to testing later today which, when merged will allow wider testing.

---

<div class="post-metadata">

**Author:** ![harrytuttle](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/harrytuttle/32/6644_2.png) [@harrytuttle](https://discourse.zynthian.org/u/harrytuttle)\
**Post date:** [June 30, 2021, 10:06am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/11 "2021-06-30T10:06:52Z")

</div>

Sounds really great, thank you for adding this! Will test it too next time I update my zynthian.

---

<div class="post-metadata">

**Author:** ![MrBroccoli](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/mrbroccoli/32/3195_2.png) [@MrBroccoli](https://discourse.zynthian.org/u/MrBroccoli)\
**Post date:** [June 30, 2021, 8:18pm UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/12 "2021-06-30T20:18:31Z")

</div>

just an FYI :- I am currently using an empty (no notes) pad almost like a start/stop button for midi clock.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [July 1, 2021, 7:14am UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/13 "2021-07-01T07:14:24Z")

</div>

Indeed this is a valid (and documented) workflow which remains available. Now you know that the pad you hit will not trigger events 😉.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [July 1, 2021, 12:53pm UTC](https://discourse.zynthian.org/t/zynseq-pads-solved/5980/14 "2021-07-01T12:53:01Z")

</div>

This is now available in the testing branch. Switch to testing with webconf, update and enjoy. If you are less intrepid then wait until the next stable release which is not yet scheduled but hopefully soon.
