Other Sound On FreeBSD and HiDPI support

I started using linux to create music but then I migrated to FreeBSD.

On linux there's alsa, pulse for most sound but for music they often used jack and made some kernel changes.

I spent some time researching and it seems that FreeBSD uses OSS and that's a lower level than alsa, jack and nowhere close to pulse. So oss is more flexible; okay great.

The issue that I am facing is that there are really no music making software that really runs with oss.

I saw LMMS and it's okay but there are a few problems on my setup. I mean the audio it produces is nice, I haven't tried my MIDI keyboard yet. The bigger issue is that even on linux a lot of the software didn't support HiDPI screens.

This leaves me with either scaling up my screen a lot with xrandr and try to shrink the dpi when switching to other application or burn out my eyes when trying to work with the tiny screen.

I think what I would like to do is write some programs that can work on FreeBSD or at least oss based systems. oss seems well documented here

one major question that I had was choosing a dev kit for doing gui work. There's qt, gtk and maybe some others.

Any FreeBSD devs care to comment on a toolkit to use?

I would like something that's light weight but it has to support HiDPI. I don't think there's any reason to create any program going forward that doesn't support these types of screen and there are a lot of sound software on linux that have UI that scales horribly.

1) what are some [lightweigh] HiDPI gui toolkit.
2) it seems that developing audio programs on FreeBSD don't need jack, does oss support connecting different programs like jack?
 
2) it seems that developing audio programs on FreeBSD don't need jack, does oss support connecting different programs like jack?

My understanding is that sound servers interface applications to sound drivers as described in this Sound System wiki. audio/jack connects to the oss drivers in FreeBSD. Sound servers are not absolutely needed, you can interface one application directly to the driver. application <-> ALSA. In linux distributions that use pulseaudio I believe that the setup is application <-> pulseaudio <-> ALSA. The Jack application provides a gui allowing you to interface more than one application to the sound system: application(1) + application(2) <-> jack <-> pulseaudio <-> ALSA. Jack, as implemented on FreeBSD application(1) + application(2) <-> jack <-> OSS

There are many open source sound servers: eg. esound, sndio.

FreeBSD also offers ALSA drivers with linux emulation - you can end up with application(1) + application(2) <-> jack <-> pulseaudio <-> Linux emulation <-> ALSA on a FreeBSD system. You basically end up balancing ease of use vs complexity.

Edit: that sound servers applications -> that sound servers interface applications
 
My understanding is that sound servers applications to sound drivers as described in this Sound System wiki. audio/jack connects to the oss drivers in FreeBSD. Sound servers are not absolutely needed, you can interface one application directly to the driver. application <-> ALSA. In linux distributions that use pulseaudio I believe that the setup is application <-> pulseaudio <-> ALSA. The Jack application provides a gui allowing you to interface more than one application to the sound system: application(1) + application(2) <-> jack <-> pulseaudio <-> ALSA. Jack, as implemented on FreeBSD application(1) + application(2) <-> jack <-> OSS

There are many open source sound servers: eg. esound, sndio.

FreeBSD also offers ALSA drivers with linux emulation - you can end up with application(1) + application(2) <-> jack <-> pulseaudio <-> Linux emulation <-> ALSA on a FreeBSD system. You basically end up balancing ease of use vs complexity.

I'd prefer to avoid going through so many layers of abstraction, especially linux emulation, even if it's great. Writing simple code on top of well defined API's always seemed like a better choice than using many layers of abstraction. That's why I still use c99 to do most of my programming and then python, html, css and only if necessary js.

I'll have to really look into the oss documents further to see if it can handle midi really well. I want to create a program like seq24
Something that's simple, can send midi to vst instruments, seq24 is gnu but it's gnu. A BSD license sequencer like that would be pretty good with a good ui that scales across monitors.
 
Back
Top