Re: SDL audio issue with hivelytracker (porting attempt)

From: Mehmet Erol Sanliturk <m.e.sanliturk_at_gmail.com>
Date: Tue, 15 Mar 2022 12:50:10 UTC
On Tue, Mar 15, 2022 at 3:37 PM Robert Clausecker <fuz@fuz.su> wrote:

> Hi Emanuel,
>
> This is a common issue I had with multiple ports (the latest being
> emulators/fceux).  The fragment size must be patched to be a power of 2
> and the buffer for the fragments must be resized to be at least as large
> as the fragment size (iirc).  This might be the reason why you get a
> signal.
>
> The fragment size is set in the SDL_AudioSpec structure member samples
> passed to SDL_OpenAudio().
>
> Try to find this call and patch it.
>
> Yours,
> Robert Clausecker
>


I was just thinking about this a little ago .

When the audio is patched , it may be required to fill it  a value
( I do not know what it is , but
you may generate it by a "silent" record conforming to your audio file
specifications ,
or , by using an audio editor  , copy paste a silent part of your file to
the end
in sufficient length  ( please consider stereo )  )
to produce a "silent"  sound  , OR ,
give length of play to ( by considering exact size of your audio file ) use
it
( this should be possible because file size to load and length of the part
to be played are different concepts ) .



With my best wishes ,


Mehmet Erol Sanliturk








>
> Am Tue, Mar 15, 2022 at 12:49:08PM +0100 schrieb Emanuel Haupt:
> > I've been trying to port the hivelytracker to FreeBSD. After a lot of
> > patching I was finally able to start it with:
> >
> > SDL_AUDIODRIVER=disk
> >
> > with dsp (default) I would always get:
> >
> > Fragment size must be a power of two
> >
> > when
> >
> > SDL_OpenAudio(...)
> >
> > was called.
> >
> > I did some further digging and found some useful references in:
> >
> >
> https://cgit.freebsd.org/ports/tree/audio/faudio/files/patch-src_FAudio__platform__sdl2.c
> >
> > With this patch I was able to get the player to launch without the above
> > error:
> >
> >
> https://github.com/ehaupt/ports-wip/blob/master/ports/audio/hivelytracker/files/patch-replay.c
> >
> > The player now starts:
> >
> > I can click on 'Load Mod', load a sample mod but as soon as I get 'Play
> > Song' I get:
> >
> > Abort trap (core dumped)
> >
> > I've been trying to get some sense by running it with truss but haven't
> > been very successful so far.
> >
> > The work in progress port can be found here:
> >
> https://github.com/ehaupt/ports-wip/tree/master/ports/audio/hivelytracker
> >
> > The port still needs some TLC (hardcoded paths, etc...). I'll fix that
> > before adding the port.
> >
> > Could someone with SDL audio experience please have a look? I'd
> > appreciate the help.
> >
> > Emanuel
> >
> >
> > [1] https://github.com/pete-gordon/hivelytracker
> >
>
> --
> ()  ascii ribbon campaign - for an 8-bit clean world
> /\  - against html email  - against proprietary attachments
>
>