# EYESY running ETC Modes

**URL:** <https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269>\
**Category:** EYESY\
**Created:** [April 16, 2021, 9:19am UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269 "2021-04-16T09:19:03Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Blond12](https://avatars.discourse-cdn.com/v4/letter/b/43a26b/32.png) [@Blond12](https://forum.critterandguitari.com/u/Blond12)\
**Post date:** [April 16, 2021, 9:19am UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/1 "2021-04-16T09:19:03Z")

</div>

Hello, i’m new in the EYESY world.  
I thought EYESY was an upgrade and a replacement of ETC.

But i cant run any ETC modes form patch storage into EYESY.

Can somebody explain me what we have to modify in the PY files to make it working?

Other question why is not much news, évolutions ( Lua engine firmware ) or more modes concerning EYESY?  
Looks like this project is not evolving too much since 1 year…

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![chrisk](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.critterandguitari.com/chrisk/32/11_2.png) [@chrisk](https://forum.critterandguitari.com/u/chrisk)\
**Post date:** [April 16, 2021, 7:17pm UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/2 "2021-04-16T19:17:15Z")

</div>

> [@Blond12](#):
>
> Can somebody explain me what we have to modify in the PY files to make it working?

To get most modes working with HDMI output (see note below), there is one **addition** and one **change** to the code.

* * *

**Addition** : You will have to add the following line to the beginning of the ‘draw’ loop:

```auto
etc.color_picker_bg(etc.knob5)

```

…this line needs to go after the _global_ variable declaration (if applicable). For example:

```auto
def draw(screen, etc):
    global count, y
    etc.color_picker_bg(etc.knob5)

```

* * *

**Change** : Any instance of:

```auto
etc.color_picker()

```

…needs to be changed to include your knob of choice. Usually with ETC, this is would be Knob4:

```auto
etc.color_picker(etc.knob4)

```

Here’s an example of a complete line of code (though ‘color’ may not always be used as variable name. It could be ‘col’ or ‘c’ or something else altogether…)

```auto
color = etc.color_picker(etc.knob4)

```

* * *

NOTE: The ETC modes are likely coded _only_ for HDMI 1280x720 resolution. This means that there are some constants included in a ETC mode’s code like ‘360’ (for the center of the y-axis (720 ÷ 2)).

The EYESY python modes are coded to be able to switch between HDMI 1280x720 and Composite NTSC/PAL resolutions from one boot up to the next, so constants like ‘360’ will not be updated when the resolutions change. EYESY modes have constants coded a little differently. This is done with _etc.xres_ and _etc.yres_ For example:  
ETC Code:

```auto
x = int(etc.knob1*1280)
y = int(etc.knob2*etc.720)

```

…becomes EYESY Code:

```auto
x = int(etc.knob1*etc.xres)
y = int(etc.knob2*etc.yres)

```

If you never want to use composite video output or are fine with the composite output visuals not being in the center of screen, etc. no need to change the code.

If you aren’t OK with it, you will need to update any width and height relationships and any ‘hardcoded’ constants/positions of objects. For example, if your ETC code (based on y-axis resolution of 720) uses ‘360’ for a constant value for something like the start point of a line, you would want to add a variable to the top of the code (underneath the _import_…) like so:

```auto
start_point_y = ((360 * etc.yres) / 720)

```

…and for say ‘640’ as a constant in the x-axis at 1280 resolution:

```auto
start_point_x = ((640 * etc.xres) / 1280)

```

… then in Draw loop, replace that constant ‘360’ with ‘start\_point\_y’ and that constant ‘640’ with ‘start\_point\_x’.

Repeat for as many variables/constants/etc. as needed.

---

<div class="post-metadata">

**Author:** ![Blond12](https://avatars.discourse-cdn.com/v4/letter/b/43a26b/32.png) [@Blond12](https://forum.critterandguitari.com/u/Blond12)\
**Post date:** [April 16, 2021, 7:51pm UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/3 "2021-04-16T19:51:00Z")

</div>

Thanks a lot for this clear step by step explanation !

---

<div class="post-metadata">

**Author:** ![chrisk](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.critterandguitari.com/chrisk/32/11_2.png) [@chrisk](https://forum.critterandguitari.com/u/chrisk)\
**Post date:** [April 16, 2021, 8:22pm UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/4 "2021-04-16T20:22:37Z")

</div>

Thanks! I just added some explanation about resolution and constants etc.

---

<div class="post-metadata">

**Author:** ![Blond12](https://avatars.discourse-cdn.com/v4/letter/b/43a26b/32.png) [@Blond12](https://forum.critterandguitari.com/u/Blond12)\
**Post date:** [April 16, 2021, 9:18pm UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/5 "2021-04-16T21:18:51Z")

</div>

Actually i have other questions about that.  
All your step are crystal clear but when i download and open an ETC mode there is multiple folders into it not just " Main py" like you can see in the screenshot attached.  
(In this exemple i took “Klingon Flash Cards” mode as exemple.)

- Except the “preview.png” What exactly those différents files are doing ?
- I have to copy paste just the Main.py or all the files into my EYESY ?
- If all, do i have to modify the code in all files or just the " Main.py"?

 ![Screenshot_20210416_231126_com.asus.filemanager~2](https://canada1.discourse-cdn.com/flex035/uploads/critterandguitari/original/2X/4/411f6914dae3a391d4f9b468fcbd216c937ea71f.jpeg)

---

<div class="post-metadata">

**Author:** ![chrisk](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.critterandguitari.com/chrisk/32/11_2.png) [@chrisk](https://forum.critterandguitari.com/u/chrisk)\
**Post date:** [April 16, 2021, 9:59pm UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/6 "2021-04-16T21:59:09Z")

</div>

That mode was made by an ETC user so I am not too familiar with it but you definitely need the following files:

- font.ttf - this is the font the mode uses to display the text.
- klingon.py - I think this is the dictionary
- main.py - the main mode file

The info.py file is not needed. But the EYESY will ignore it and the preview.jpg file.

The easiest thing to do is upload the zipped file to the Python mode folder:  
 ![modefolder](https://canada1.discourse-cdn.com/flex035/uploads/critterandguitari/original/2X/9/990918a0f679de7839fbb1502f82554369af1151.png)  
And then unzip. Each mode needs its own folder.

---

<div class="post-metadata">

**Author:** ![igg](https://avatars.discourse-cdn.com/v4/letter/i/87869e/32.png) [@igg](https://forum.critterandguitari.com/u/igg)\
**Post date:** [August 27, 2022, 10:27am UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/7 "2022-08-27T10:27:29Z")

</div>

have people been porting ETC modes to EYESY?

if so I wonder if they could upload the modified modes to the eyesy patch storage and credited to the original creator?

I think it would be a real asset to eyesy to have the over 100 community made ETC patches “ported” over.

---

<div class="post-metadata">

**Author:** ![igg](https://avatars.discourse-cdn.com/v4/letter/i/87869e/32.png) [@igg](https://forum.critterandguitari.com/u/igg)\
**Post date:** [March 26, 2023, 8:03am UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/8 "2023-03-26T08:03:38Z")

</div>

dudethedev on patchstorage has begun the process of porting ETC modes to eyesy. Many thanks to them!

> **[EYESY | Patchstorage](https://patchstorage.com/platform/eyesy/)**
>
> EYESY is a video synthesizer that reacts to audio and MIDI. It is the next generation of ETC. EYESY runs patches called modes that can be written in Python or openFrameworks/Lua.

---

<div class="post-metadata">

**Author:** ![the\_duckchild](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.critterandguitari.com/the_duckchild/32/4090_2.png) [@the\_duckchild](https://forum.critterandguitari.com/u/the_duckchild)\
**Post date:** [April 12, 2023, 8:41pm UTC](https://forum.critterandguitari.com/t/eyesy-running-etc-modes/7269/9 "2023-04-12T20:41:39Z")

</div>

big up dudethedev!
