Tuney appears to have crashed during the previous run.
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Error
Tuney appears to have crashed during the previous run.
Environment
- Platform: Windows-11-10.0.26200-SP0
- Python: 3.12.10
- Frozen app: True
- Log file: C:\Users\David.local\state\tuney\tuney.txt
Log
ons=52
[2026-07-26T19:08:24.248029+00:00] TRACE layout rebuild note grid end: has_note_buttons=True
[2026-07-26T19:08:24.856391+00:00] TRACE layout refresh note button fonts: buttons=52
[2026-07-26T19:08:24.879240+00:00] TRACE layout refresh note button fonts: buttons=52
[2026-07-26T19:08:24.888808+00:00] TRACE layout startup build end
[2026-07-26T19:08:34.402354+00:00] TRACE app start: run_in_background=False
[2026-07-26T19:08:34.403350+00:00] TRACE main window start
[2026-07-26T19:08:34.901671+00:00] Traceback (most recent call last):
File "pyinstaller_entrypoint.py", line 42, in main
File "tuney\app\main.py", line 31, in main
result = run(app)
^^^^^^^^
File "tuney\app\app.py", line 170, in run
start(app)
File "tuney\app\app.py", line 185, in start
app.midi.output.start()
File "tuney\midi\midi.py", line 145, in start
_ = self.port
^^^^^^^^^
File "functools.py", line 998, in __get__
File "tuney\midi\midi.py", line 134, in port
port = mido.open_output(
^^^^^^^^^^^^^^^^^
File "mido\backends\backend.py", line 117, in open_output
File "mido\ports.py", line 269, in __init__
File "mido\ports.py", line 90, in __init__
File "mido\backends\rtmidi.py", line 204, in _open
File "mido\backends\rtmidi.py", line 105, in _open_port
File "_rtmidi.pyx", line 581, in _rtmidi.MidiBase.open_port
File "_rtmidi.pyx", line 218, in _rtmidi._cb_error_func
File "_rtmidi.pyx", line 403, in _rtmidi._default_error_handler
_rtmidi.SystemError: MidiOutWinMM::openPort: error creating Windows MM MIDI output port.
[2026-07-26T19:11:44.099242+00:00] Python crash logging started
[2026-07-26T19:11:44.301978+00:00] TRACE run: gui=True frozen=True
[2026-07-26T19:11:44.303995+00:00] TRACE autosave restore start
[2026-07-26T19:11:44.314086+00:00] TRACE restore data start: keys=['audition_scala', 'backspace_repeat_delay', 'backspace_repeat_rate', 'device', 'gui', 'hover_time', 'load_autosave', 'mapper', 'max_gap', 'midi', 'run_in_background', 'scale', 'show_text_timings', 'silent', 'sound', 'speech_level', 'speech_speed', 'text', 'text_timings', 'tuning', 'use_phrase_mode', 'use_speech']
[2026-07-26T19:11:44.315599+00:00] TRACE restore data end
[2026-07-26T19:11:44.316109+00:00] TRACE autosave restore end: error=False
[2026-07-26T19:11:44.317117+00:00] TRACE main window construct start
[2026-07-26T19:11:44.348101+00:00] TRACE main window init start
[2026-07-26T19:11:44.349148+00:00] TRACE qapplication reuse
[2026-07-26T19:11:44.381592+00:00] TRACE main window qmainwindow ready
[2026-07-26T19:11:44.392729+00:00] TRACE layout construct start
[2026-07-26T19:11:44.393262+00:00] TRACE layout init start
[2026-07-26T19:11:44.394917+00:00] TRACE control panel init: model='App'
[2026-07-26T19:11:44.849893+00:00] TRACE layout init end
[2026-07-26T19:11:44.849893+00:00] TRACE layout construct end
[2026-07-26T19:11:44.850900+00:00] TRACE window restore state loaded: saved={'x': 0, 'y': 23, 'width': 1536, 'height': 793}
[2026-07-26T19:11:44.851911+00:00] TRACE window restore geometry before: saved={'x': 0, 'y': 23, 'width': 1536, 'height': 793} applied={'x': 0, 'y': 23, 'width': 1536, 'height': 793} direct={'x': 0, 'y': 0, 'width': 560, 'height': 978} geometry={'x': 0, 'y': 0, 'width': 560, 'height': 978} frame_geometry={'x': 0, 'y': 0, 'width': 560, 'height': 978} normal_geometry={'x': 0, 'y': 0, 'width': 560, 'height': 978} window_state=<WindowState.WindowNoState: 0> is_maximized=False is_minimized=False is_full_screen=False
[2026-07-26T19:11:44.851911+00:00] TRACE window restore geometry after set: direct={'x': 0, 'y': 23, 'width': 1536, 'height': 793} geometry={'x': 0, 'y': 23, 'width': 1536, 'height': 793} frame_geometry={'x': 0, 'y': 23, 'width': 1536, 'height': 793} normal_geometry={'x': 0, 'y': 23, 'width': 1536, 'height': 793} window_state=<WindowState.WindowNoState: 0> is_maximized=False is_minimized=False is_full_screen=False
[2026-07-26T19:11:44.852917+00:00] TRACE window restore geometry after enforce: direct={'x': 0, 'y': 23, 'width': 1536, 'height': 793} geometry={'x': 0, 'y': 23, 'width': 1536, 'height': 793} frame_geometry={'x': 0, 'y': 23, 'width': 1536, 'height': 793} normal_geometry={'x': 0, 'y': 23, 'width': 1536, 'height': 793} window_state=<WindowState.WindowNoState: 0> is_maximized=False is_minimized=False is_full_screen=False
[2026-07-26T19:11:44.853423+00:00] TRACE ui update text display: timings=False
[2026-07-26T19:11:44.853928+00:00] TRACE main window init end
[2026-07-26T19:11:44.853928+00:00] TRACE main window construct end
[2026-07-26T19:11:45.009535+00:00] TRACE layout startup build start
[2026-07-26T19:11:45.009535+00:00] TRACE control panel rebuild start: model='App'
[2026-07-26T19:11:45.011572+00:00] TRACE control panel build page start: advanced=True
[2026-07-26T19:11:45.531559+00:00] TRACE scala browser trie load start
[2026-07-26T19:11:45.532592+00:00] TRACE scala trie build start
[2026-07-26T19:11:45.533672+00:00] TRACE scala scales load start: path=WindowsPath('C:/Tuney-Windows/Tuney/scala/scales.toml.zip')
[2026-07-26T19:11:45.827847+00:00] TRACE scala scales load end: count=5401
[2026-07-26T19:11:46.067352+00:00] TRACE scala trie build end: count=5401
[2026-07-26T19:11:47.162080+00:00] Python crash logging started
[2026-07-26T19:11:48.226090+00:00] Python crash logging started
[2026-07-26T19:11:48.450735+00:00] TRACE control panel build page end: advanced=True
[2026-07-26T19:11:48.451724+00:00] TRACE control panel rebuild end: model='App'
[2026-07-26T19:11:48.451724+00:00] TRACE layout rebuild note grid start
[2026-07-26T19:11:48.475577+00:00] TRACE layout refresh note button fonts: buttons=52
[2026-07-26T19:11:48.477523+00:00] TRACE layout rebuild note grid end: has_note_buttons=True
[2026-07-26T19:11:48.906031+00:00] TRACE layout refresh note button fonts: buttons=52
[2026-07-26T19:11:48.925987+00:00] TRACE layout refresh note button fonts: buttons=52
[2026-07-26T19:11:48.936111+00:00] TRACE layout startup build end
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tuney/app/app.py at start() and tuney/midi/midi.py at port and start(), then reproduce the Windows failure around mido.open_output(). Review how the frozen app handles MIDI startup and identify the expected behavior when MidiOutWinMM cannot create an output port; done should include coverage for that failure path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100