Skip to content

Crude fixes to build and run on xubuntu 20.04.#1

Draft
fidergo-stephane-gourichon wants to merge 3 commits intoaskeksa:masterfrom
fidergo-stephane-gourichon:build_on_xubuntu_20_04
Draft

Crude fixes to build and run on xubuntu 20.04.#1
fidergo-stephane-gourichon wants to merge 3 commits intoaskeksa:masterfrom
fidergo-stephane-gourichon:build_on_xubuntu_20_04

Conversation

@fidergo-stephane-gourichon
Copy link
Copy Markdown

Hi Aske!

Old Amiga fan here. Played with Rose moments ago. Makefile contains hacks (mingw-specific, local hacks).

Did some quick and crude cleanup to have it work on a Xubuntu 20.04 box. Mostly makefile, and also time was stuck on first frame so I hacked crudely. This was enough to see the examples.
Looks like some are intended to be in sync with some music.
I spotted the reference to "State of the Art" demo!

The changes in this PR are obviously not intended to be merged as is, but can be a base, should you be open to other people reusing your work.

Cheers!

@askeksa
Copy link
Copy Markdown
Owner

askeksa commented Dec 12, 2020

Thanks for the Makefile suggestions!

The Pa_GetStreamTime workaround destroys the synchronization between the music and visuals. There is some discussion of the issue here: https://portaudio.music.columbia.narkive.com/NdyeTVhq/pagetstreamtime-apparently-always-returns-0

Maybe it can be fixed by configuring the PortAudio installation differently?

@fidergo-stephane-gourichon
Copy link
Copy Markdown
Author

Thanks for taking care of replying.

The links you mention suggest a bug in ALSA backend of Portaudio.

Just to clarify a fact, yes PortAudio uses ALSA API implemented by PulseAudio.

To get this information I modified this:

MusicPlayer::MusicPlayer() {
	Pa_Initialize();

        PaHostApiIndex pahac = Pa_GetHostApiCount 	( 	  		);
        printf("pahac = %d\n", pahac);

        for (PaHostApiIndex ahi=0; ahi<pahac; ahi++)
        {
            const PaHostApiInfo *hai = Pa_GetHostApiInfo( ahi );
            printf( "API %d name %s\n", ahi, hai->name );
        }

        PaDeviceIndex padc = Pa_GetDeviceCount 	( 	  		) 	;
        printf("padc = %d\n", padc);

        PaDeviceIndex padod = Pa_GetDefaultOutputDevice 	( 	  		) 	;
        const PaDeviceInfo *padi = Pa_GetDeviceInfo(padod);
        printf( "Name                        = %s\n", padi->name );

        const PaHostApiInfo *hai = Pa_GetHostApiInfo( padi->hostApi );
        printf( "API %s\n", hai->name );

        printf("padod = %d\n", padod);
        exit(1);
}

x

pahac = 2
API 0 name ALSA
API 1 name OSS
padc = 22
Name                        = default
API ALSA
padod = 21

Actually, on my machine, Portaudio only reports ALSA-based accesses to devices. I guess it's just what Ubuntu does.

So far, we don't know much more about the real issue. As you saw, I only shared crude workarounds. They could only be considered starting points in case anyone wants to run Rose on Ubuntu or other Linux.

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

Successfully merging this pull request may close these issues.

2 participants