Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

windows build download #110

Closed
furrig opened this issue May 7, 2023 · 33 comments
Closed

windows build download #110

furrig opened this issue May 7, 2023 · 33 comments

Comments

@furrig
Copy link

furrig commented May 7, 2023

Hi !

Last available windows build seems to be here : https://github.com/ahlstromcj/sequencer64-packages/tree/master/seq66/0.98.0
It's 2 years old, is there a more recent availability?
(if not build it myself but I'm shy with QT ;) )

@ahlstromcj
Copy link
Owner

ahlstromcj commented May 7, 2023 via email

@furrig
Copy link
Author

furrig commented May 8, 2023

Thanks a lot !

I tried to build but had no success (logs are attached)
make-32.log
make-64.log

  • error with 32 bits :
..\..\seq66-0.99.4\libseq66\include/os/daemonize.hpp:45:28: error: conflicting declaration 'using mode_t = unsigned int'
  • errors with 64 bits
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:460:27: error: 'S_IWUSR' was not declared in this scope
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:460:27: note: suggested alternative: 'QS_MOUSE'
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:460:37: error: 'S_IRUSR' was not declared in this scope
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:460:37: note: suggested alternative: 'S_SERDSR'
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:460:47: error: 'S_IWGRP' was not declared in this scope
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:460:57: error: 'S_IRGRP' was not declared in this scope
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:460:57: note: suggested alternative: 'WS_GROUP'
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp: In function 'std::__cxx11::string seq66::get_parent_process_name()':
..\..\seq66-0.99.4\libseq66\src\os\daemonize.cpp:788:27: error: '_
getppid' was not declared in this scope

PS : to be able to launch make with 64 bits, I had to modify build_release_package.bat when it says mingw%PROJECT_BITS%-make > make.log 2>&1 'cos there is no mingw64-make.exe in my Tools\mingw810_64\bin folder, only mingw32-make.exe

ahlstromcj added a commit that referenced this issue May 8, 2023
@ahlstromcj
Copy link
Owner

ahlstromcj commented May 8, 2023 via email

@ahlstromcj
Copy link
Owner

Still working out this issue. Had to refactor the code for the configuration directories, found a bug in the Linux version of the internal portmidi engine that also affected Windows. The Windows MIDI Mapper issue somehow came back and I am working that out. Added support for using NSIS (if installed) in Windows in the build batch file. Improved the port naming a bit. Trying to handle present-but-unavailable MIDI ports better. Long story short, it'll be a little while yet. :-(

@ahlstromcj
Copy link
Owner

Whew, lotta stuff tweaked. Got build_release_package.bat to build and the application to run (though there's a bogus error that pops up in the output port that grabs the Korg nanoKEY2. Low priority unless you find something similar, since my Launchpad Mini causes no message and the nanokey works for entering notes. Lotta surprises along the way.

Tomorrow I will likely make 0.99.5 official and add the installer to the release. I'm only worrying about 64-bit Windows at the moment; but the installer still prompts to install to Program Files (x86); you change that to plain Program Files (Window 10) and it works. If you cannot wait, you can check out the "portfix" branch and see if you can break it.

ahlstromcj added a commit that referenced this issue May 20, 2023
This file lists __major__ changes from version 0.99.5

    -   Issue #110 Windows: Fixed many errors, added installer to this release,
        no more going to the sequencer64 repository. Can build NSIS installer
        in Windows now.
    -   Fixed portmidi bugs in Linux and Windows, enhanced the device naming.
    -   Greatly enhanced the event editor tab and added more events that can
        be view and modified.
    -   Made port-mapping the default. At first startup the map exactly matches
        the existing ports; can be changed in the 'rc' file or Preferences dialog.
        Used the Edit / Preferences / MIDI Clock / Make Maps button to
        refresh the port setup when devices are added or removed.
    -   Eliminated "missing ctrl" message at first startup.
    -   Fixed port ID setting in midibus, and adding output flag for
        ALSA MIDI info.
    -   Internal refactoring to regularize handling of the session/config
        directory between Linux and Windows.
    -   Shows disabled/unavailable MIDI devices as grayed in various dropdowns.
    -   Rearranged the Seq66 man pages more sensibly.

Read the NEWS, README.md, and TODO files.  Never-ending!
@ahlstromcj
Copy link
Owner

Okay, pushed 0.99.5 to master and created a new release. The new release has an exe installer attached to it. There are some minor issues that may crop up, but read data/readme.windows and the user manual. If any showstoppers, sound the alarm! I won't close this issue until you are satisfied.

@furrig
Copy link
Author

furrig commented May 21, 2023

Hi !
Thanks for the release !

Spent a couple of hours on it, below some issues I found

  • no shortcut in start menu after setup
  • can't click on 'MIDI Clock' tab in preferences (alt-C is ok)
  • user manual and tutorials entry menus seems to open something but close quick (I do have a default pdf reader)
  • tempo is not saved with new song (but works with for example Kraftwerk-Europe_Endless-reconstructed.midi provided in data folder)

Patterns editor

  • often ctrl-Z is not working event though click undo button works

  • no undo on velocity changes

  • velocity changes apply to all events, not only selected events

  • when a background sequence is chosen, it's not possible to display another one or to turn it off

  • update : forgot to mention there was no data/readme.windows nor data/readme.text provided

@ahlstromcj
Copy link
Owner

ahlstromcj commented May 21, 2023 via email

@furrig
Copy link
Author

furrig commented May 22, 2023

Concerning velocity changes on selected notes only, an example how Seq24 works : https://www.youtube.com/watch?v=i3Vpi3oxdqk&t=294s

@ahlstromcj
Copy link
Owner

ahlstromcj commented May 22, 2023 via email

@ahlstromcj
Copy link
Owner

ahlstromcj commented May 22, 2023 via email

@ahlstromcj
Copy link
Owner

Just an update. I think I've got all of the newer issues resolved except for the display of the tutorial and manual. I refactored the related code to be more robust, but it still acts the same. In the meantime, I fixed issues with redirecting the console messages to a log file. Trying to improve application icon support. Also finally got the pattern editor panes to respond uniformly to the arrow and page keys no matter with pane has focus. The piano roll is the "scroll master" which the keyboard, time, event, and data panes are "scroll slaves". The "hjkl" (vi motion keys) work. Somehow I can't get the wheel events (mouse scrolling) to totally work, it works only if the piano roll has focus. Currently am adding new Windows icons to the NSIS installer. I hope to release all this next weekend; would like to pound on it some more.

Thanks for all your reports! They make for a better product!

@Moerkie
Copy link

Moerkie commented Jun 4, 2023

Hi all, have been trying to build this on my old win xp machine with no luck, still on seq24. Is it possible to release a 32 bit version of the installer? Otherwise i will study further on building it. thnx!

@ahlstromcj
Copy link
Owner

ahlstromcj commented Jun 4, 2023 via email

@Moerkie
Copy link

Moerkie commented Jun 4, 2023 via email

@ahlstromcj
Copy link
Owner

Just found a couple of compiler errors in the 32-bit build, so no need to even try to build it yourself :-(

@ahlstromcj
Copy link
Owner

After trying to get a Win32 build on my 64-bit windows using mingw32, I am punting this issue to another release. I can make a 32-bit version of qpseq66.exe in Qt Creator, and it runs if I started it from Qt Creator. However, it does not run on its own, even after doing the Qt Creator deploy command. And using the build batch script yields errors: (1) WinMain() unresolved; (2) a whole bunch of Qt modules undefined. I tweaked the make to try to match what Qt Creator does when it makes, to no avail. The only other option I think is to get an old 32-bit version of Windows, installed Qt Creator on that, and try it. But I won't do that, as I have no obvious source for that old operating system. Sorry. If someone finds a way to do it, please let me know. For now, only the 64-bit version will be provided. :-(

@Moerkie
Copy link

Moerkie commented Jun 14, 2023 via email

@ahlstromcj
Copy link
Owner

I was planning to make a new relase last weekend, but had to re-wrestle with the Microsoft MIDI Mapper, which, contrary to reports, is still in Windows 10. But it does NOT have the Control Panel entry people talk about. Right now, the situation on my VM is that device 0 is the MIDI Mapper, which grabs device 1, the builti-in GS Wavetable Synth, then devices 2 on up are the hardware devices plugged into the system. Device 1 is rendered unavailable. To avoid a chronic error message at startup, the code detects this locking in Windows and avoids reporting on it. (The alternative is to use the new option to suppress startup messages.) But ....

.... This leads to a question: Do you use a third party mapper like CoolSoft MIDI Mapper or Midi-Ox? If so, does it have the same issue as the Microsoft MIDI Mapper? Any things I need to account for? Thanks!

@furrig
Copy link
Author

furrig commented Jun 30, 2023

I'm not sure I understood the issue you explained but :

  • I have this error message when I start seq66 : "Session error portmidi host error: [7] 'The specified device is already in use. Wait until it is free, and then try again.' Check MIDI Clock & MIDI Input tabs for unavailable/missing ports. Try the 'Make Maps' button and restart Seq66."
  • I use loopMidi (https://www.tobias-erichsen.de/software/loopmidi.html) and all of his virtual ports appear and are available in seq66 prefs on both MIDI Clock & MIDI Input tabs

@ahlstromcj
Copy link
Owner

ahlstromcj commented Jun 30, 2023 via email

@ahlstromcj
Copy link
Owner

ahlstromcj commented Jun 30, 2023 via email

@furrig
Copy link
Author

furrig commented Jun 30, 2023

Here it is

[midi-input]

 6      # number of MIDI input (or control) buses

 0  1   "[0] 0:1 MMSystem:ZOOM R8"
 1  1   "[1] 1:2 MMSystem:Hydrogen-to-Cubase"
 2  1   "[2] 2:3 MMSystem:Cubase-to-Hydrogen"
 3  1   "[3] 3:4 MMSystem:midi-clock"
 4  1   "[4] 4:5 MMSystem:midi-transport"
 5  1   "[5] 5:6 MMSystem:seq64-out"


[midi-input-map]

 1      # map is active

 0  1   "ZOOM R8"
 1  1   "Hydrogen-to-Cubase"
 2  1   "Cubase-to-Hydrogen"
 3  1   "midi-clock"
 4  1   "midi-transport"
 5  1   "seq64-out"


[midi-clock]

 8      # number of MIDI clocks (output/display buses)

 0  0   "[0] 0:0 MMSystem:Microsoft MIDI Mapper"
 1  0   "[1] 1:7 MMSystem:Microsoft GS Wavetable Synth"
 2  0   "[2] 2:8 MMSystem:ZOOM R8"
 3  0   "[3] 3:9 MMSystem:Hydrogen-to-Cubase"
 4  0   "[4] 4:10 MMSystem:Cubase-to-Hydrogen"
 5  0   "[5] 5:11 MMSystem:midi-clock"
 6  0   "[6] 6:12 MMSystem:midi-transport"
 7  0   "[7] 7:13 MMSystem:seq64-out"


[midi-clock-map]

 1      # map is active

 0  0   "Microsoft MIDI Mapper"
 1  0   "Microsoft GS Wavetable Synth"
 2  0   "ZOOM R8"
 3  0   "Hydrogen-to-Cubase"
 4  0   "Cubase-to-Hydrogen"
 5  0   "midi-clock"
 6  0   "midi-transport"
 7  0   "seq64-out"

@ahlstromcj
Copy link
Owner

I finally got seq64 to build and installed loopMidi and played with it using the portfix branch version of qpseq66. That seemed to work. So one option is to wait for tomorrow or Sunday to see if 0.99.6 does the trick.

One weird thing is I swear I was building qseq64 in a 32-bit version awhile back. But now it builds as a 64-bit version, and I had to fix a buncha UINT_PTR vs UINT and DWORD_PTR vs DWORD issues.

ahlstromcj added a commit that referenced this issue Jul 1, 2023
This file lists __major__ changes from version 0.99.6

    -   Issue #3 follow-ons:
        -   Pattern editor panes stay in sync with the piano roll using
            the hjkl, arrow, and page keys. Scroll wheel works in
            the piano roll.
    -   Issue #110 follow-ons:
        -   Addition of Start menu entries for Windows.
        -   Fixed access to the tutorial and manual.
        -   data/readme & doc/tutorial files fixed for NSIS installer.
        -   Fixed the saving of modified tempo changes.
        -   Fixed changing note velocities in the pattern editor data
            pane.  Improved velocity-change undo.
        -   Fixed error preventing changing the "background" pattern.
        -   Remaining issue: Building 32-bit (Windows XP) version on
            64-bit Windows.
    -   Issue #111:
        -   Added support for editing, storing, and displaying time
            signatures in the pattern and event editors.
        -   The first time-signature in a pattern becomes the main
            time signature of the pattern.
        -   The data pane shows a time-signature as a simple fraction.
        -   Changing the time signature if at time 0 is automatic.
        -   Time signatures at later times are logged by setting the
            current time with a click in the top half of the time line,
            changing the beats and beat width, then clicking a
            time-sig log button.
        -   Non-MIDI-standard beat-widths are supported as a
            Seq66-specific "event".
        -   Fixed event filtering in the event (qstriggereditor) pane.
        -   As time-signatures change, Seq66 adjusts the piano roll,
            time line (with measure counts), and event pane vertical
            lines.
    -   Port-mapping prompts about port issues and allows an immediate
        remap-and-restart.
    -   'o' keystroke in seqroll toggles recording ('r' already
        taken).
    -   Added a "quiet" option to not show startup message prompts.
    -   A log-file is now created by default & kept under a megabyte.
    -   Added the pattern port number to the Song Summary output.
    -   A large number of fixes of unrelated issues.

Read the NEWS, README.md, and TODO files.  Working our assoff!

// vim: sw=4 ts=4 wm=15 et ft=sh
@ahlstromcj
Copy link
Owner

Latest release 0.99.6 in place in master branch for you to whack at! User manual updated to match.

@furrig
Copy link
Author

furrig commented Jul 3, 2023

Thanks for the release :)

Did some quick tests.
It resolved the issues I mentionned earlier (selected notes velocity, background sequence ...) but one : I'm still not able to save the tempo

@ahlstromcj
Copy link
Owner

ahlstromcj commented Jul 3, 2023 via email

@furrig
Copy link
Author

furrig commented Jul 4, 2023

I tried with both clicking and editing
(it's on Windows)

@ahlstromcj
Copy link
Owner

ahlstromcj commented Jul 5, 2023 via email

@furrig
Copy link
Author

furrig commented Jul 6, 2023

I don't have the same behaviour.
When I open Seq66, it automatically loads the last opened song, I change the tempo (either way), the asterisk appears, I save and then close and re-open -> the tempo change is lost

@ahlstromcj
Copy link
Owner

I have duplicated the error in Windows and it is weird with a beard! The BPM is written as a c_bpmtag SeqSpec, but a breakpoint on the parse for that item is hit only on Linux. So either the writing of it or the reading is broken on Windows. But this code is not OS-dependent. So a debugging slog is underway. :-(

@ahlstromcj
Copy link
Owner

So the bug was in the midifile::skip() function called with a negative number to move backward in the MIDI data. In the Windows build (using mingw32) the small negative number was being treated as positive, so that the skip was ignored and the data desired was not obtained. Added a "backup()" function; now calls backup(2) rather than skip(-2).

I'm going to look into some other TODO's before making a new release. If you're in a hurry, clone the project, go to the seq66/nsis directory in a DOS window, and run the .BAT build script. Then can run the installer or unpack the 7z (7-Zip) file to see if the "portable pack" runs.

ahlstromcj added a commit that referenced this issue Jul 19, 2023
This file lists __major__ changes in version 0.99.7
    -   Issue #110 follow-ons:
        -   Fixed saving tempo (BPM) in Windows when changed from main
            window. Caused by mixing a long and size_t; messed up in
            Windows builds.
    -   Issue #111 follow-ons:
        -   Fixed initial time-signature drawing in data pane.
        -   Fixed errors in inserting a time-signature.
        -   Added a pulse (tick) calculator to iterate through
            time-signatures.
    -   Fixed an important port-translation bug in output port-mapping.
    -   Revamped the Playlist tab, as it was confusing and very buggy.
    -   Added auto-play and auto-advance to play-lists.
    -   Issue #102: Added Windows key-mapping to fix processing
        "native virtual" keys, such as the arrow keys.
Read the NEWS, README.md, and TODO files.
@ahlstromcj
Copy link
Owner

Since we're up to version 0.99.8, closing this one. Reopen if necessary!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants