On 10/07/16 07:53, Alexandre Ratchov wrote:
On Thu, Oct 06, 2016 at 10:55:26AM +1100, Tobias Brodel wrote:
Hi, this is my first attempt at an OpenBSD port, it's for audio/pd.
Feedback would be greatly appreciated. COMMENT: Realtime computer
music and graphics system. DESCR: Pure Data (Pd) is an open source
visual programming language. It is used to process and generate
sound, video, 2D/3D graphics. Pd interfaces with sensors, input
devices and MIDI and can be operated across local and remote
networks. Pd is suitable for learning basic multimedia processing and
visual programming techniques, as well as for realising complex
systems for large-scale projects. WWW: http://puredata.info
Thanks. Audio wont work on top of the OSS api. Audio support of
libossaudio never worked well (except for trivial players and on
certain devices only) so it was removed after OpenBSD 5.7 release. The
least time consuming approach to make audio work reliably on OpenBSD
would be to write a sndio audio & midi backend for pd. I would start
with a copy of one of the working s_audio_*.c and replace calls to
open, read and write with the appropriate sio_xxx() functions. All the
sycnronization and overrun/underrun recovery bits could be dropped as
this is handled by sndio internally. There's no device enumeration, so
you could just hardcode "default". There's no mmap(), so corresponding
bits could go away as well. Same about MIDI. Another option would be
to enable the portaudio or jack backends.
Thanks for your feedback.
I did have audio running under OSS but it was very picky about
the order in which to connect things, and MIDI support
was nonexistent. A sndio backend would be much better, and
after having a play with it last night it seems to be *loads*
simpler than ALSA/OSS.
I have been having a couple of very basic issues though. Please
excuse me if I'm overlooking something obvious, but does every
sndio client need to implement the `sio_hdl' and `sio_ops' structs
privately?
Jack and portaudio should be included too, so I'll work on that
before sending in another tarball.
Thanks for your help,
toby/