Schyrsivochter’s SCA²

Discussions worth keeping around later.
Post Reply
schyrsivochter
Lebom
Lebom
Posts: 113
Joined: Fri Oct 02, 2015 4:00 pm
Location: Germany

Schyrsivochter’s SCA²

Post by schyrsivochter »

Hello there,

I came upon the SCA² some time ago, and after working with it (and loving it) for a while, I found things I didn’t like about it. So, in the summer holiday, I said to myself, ‘Why not make your own SCA and make it better?’ The idea stuck, and I set to work. At first, it was only the actual rule applying code; but when that worked, I started building a GUI. Now I’ve decided that my own SCA is good enough to share with other people, and that’s exactly what I do: share it, with you.

First of all, some bad news. I wrote it completely in Python. That means that you have to install a Python 3 interpreter to use it.
Yes, I’m sorry that I haven’t chosen a compiler language (or made it a website and used Javascript, like Zompist), but this was originally intended for private use only, and I personally love writing Python.

I’m maintaining the PythonSCA on GitHub: https://github.com/Schyrsivochter/PythonSCA. Feel free to contribute!

Anyway, here are the features:
  • Almost fully compatible to Zompist’s SCA². The only exception is the wildcard, which I have not yet implemented (since I don’t need it), but if you ask nicely, I will perhaps think about adding it for you. :wink:
  • Native windowed GUI.
  • A nice large Apply button, and everything is packed closely (to me it was the main flaw in the SCA² that the Apply button was so small and everything was so far apart), but expands to a side-by-side-view if it gets large.
  • Tabs for running multiple SCAs in one window. They can be renamed, restored after closing, and moved around.
  • You can save and load rules and lexicons to/from files directly.
  • Saves its tabs on exiting and restores them on opening.
  • A hotkey (F9) for applying the rules.
  • Not highly customisable unless you know Python and Tkinter. (Ask me if you want a particular feature to be customisable, though. I’ll make it.)
  • Has probably loads of bugs. If you come upon one, either open an issue on the GitHub page, or, if you don’t have or don’t want a GitHub account, send me a PM. Either way, please provide information on how to reproduce.
Here’s how you ‘install’ it:
  1. Download and install Python 3 (if you haven’t already got it). It’s important that you use Python 3 and not Python 2, otherwise it won’t work.
  2. Download sca.py, scaguioo.py and scagui.pyw from the GitHub page.
  3. Place them where you want. It’s important that you have them all in the same directory, though, or it won’t work (unless you know enough Python to change my code so the GUI looks for sca.py elsewhere).
  4. Run scagui.pyw. It will create a directory with some files when closing for the first time. Leave them there unless you want to start over every time you close and re-open the SCA.
Further information:
  • The tabs behave like in a web browser – Ctrl+T opens a new one, Ctrl+W closes the current one; middle click on a tab closes it, middle click on the tab bar opens a new one. They can be switched with Ctrl-PgUp/PgDn. You can’t move them by dragging yet, sorry.
  • The standard file extensions are .slx and .sca, not the .lex and .sc from Zomp’s first SCA. I did this for several reasons:
    • Microsoft Office already has a file type with the extension .lex.
    • I don’t like extensions with only two letters.
    • Sound change files created with my SCA might not work with Zomp’s.
  • In the “WD” directory you will find files named __last{n}.slx and __last{n}.sca with ns from 0 to the number of tabs – 1. They hold the rules and input lexicons from the last session. You can copy and rename them if you forgot to save something. (Actually, you can do with them what you want, since SCA does not read them – it restores the contents of its last tabs from the __last.json file.)
  • If you want to see the Python console to debug the program, run scaguioo.py directly. (scagui.pyw essentially just runs scaguioo.py, but since it has the .pyw extension, Python hides the console.)
  • Ignore the checkbox named Debug. Originally, it makes the rule applying script show debug info, but you probably won’t understand it, and it will be very much, if not far too much for Python or for you to handle. So unless you know what you’re doing, leave it alone.
  • If you have any ideas or suggestions, feel free to contact me! It works the same way as reporting a bug (see above).
—Schyrsivochter

Edit 2015-12-28:
  • The PythonSCA² now uses wxPython for the GUI, which looks much better than Tkinter; but you have to install that, too. A link can be found on the GitHub page.
  • Sadly, the port to wxPython broke right and middle click on tabs (context menu and closing respectively). I suppose I’ll just have to wait until the wxPython team fixes the one function I need, which doesn’t work.
  • Also, the shortcut Ctrl+A for some reason only works in the output field.
Last edited by schyrsivochter on Mon Dec 28, 2015 3:02 am, edited 2 times in total.
My version of the SCA²

About my conlangs: No. 1 is my proto-language, and No. 4, my main conlang, is one of its descendants. I’m currently revising 4, calling it 4a.

schyrsivochter
Lebom
Lebom
Posts: 113
Joined: Fri Oct 02, 2015 4:00 pm
Location: Germany

Re: Schyrsivochter’s SCA²

Post by schyrsivochter »

So I noticed that screenshots would be nice. Here are some, taken with the minimum window size and in maximised state (on a 1600×900 screen) respectively:
The compact (two rows) view of PythonSCA, useful for windowed mode.
The compact (two rows) view of PythonSCA, useful for windowed mode.
wxPythonSCA compact.PNG (23.26 KiB) Viewed 2675 times
The expanded (side by side) view of PythonSCA, useful for fullscreen.
The expanded (side by side) view of PythonSCA, useful for fullscreen.
wxPythonSCA expanded.PNG (55.61 KiB) Viewed 2675 times
On your computer it might look different, depending on your OS. These screenshots were taken on Windows 10.
—Schyrsivochter

Edit 2015-12-28: Uploaded new screenshots of the new look
My version of the SCA²

About my conlangs: No. 1 is my proto-language, and No. 4, my main conlang, is one of its descendants. I’m currently revising 4, calling it 4a.

Post Reply