Rose
Rose copied to clipboard
Crude fixes to build and run on xubuntu 20.04.
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!
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?
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.