Op-1 custom graphics

I wanted to start a thread on custom graphics so that there’s a place to get community-made graphics (I’m not sure if this infringes on TE’s ip, so feel free to delete this).

This was a quick edit of @wavi 's Iter synth graphics.You can download it here

3 Likes

Good job! I like how you made it minimalistic, I think that’s closer to the OP-1 aesthetic than my original.

I don’t see any IP issues as long as we don’t distribute any SVG’s that are modifications of the original graphics. It’d be nice to include more graphics mods in op1repacker, but to be sure not to infringe on IP they have to be completely original. We can still make mods to the original files by writing a script to make the required changes to them. That’s how the tape invert mod works, it just moves around the elements in the existing tape.svg.

Unfortunately I still haven’t fully worked out how the OP-1 parses the SVGs or how to make sure that a specific SVG file will work on the OP-1.

Here are some resources related to this:
Basic description of how SVG works on OP-1: https://github.com/op1hacks/docs/blob/draft/svg.md
Tool for optimizing SVGs for the OP-1 (incomplete): https://github.com/op1hacks/op1svg

2 Likes

Thanks man, I appreciate it.

I could see how long it would take to write/test scripts to edit the stock graphics. It sounds like a real hassle. :neutral_face:

I’ve been editing the svgs with illustrator. I took me a couple tries to get the settings right, and even then, I don’t think the Op-1 would recognize the files without first using the op1svg tool you made. (Thanks btw )

Here’s the export settings I’ve been using (Tell me If I’m doing something wrong):

1 Like

Hi @wavi - first of all, thanks a lot for the tools you created on github! I successfully used the fw repacker but I struggle with op1svg, I get the following error:

AttributeError: ‘tuple’ object has no attribute ‘isalpha’ - I copied the full traceback below.

I ran it with a vanilla svg file without any modifications. I get the the same error on my modded inkscape files. My python version is 3.12.1. Do you have any ideas? Many Thanks!!

full traceback:

C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg>python main.py rymd_original.svg rymd_modded.svg
Parsing file…
Optimizing SVG…
Traceback (most recent call last):
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 281, in
main()
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 270, in main
output = clean_svg_tree(tree)
^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 250, in clean_svg_tree
output += iterate_tree(root, indent=False) + “\n”
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 229, in iterate_tree
output += iterate_tree(elem, indent, depth, callback)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 222, in iterate_tree
output += indentation + element_start_tag_string(elem) + “\n”
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 195, in element_start_tag_string
attrs = attributes_to_string(elem.attrib)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 188, in attributes_to_string
value = fix_svg_path(value, value_formatter=limit_decimals)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 116, in fix_svg_path
tokens = normalize_tokens(tokens)
^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 100, in normalize_tokens
if token_is_command(token):
^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Martin\AppData\Roaming\Python\Python312\site-packages\op1svg-master\op1svg\main.py”, line 81, in token_is_command
return token.isalpha()
^^^^^^^^^^^^^
AttributeError: ‘tuple’ object has no attribute ‘isalpha’