ahlstromcj / sequencer64

A major reboot of Seq24. Current release 0.97.0 (2021-05-13), native JACK MIDI, Song recording, playlists, and a Windows/Qt version. For fresher code, see the Seq66 project. Note that trigger and mute-group-in-MIDI-file formats have evolved! Back up your work!
GNU Affero General Public License v3.0
235 stars 29 forks source link

ALSA still required even if using JACK? #98

Open simonvanderveldt opened 7 years ago

simonvanderveldt commented 7 years ago

Whilst packaging sequencer64 for gentoo our CI failed with the following message:

checking for ALSA CFLAGS... 
checking for ALSA LDFLAGS...  -lasound -lm -ldl -lpthread
checking for libasound headers version >= 0.9.0... not present.
configure: error: Sufficiently new version of libasound not found.

This was what was passed to ./configure:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/sequencer64-0.93.0 --htmldir=/usr/share/doc/sequencer64-0.93.0/html --libdir=/usr/lib64 --enable-jack --enable-jack-session --disable-lash

I expect these settings to enable jack as the audio backend and by extension didn't expect that ALSA would be needed. Is that incorrect? Does sequencer64 itself natively need ALSA or is that a requirement of rtmidi? (which if I understand the current situation correctly should be the backend that's being used if jack is enabled).

P.S. Another small question, hope it's ok to add it here. Is rtmidi itself needed as a dependency? It's not listed in ./INSTALL and sequencer64 seems to work with jack as the audio backend without it installed.

ahlstromcj commented 7 years ago

Well, seq64 still assumes that alsa is installed. But it's theoretically possible to leave it out. I will see if libasound-dev can be left out.

As for the rtmidi, it turned out to be incompatible with seq24's "model", but seq64 does incorporate a rewritten version to which I hope to add back MacOSX and Windows support "Real Soon Now".

On Jul 16, 2017 3:09 PM, "Simon van der Veldt" notifications@github.com wrote:

Whilst package sequencer64 for gentoo our CI failed with the following message:

checking for ALSA CFLAGS... checking for ALSA LDFLAGS... -lasound -lm -ldl -lpthread checking for libasound headers version >= 0.9.0... not present. configure: error: Sufficiently new version of libasound not found.

This was what was passed to ./configure:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/sequencer64-0.93.0 --htmldir=/usr/share/doc/sequencer64-0.93.0/html --libdir=/usr/lib64 --enable-jack --enable-jack-session --disable-lash

I expect these settings to enable jack as the audio backend and by extension didn't expect that ALSA would be needed. Is that incorrect? Does sequencer64 itself natively need ALSA or is that a requirement of rtmidi? (which if I understand the current situation correctly should be the backend that's being used if jack is enabled).

P.S. Another small question, hope it's ok to add it here. Is rtmidi itself needed as a dependency? It's not listed in ./INSTALL https://github.com/ahlstromcj/sequencer64/blob/master/INSTALL#L432 and sequencer64 seems to work with jack as the audio backend without it installed.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/sequencer64/issues/98, or mute the thread https://github.com/notifications/unsubscribe-auth/AHnVqJKVSENSkz9eU1QM8qHQevUF-d7Jks5sOmAFgaJpZM4OZYlx .

simonvanderveldt commented 7 years ago

Thanks for the quick response!

Well, seq64 still assumes that alsa is installed. But it's theoretically possible to leave it out. I will see if libasound-dev can be left out.

It's fine for me if it's required, need it anyway for the majority of audio apps :) I'll simply add it as a dependency and it should be fine :)

As for the rtmidi, it turned out to be incompatible with seq24's "model", but seq64 does incorporate a rewritten version to which I hope to add back MacOSX and Windows support "Real Soon Now".

Does this mean the current jack implementation doesn't use rtmidi? Or in other words, what does the current jack implementation use?

ahlstromcj commented 7 years ago

I took the rtmidi source code base and completely revamped it. It's included in the seq_rtmidi subdirectory and is maybe about 30% of the rtmidi code.

On Jul 16, 2017 4:14 PM, "Simon van der Veldt" notifications@github.com wrote:

Thanks for the quick response!

Well, seq64 still assumes that alsa is installed. But it's theoretically possible to leave it out. I will see if libasound-dev can be left out.

It's fine for me if it's required, need it anyway for the majority of audio apps :) I'll simply add it as a dependency and it should be fine :)

As for the rtmidi, it turned out to be incompatible with seq24's "model", but seq64 does incorporate a rewritten version to which I hope to add back MacOSX and Windows support "Real Soon Now".

Does this mean the current jack implementation doesn't use rtmidi? Or in other words, what does the current jack implementation use?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/sequencer64/issues/98#issuecomment-315634120, or mute the thread https://github.com/notifications/unsubscribe-auth/AHnVqPCN-FatKa0B-QLMp4BM_JpVLJdlks5sOm87gaJpZM4OZYlx .

simonvanderveldt commented 7 years ago

I took the rtmidi source code base and completely revamped it. It's included in the seq_rtmidi subdirectory and is maybe about 30% of the rtmidi code.

Ah, OK. So it's simply included in the codebase, no external dependency. Thanks for the quick responses!

If you want we can close this issue?

ahlstromcj commented 7 years ago

I would like to try to make an ALSA-less build first. It might uncover some bugs!

On Jul 16, 2017 4:22 PM, "Simon van der Veldt" notifications@github.com wrote:

I took the rtmidi source code base and completely revamped it. It's included in the seq_rtmidi subdirectory and is maybe about 30% of the rtmidi code.

Ah, OK. So it's simply included in the codebase, no external dependency. Thanks for the quick responses!

If you want we can close this issue?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/sequencer64/issues/98#issuecomment-315634492, or mute the thread https://github.com/notifications/unsubscribe-auth/AHnVqNShERipNB5P-X4Zj4l-PwpKvMoJks5sOnDsgaJpZM4OZYlx .

simonvanderveldt commented 7 years ago

I would like to try to make an ALSA-less build first. It might uncover some bugs!

OK, have fun! ;) If you need someone to test something/check if it works just let me know

ahlstromcj commented 6 years ago

I see from jackd(1) that the supported backends are: alsa, coreaudio, dummy, freebob, oss sun and portaudio. Currently I am mostly fixing bugs, though. No time for much more than that, due to work-work.