main.py and SigGer.png).main.py (F5 in Spyder).The first window is a narrow vertical control bar (about 175 × 920 pixels). It is a single-document interface: it does not embed the instrument panels. Those open as separate windows beside the bar.
| Environment | Notes |
|---|---|
| Python | Developed against Anaconda Python 3.8.5 |
| Qt bindings | PySide6 6.4.x (do not rely on APIs added after 6.4) |
| Numerics | NumPy for synthesis; h5py / pyarrow / SciPy I/O via ScyIO_UnB |
| Control | Action |
|---|---|
| SigGer logo | Opens the identity card: name, version 0.01 – 2026, author, department, university, and the current date and time. |
| Periodic signals | Popup of eight repeating waveforms. Click an icon to open that instrument window. |
| Non-periodic signals | Popup of ten finite-support or chirp/envelope signals. |
| White noise | Popup of Gaussian, uniform, and Laplacian noise generators. |
| Configuration | Opens the Configuration window. Configure default parameters sets folder, format, sample count, sampling frequency, and signal type (sigger_config.json). Configure the system appearance sets fonts, colors, and named themes (sigger_appearance.json). Both files are read at startup if they exist. |
| Help | Opens this documentation in a non-modal window. |
| About | Opens an About window with three choices: Summary (what SigGer does), Acknowledgments (partner logos from ack.jpg plus thanks), and The author (portrait FAON.jpg and biography from Author.txt). |
| Exit | Closes the control bar and every open instrument window. |
On Windows you can drag the control bar by pressing on empty chrome (not on push-buttons or tool-buttons). The native title bar still works as usual.
Click a mode button, then click a waveform icon. SigGer waits until the popup has closed before showing the editor, so the new window is not dismissed with the popup. The editor is placed to the right of the control bar when space allows.
Each waveform type keeps a single cached window: opening the same type again raises the existing editor instead of creating a second copy.
sine_wave).