# A question about automating the switching of sub-snapshots

**URL:** <https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614>\
**Category:** Software\
**Created:** [May 27, 2024, 8:03pm UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614 "2024-05-27T20:03:10Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Absov](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/a/439d5e/32.png) [@Absov](https://discourse.zynthian.org/u/Absov)\
**Post date:** [May 27, 2024, 8:03pm UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614/1 "2024-05-27T20:03:10Z")

</div>

Good afternoon! The following functionality is implemented in Yamaha synthesizers: there, using the sustain pedal, you can switch registration banks - this is something like your sub-snapshots. There it is called a REGISTER SEQUENCE. This is a special sequence that defines the sequence of banks that are switched by pressing the pedal sequentially. Is there any similar functionality implemented in Zynthian?  
If not, is there any way to automate the loading of sub-snapshots using notes rather than program switches? Maybe it is possible to convert notes into messages about switching programs? Not all midi devices can assign anything to quickly switch these programs. Thank you in advance for your advice!

---

<div class="post-metadata">

**Author:** ![jofemodo](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/jofemodo/32/2_2.png) [@jofemodo](https://discourse.zynthian.org/u/jofemodo)\
**Post date:** [May 27, 2024, 9:54pm UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614/2 "2024-05-27T21:54:32Z")

</div>

> [@Absov](#):
>
> If not, is there any way to automate the loading of sub-snapshots using notes rather than program switches? Maybe it is possible to convert notes into messages about switching programs?

Hi @Absov !

You can configure this kind of behaviour using the MIDI filter rules, as documented in the wiki.

[https://wiki.zynthian.org/index.php/MIDI\_Filter\_Rule\_Language](https://wiki.zynthian.org/index.php/MIDI_Filter_Rule_Language)

Regards

---

<div class="post-metadata">

**Author:** ![Absov](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/a/439d5e/32.png) [@Absov](https://discourse.zynthian.org/u/Absov)\
**Post date:** [May 30, 2024, 7:59pm UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614/3 "2024-05-30T19:59:58Z")

</div>

Thanks! Yes, it works.  
But, it seems to me, it would be worth thinking about creating something like a registration sequence that switches with an ordinary pedal. Yamaha has come up with this very well. I teach keyboard synthesizer, and this mechanism is very effectively and easily used for switching scenes. But the synthesizers themselves, with their AWM synthesis and its analogues, are hopelessly 30 years behind. Naturally, we are talking only about “consumer” synthesizer models, such as the PSR line.  
Zynthian perfectly complements or even replaces similar devices.

---

<div class="post-metadata">

**Author:** ![jofemodo](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/jofemodo/32/2_2.png) [@jofemodo](https://discourse.zynthian.org/u/jofemodo)\
**Post date:** [May 30, 2024, 8:34pm UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614/4 "2024-05-30T20:34:22Z")

</div>

Hi @Absov !

You proposal seems interesting.  
Please, open a feature request in our issue tracker and describe as detailed as possible the desired workflow, including use cases, etc.

> **[GitHub - zynthian/zynthian-issue-tracking: Centralized Issue Tracking for...](https://github.com/zynthian/zynthian-issue-tracking)**
>
> Centralized Issue Tracking for Zynthian Project. Contribute to zynthian/zynthian-issue-tracking development by creating an account on GitHub.

The more details and explanations you give, the more probable you convince some developer to implement it, including me 😉

Thanks!

---

<div class="post-metadata">

**Author:** ![Absov](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/a/439d5e/32.png) [@Absov](https://discourse.zynthian.org/u/Absov)\
**Post date:** [June 1, 2024, 10:08am UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614/5 "2024-06-01T10:08:43Z")

</div>

Hello!  
Created a feature request:

> <https://github.com/zynthian/zynthian-issue-tracking/issues/1056>
>
> The Yamaha PSR S/SX synthesizer line includes functionality such as "\*\*registrat…ion sequence\*\*". This is a very convenient and useful feature that we often use with students (I am a keyboard synthesizer teacher). To save the scene settings (in the synthesizer, these are style settings, sequences, right-hand programs, left-hand programs, mixer, processing, etc.), \_registration memory\_ is used. This is a function similar to \*\*ZS3\*\* in Zynthian.
> 
> They can be saved and switched using dedicated buttons. A group of registration memory buttons can be saved as a \_registration bank\_. This feature is similar to \*\*Snapshots\*\* in Zynthian. If registration banks are used to change settings between performances on stage, then registration memory is used to change settings during a real-time performance.
> 
> 
> In addition, Yamaha PSR synthesizers have a mechanism such as a "\_registration sequence\_". This is a fairly simple mechanism that allows you to use the \*\*sustain pedal\*\* to switch the sequence of the registration memory (\*\*SZ3\*\*). To implement this function, a sequence with the numbers of the registration memory buttons is stored together with the registration bank, for example \`1, 2, 3, 4\`, or \`1, 2, 3, 2, 3, 2, 1\`, or any other. To switch the \_registration memory\_ according to this sequence, either one \_Sustain pedal\_ or two pedals can be used. In this case, the right pedal switches the sequence in ascending order, and the left pedal switches in descending order.
> 
> This sequence allows the performer not to think about buttons numbers and switches during a concert performance, but simply press the pedal at the right point of the performance to switch to the next scene, which is pre-configured.
> 
> In particular, the numbers of the registration memory buttons that have already been used can be repeated in this sequence.
> 
> This is especially useful for children. It is often difficult for them to remember a complex combination of buttons or switch keys, and it is much more reliable to simply press the pedal in the right place.
> 
> How do I see the implementation of similar functionality in Zynthian.
> Functionality similar to registration memory and registration banks in Zynthian has already been implemented and works fine. These are Snapshots and SZ3. Accordingly, it seems to me advisable to implement the mechanism of "registration sequence" in Yamaha terminology. You can call it the "\*\*SZ3 Sequence\*\*".
> 
> The main point of this module is to generate a list of the SZ3 sequence, and the possibility of assigning \_any push-button or foot controller\_ as a switch on any connected MIDI device. At the same time, controller events should be filtered and should not be sent further to the instruments.
> 
> At the same time, ideally, there should be a mechanism that allows you to turn off this function quickly enough in order to activate the pedal in normal Sustain mode (or another controller in its normal mode)
> 
> As practice shows, most often only one pedal is used, and only for switching the sequence in ascending order. But Yamaha has the ability to use two pedals, while each can be used both to switch the sequence in ascending and descending order.
> 
> The sequence can be looped or stopped at the end of the sequence. The functionality of switching to the \_next registration bank\_ (Snapshot) at the end of the sequence is also implemented.
> 
> The minimum option for implementing such functionality would be the SZ3 switching mechanism using an arbitrary push-button controller (pedal) from any connected MIDI device in the sequence in which they are currently contained in the \_SZ3 list\_.
> 
> At the moment, I find it difficult to describe more specifically the possible implementation of such a mechanism in Zynthian, but this of course should correspond to the general style of work on the platform and other features and practices.
> 
> Of course, when Zynthian is used in conjunction with a Yamaha PSR S/SX synthesizer, there is no obstacle to using all the mechanisms of this synthesizer in combination with Zynthian. But I am considering situations where my students can use an arbitrary synthesizer or midi keyboard or other controller. In this case, the important task is to port the settings created in the classroom to the students' home conditions. Ideally, a Snapshot saved in the classroom should contain all the necessary settings so that any synthesizer or midi keyboard connected to the input behaves exactly the same.
> 
> !\[image\](https://github.com/zynthian/zynthian-issue-tracking/assets/171412962/9c2da63e-0a27-4abe-bc64-0709341b0c1a)
> 
> This is what the registration sequence setup screen looks like in Yamaha PSR S/SX synthesizers.
> 
> When the registration sequence is turned off or the pedal is set to the OFF position, the pedals return to their normal functionality. When the sequence function is activated, the normal pedal function is blocked and the controller data is not transmitted further. If one pedal is engaged, then the second one will perform its usual function. Thus, with two pedals, one can be used for sequencing and the other for Sustain.
> 
> !\[image\](https://github.com/zynthian/zynthian-issue-tracking/assets/171412962/6ace8101-5ed6-4e1c-a95c-08409995056f)
> 
> This is how the process of editing the registration sequence of the Yamaha PSR S/SX looks like.

I have another question that I haven’t figured out yet.  
Is there an option in ZynSeq to launch an arbitrary Pad simultaneously with the start of the play on the midi keyboard? That is, for example, I start playing an arbitrary note on the keyboard, and simultaneously with the start of the play, the Pad starts. A similar mechanism is also implemented in some synthesizers with MultiPad. Or, alternatively, is it possible to assign the Pad launch to a specific key in such a way that pressing it again no longer affects ZynSeq in any way and does not cause playback to stop?

Thank you in advance!

---

<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 1, 2024, 11:43am UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614/6 "2024-06-01T11:43:01Z")

</div>

This is documented in the [user guide](https://wiki.zynthian.org/index.php/ZynSeq_User_Guide) on the wiki. See section, “19 External Trigger”.

---

<div class="post-metadata">

**Author:** ![Absov](https://discourse.zynthian.org/letter_avatar_proxy/v4/letter/a/439d5e/32.png) [@Absov](https://discourse.zynthian.org/u/Absov)\
**Post date:** [June 1, 2024, 1:59pm UTC](https://discourse.zynthian.org/t/a-question-about-automating-the-switching-of-sub-snapshots/9614/7 "2024-06-01T13:59:36Z")

</div>

Thanks! Yes, I have studied this documentation. But in this case, it’s about something else. The task is for the Pad to start at the moment when the performer starts playing a musical part on the keyboard. If I link the PAD to the note that the part starts with, then pressing the same note again will stop the PAD. And this is quite likely. In musical parts, the same note can often be repeated. And I need the PAD to start playing when I press ANY note on the keyboard. And so that the performer could not influence the work of ZynSeq in any way, during the further play. Of course, I can prescribe to the performer in the part some note that is not used in music and does not make sounds. But this will complicate the execution process. It will be easier if the sequence starts when any note is pressed.
