Main Menu

Recent posts

#1
Development Corner / Re: EXPERIMENTAL native host s...
Last post by manx - Yesterday at 11:59:43
@siealex Your original problem was with Wine 10.0. Is this still a problem on FreeBSD with latest OpenMPT 1.32 or 1.33?
#2
Development Corner / Re: EXPERIMENTAL native host s...
Last post by manx - Yesterday at 11:38:56
@siealex The root cause for the crash/hang is a Wine 10.11 bug (see https://bugs.openmpt.org/view.php?id=1904 for details). There is no fix, except for waiting for 10.12. Wine 10.11 is blocked from Wine Integration now (1.32.02.02/1.33.00.08), which at least should prevent the complete crash for other users.

The FreeBSD build errors should be fixed. About the FreeBSD build warnings, if you are still seeing some, could you paste them here?
#3
Development Corner / Re: EXPERIMENTAL native host s...
Last post by manx - July 02, 2025, 10:28:57
@siealex Do you happen to know if the hang also affected Wine 9.0?

I have a suspicion that the Wine ELF->PE transition might be causing trouble for how Wine Integration currently works in OpenMPT. IFF that is the case, there will probably might be an easy short-term fix for Wine >= 9.0.0. But that is just a guess for now, I did not look at this with any serious effort yet. Just a heads up hat I have not forgotten this issue :).

The warnings during build with 1.31 are probably unrelated (I am guessing).

The build error is a missing feature in libc++ (LLVM) which is used on FreeBSD. We can work-around that. A fix for that should be in the next version.
#4
Development Corner / Re: EXPERIMENTAL native host s...
Last post by siealex - July 01, 2025, 18:02:42
FreeBSD 14.3 with KDE Plasma 6.4, OpenMPT 1.32.02.00, Wine 10.0_1,1 (ordinary, not staging).
Wine integration now fails to compile completely (and does not produce any DLLs), then OpenMPT starts up without integration.

       ┌───────────────────────────────────────────────OpenMPT Wine integration─────────────────────────────────────────────────┐
       │ In file included from common/Profiler.cpp:11:                                                                          │ 
       │ In file included from common/stdafx.h:134:                                                                             │ 
       │ In file included from common/../common/misc_util.h:27:                                                                 │ 
       │ common/../common/mptTime.h:289:23: error: no member named 'zoned_time' in namespace 'std::chrono'                      │ 
       │   289 |                 return std::chrono::zoned_time{std::chrono::current_zone(), local_tp}.get_sys_time();          │ 
       │       |                        ~~~~~~~~~~~~~^                                                                          │ 
       │ common/../common/mptTime.h:289:33: error: expected ';' after return statement                                          │ 
       │   289 |                 return std::chrono::zoned_time{std::chrono::current_zone(), local_tp}.get_sys_time();          │ 
       │       |                                               ^                                                                │ 
       │       |                                               ;                                                                │ 
       │ common/../common/mptTime.h:303:27: error: unknown type name 'local_tp'; did you mean 'locale_t'?                       │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                         ^~~~~~~~                                                               │ 
       │       |                                         locale_t                                                               │ 
       │ /usr/include/xlocale/_ctype.h:43:26: note: 'locale_t' declared here                                                    │ 
       │    43 | typedef struct  _xlocale *locale_t;                                                                            │ 
       │       |                           ^                                                                                    │ 
       │ In file included from common/Profiler.cpp:11:                                                                          │ 
       │ In file included from common/stdafx.h:134:                                                                             │ 
       │ In file included from common/../common/misc_util.h:27:                                                                 │ 
       │ common/../common/mptTime.h:303:26: error: expected ';' after expression                                                │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                        ^                                                                       │ 
       │       |                                        ;                                                                       │ 
       │ common/../common/mptTime.h:303:16: error: no member named 'zoned_time' in namespace 'std::chrono'                      │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                 ~~~~~~~~~~~~~^                                                                                 │ 
       │ common/../common/mptTime.h:303:50: error: no member named 'current_zone' in namespace 'std::chrono'                    │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                                   ~~~~~~~~~~~~~^                                               │ 
       │ common/../common/mptTime.h:304:70: error: use of undeclared identifier 'local_tp'                                      │ 
       │   304 |                 std::chrono::local_days dp = std::chrono::floor<std::chrono::days>(local_tp.get_local_time()); │ 
       │       |                                                                                    ^                           │ 
       │ common/../common/mptTime.h:306:29: error: use of undeclared identifier 'local_tp'                                      │ 
       │   306 |                 std::chrono::hh_mm_ss hms{local_tp.get_local_time() - dp};                                     │ 
       │       |                                           ^                                                                    │ 
       │ 8 errors generated.                                                                                                    │ 
       │ gmake: *** [build/wine/native_support.mk:237: common/Profiler.o] Error 1                                               │ 
       │ gmake: *** Waiting for unfinished jobs....                                                                             │ 
       │ In file included from common/ComponentManager.cpp:11:                                                                  │ 
       │ In file included from common/stdafx.h:134:                                                                             │ 
       │ In file included from common/../common/misc_util.h:27:                                                                 │ 
       │ common/../common/mptTime.h:289:23: error: no member named 'zoned_time' in namespace 'std::chrono'                      │ 
       │   289 |                 return std::chrono::zoned_time{std::chrono::current_zone(), local_tp}.get_sys_time();          │ 
       │       |                        ~~~~~~~~~~~~~^                                                                          │ 
       │ common/../common/mptTime.h:289:33: error: expected ';' after return statement                                          │ 
       │   289 |                 return std::chrono::zoned_time{std::chrono::current_zone(), local_tp}.get_sys_time();          │ 
       │       |                                               ^                                                                │ 
       │       |                                               ;                                                                │ 
       │ common/../common/mptTime.h:303:27: error: unknown type name 'local_tp'; did you mean 'locale_t'?                       │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                         ^~~~~~~~                                                               │ 
       │       |                                         locale_t                                                               │ 
       │ /usr/include/xlocale/_ctype.h:43:26: note: 'locale_t' declared here                                                    │ 
       │    43 | typedef struct  _xlocale *locale_t;                                                                            │ 
       │       |                           ^                                                                                    │ 
       │ In file included from common/ComponentManager.cpp:11:                                                                  │ 
       │ In file included from common/stdafx.h:134:                                                                             │ 
       │ In file included from common/../common/misc_util.h:27:                                                                 │ 
       │ common/../common/mptTime.h:303:26: error: expected ';' after expression                                                │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                        ^                                                                       │ 
       │       |                                        ;                                                                       │ 
       │ common/../common/mptTime.h:303:16: error: no member named 'zoned_time' in namespace 'std::chrono'                      │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                 ~~~~~~~~~~~~~^                                                                                 │ 
       │ common/../common/mptTime.h:303:50: error: no member named 'current_zone' in namespace 'std::chrono'                    │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                                   ~~~~~~~~~~~~~^                                               │ 
       │ common/../common/mptTime.h:304:70: error: use of undeclared identifier 'local_tp'                                      │   
       │   304 |                 std::chrono::local_days dp = std::chrono::floor<std::chrono::days>(local_tp.get_local_time()); │ 
       │       |                                                                                    ^                           │ 
       │ common/../common/mptTime.h:306:29: error: use of undeclared identifier 'local_tp'                                      │ 
       │   306 |                 std::chrono::hh_mm_ss hms{local_tp.get_local_time() - dp};                                     │ 
       │       |                                           ^                                                                    │ 
       │ 8 errors generated.                                                                                                    │ 
       │ gmake: *** [build/wine/native_support.mk:237: common/ComponentManager.o] Error 1                                       │ 
       │ In file included from common/Logging.cpp:11:                                                                           │ 
       │ In file included from common/stdafx.h:134:                                                                             │ 
       │ In file included from common/../common/misc_util.h:27:                                                                 │ 
       │ common/../common/mptTime.h:289:23: error: no member named 'zoned_time' in namespace 'std::chrono'                      │ 
       │   289 |                 return std::chrono::zoned_time{std::chrono::current_zone(), local_tp}.get_sys_time();          │ 
       │       |                        ~~~~~~~~~~~~~^                                                                          │ 
       │ common/../common/mptTime.h:289:33: error: expected ';' after return statement                                          │ 
       │   289 |                 return std::chrono::zoned_time{std::chrono::current_zone(), local_tp}.get_sys_time();          │ 
       │       |                                               ^                                                                │ 
       │       |                                               ;                                                                │ 
       │ common/../common/mptTime.h:303:27: error: unknown type name 'local_tp'; did you mean 'locale_t'?                       │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                         ^~~~~~~~                                                               │ 
       │       |                                         locale_t                                                               │ 
       │ /usr/include/xlocale/_ctype.h:43:26: note: 'locale_t' declared here                                                    │ 
       │    43 | typedef struct  _xlocale *locale_t;                                                                            │ 
       │       |                           ^                                                                                    │ 
       │ In file included from common/Logging.cpp:11:                                                                           │ 
       │ In file included from common/stdafx.h:134:                                                                             │ 
       │ In file included from common/../common/misc_util.h:27:                                                                 │ 
       │ common/../common/mptTime.h:303:26: error: expected ';' after expression                                                │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                        ^                                                                       │ 
       │       |                                        ;                                                                       │ 
       │ common/../common/mptTime.h:303:16: error: no member named 'zoned_time' in namespace 'std::chrono'                      │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                 ~~~~~~~~~~~~~^                                                                                 │ 
       │ common/../common/mptTime.h:303:50: error: no member named 'current_zone' in namespace 'std::chrono'                    │ 
       │   303 |                 std::chrono::zoned_time local_tp{ std::chrono::current_zone(), tp };                           │ 
       │       |                                                   ~~~~~~~~~~~~~^                                               │ 
       │ common/../common/mptTime.h:304:70: error: use of undeclared identifier 'local_tp'                                      │ 
       │   304 |                 std::chrono::local_days dp = std::chrono::floor<std::chrono::days>(local_tp.get_local_time()); │ 
       │       |                                                                                    ^                           │ 
       │ common/../common/mptTime.h:306:29: error: use of undeclared identifier 'local_tp'                                      │ 
       │   306 |                 std::chrono::hh_mm_ss hms{local_tp.get_local_time() - dp};                                     │ 
       │       |                                           ^                                                                    │ 
       │ 8 errors generated.                                                                                                    │ 
       │ gmake: *** [build/wine/native_support.mk:237: common/Logging.o] Error 1                                                │ 
       │                                                                                                                        │ 
       ├────────────────────────────────────────────────────────────────────────────────────────────────────────────────100%────┤ 
       │                                                       < EXIT >                                                         │ 
       └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

#5
Development Corner / Re: OpenMpt accessibility disc...
Last post by GoemonIshikawa - July 01, 2025, 17:14:56
I'm trying to close the issue, but I get this message.
"APPLICATION ERROR #24
Resolution "fixed" is not allowed for status "new"."
#6
Development Corner / Re: EXPERIMENTAL native host s...
Last post by StarWolf3000 - July 01, 2025, 09:40:16
This is apparently the same issue I'm running into, just for OpenMPT 1.32.02.00. I put mine into the Bug Tracker: https://bugs.openmpt.org/view.php?id=1904

A major difference is that in my case a DLL is not being produced at all, and I also deleted the "Wine" folder from the install path, to make it recreate, which never happens. Like your issue, it will boot if I disable Wine in the ini.
#7
Development Corner / Re: OpenMpt accessibility disc...
Last post by GoemonIshikawa - June 30, 2025, 04:13:16
Hello!

@Saga Musix I am very sorry I couldn't test this sooner, but yes you're right the keyboard issues have been fixed, so in this matter I can put a note that'll safely close the issue. Wait how do you all close issues? Sorry I'm just a bit more used to GitHub's layout that this one is going to take some time. GitHub has comments, but you all call it notes.

I still need to look into the midi bank uce issue because either it's not clear or I'm stupid, but I can't figure out how to do it via the manual.

The only problem regarding the keyboard is in certain controls like the keyboard list, where the control state isn't properly respected, for example in the list after the category combo box the list doesn't display the first option unless the user presses down once or twice, so it makes it look like the options aren't before the user.

Now while the issue might not look that bad if the list has multiple options, if a particular category has only one option in its list that option won't be read to user unless the user presses Shift+Tab to go back to the categories, and then presses tab so that the list with one option is shown.

Another example is in the pattern editor if Ctrl+Shift+Tab is pushed to move to the other view with the order list and then via pushing Shift+Tab to move to the pattern toolbar, you'll be able to move rite to a checkbox for example the VU-Meters. If you'll uncheck it via SpaceBar you'll note that you're back in the pattern view, and if you want to rechek the box you'll have to go back to the toolbar to do so.
In this event the controls aren't being properly respected, as checking a box or entering an option shouldn't push you from the pattern controls, as user may want to change other options before properly exiting the controls via the escape key or Ctrl+Shift+Tab.


So that's all I got for now, hopefully I did better this time and I'm much more clearer with things.
In the morning I'll make a final note to the opened issue and figure out how to close it before filing this one or continuing inside it from your response.

If I haven't said it yet thanks for working with me and my people, I am no programmer but I know a little something about programming and UI as well as accessibility structure, but talking is a little more easier than writing, well unless it's about passions like chiptune and trackers and so on. :)

Oh before I forget! I saw that yall might go cross platform, when that day comes and if you're pushing for tracking on Linux please see if you can contact me, as I have a friend who's the creator of a Linux screen reader and he would also like to work with you! He's actually a programmer so he'll for sure know what he's talking about unlike me haha.

*Edit.*
I did some thinking and it looks like the OpenMPT control state issue is regarding an interface matter rather than a keyboard one, so I have made the choice to file a new issue for that.
#8
Development Corner / Re: OpenMpt accessibility disc...
Last post by Saga Musix - June 29, 2025, 10:54:01
Quote from: GoemonIshikawa on June 28, 2025, 20:33:03What I meant is making an improvement on the keyboard shortcuts as when I tried to use the keyboard shortcuts creator to make new shortcuts, you'll have a problem where you'll be stuck in the creator edit box, and any attempts to move the mouse via emulation with the keyboard will enter a shortcut instead.
This is because locally the program expects you to push okay with the mouse but for screen readers we have no accurate control to focus okay or any options in the controls. This was in older OpenMPT versions and I would test latest version to check but I don't feel like getting stuck especially as I have no sighted person to help at the moment. I'll check later though.
Getting stuck with keyboard assignment shortcut field was fixed almost a year ago. This is really important for reporting bugs - before you report something, please, please, always test it in the latest version. I know it can be frustrating if it means you get stuck somewhere, but it's equally frustrating to read, triage and then unsuccessfully being able to reproduce a reported issue just because it is about something that was already fixed a long time ago. The keyboard settings have been considerably revamped, it's one of the biggest items in the "what's new" blog post for OpenMPT 1.32.01.00. Please do give it a try, it should be a lot easier to navigate now.

Quote from: GoemonIshikawa on June 28, 2025, 20:33:03For the changing of views Ctrl+Shift+Tab or Ctrl+Tab works too, but as @A11CF0 said the command doesn't work although it's logged in the refs as so.
I implemented it yesterday, and the wiki was updated immediately to document the latest default shortcuts. There will be a new OpenMPT release later today including this shortcut (edit: OpenMPT 1.32.02.00 is out now).

Quote from: GoemonIshikawa on June 28, 2025, 20:33:03I did see the keyboard reference thanks for that but I do think that Ctrl+left and rite brakets could be nice ways to expand and shrink patterns.
You're free to use whatever shortcuts work best for you, of course. Left/Right brackets are not dedicated keys on many keyboard layout though, so the new default shortcuts were made to be similar to the existing grow/shrink selection shortcuts, which will work on any keyboard layout.

Quote from: GoemonIshikawa on June 28, 2025, 20:33:03A bit of off topic but is their any way to expand pattern after the cursor position so you wouldn't have to lose the spacing or select beforehand?
If you just want to expand parts of a pattern, draw a selection and use the "grow selection" shortcut. You may have to resize the pattern to an appropriate length before doing so, though.

Quote from: GoemonIshikawa on June 28, 2025, 20:33:03One other issue that comes to mind I need to consult my issues video for full issues, but it is loading instruments via midi banks and libraries. I was speaking with a friend and when I asked him he says he just drags it on to the instrument, but currently they're no ways to utilise instruments from banks, and insert doesn't look to work. I'll need to look more into this though, so I'll let you know my absolute findings via the issue tracker as well as on here if you're like me and this stuff escapes you sometimes. :)
It is possible to use the keyboard in place of drag&drop operations, and this is even documented: https://wiki.openmpt.org/Manual:_Tree_View#Common_drag-and-drop_operations

QuoteI have posted the first issue for the keyboard accessibility, If you need any clarity please do let me know, might I ask is this issue good with out markdown? I would put headders but it didn't look like it had any text that would be sutable for it. When I get back up I will check the keyboard creator with a sighted person on latest.
Honestly, the formatting doesn't matter all that much, what matters much more is using clear, concise language.
#9
Development Corner / Re: OpenMpt accessibility disc...
Last post by GoemonIshikawa - June 29, 2025, 07:41:12
I have posted the first issue for the keyboard accessibility, If you need any clarity please do let me know, might I ask is this issue good with out markdown? I would put headders but it didn't look like it had any text that would be sutable for it. When I get back up I will check the keyboard creator with a sighted person on latest.
#10
Help and Questions / Re: Sample sites
Last post by GoemonIshikawa - June 28, 2025, 22:28:08
@ida Do you still have these korg DS10 samples or does someone know where I can find em?