Skip to content

pas-audio-server/pas-core

Repository files navigation

pas

Perry's audio server - a robust audio server for large numbers of concurrent streams of digital and analog output.

Latest Development Highlights

5/17/17 pas up and running on $15 computer!

This NanoPi NEO2 runs pas very well.

$15 NEO2 runs pas quite handily!

Sponsors

AUDIO DAC MAKERS - WE NEED MORE DACS TO FIND OUT HOW MANY CONCURRENT STREAMS CAN BE SUPPORTED ON A GIVEN CLASS OF MACHINE. I AM SEEKING SPONSORS TO PROVIDE ONE OR MORE OF THEIR USB DAC PRODUCTS. SPONSORS GET:

  1. Promoted here.
  2. Ceritification as being pas compatible (and pas will be YUGE!)
  3. Our thanks!

PLEASE CONTACT ME IF INTERESTED, USING MY LINKEDIN ACCOUNT.

What is pas?

pas is an audio server capable of sending multiple concurrent analog or digital stereo feeds to some (as yet undetermined maximum) number of outboard DACs. Each DAC drives a separate audio zone in a multi-zone or multi-room installation.

A key feature of pas is that it is quite light weight, capable of running multiple concurrent streams even from a $50 ARM-based dev-board. See directly below for information about the microscopic computer pas being being developed on.

Some information about pas:

  • pas is Linux based.

  • pas is heavily multithreaded and likes multicore machines.

  • pas is written to be headless. UI's are provided via ssh or other means such as a web server.

  • audio is emitted using pulseaudio via USB ports.

  • audio is decoded using ffmpeg so pas supports those formats supported by ffmpeg.

  • data is maintained using MySQL.

  • pas may expose a MPD-compatible interface as the pas API is quite robust.

  • pas is being developed on an odroid XU4.

  • pas is being developed using an audioengine D3 USB DAC and a DragonFly Black from AudioQuest.

Why did I start pas when *.* is available?

Because. 'Murica.

pas is not this which sends audio as digital data via RTP connections.

pas is not this which, well, I have no idea what this does.

These and others send digital data to remote digital devices.

Apparently there is a high end market which pas has the potential to disrupt

We've come across music servers costing $5000 and more which provide less functionality than pas. Of course they presumably have much better DACs but pas doesn't provide the DAC. You do. This could get interesting.

In any case, we are redefining pas as a general purpose multi-stream digital and analog audio server - with a DAC, it's analog. Without a DAC, it's digital.

Who is Perry?

This is me.

You are already familiar with my work.

I contribute to this.

I used to teach CS here but now I teach CS here.

Is pas MPD-client compatible?

I hope this is added someday. The pas API is likely a superset of what MPD is capable of, so it seems reasonable this may come to pass in pas.

What additional information is available about pas?

The wiki is maintained.

Is there a style guide?

Yes. It is in the wiki.

Are other contributors welcomed?

Yes.

How do computer programmers kill zombies?

Read Get off my L@wn and find out. And don't steal it like everybody else, please? It's just $2.99 for crap's sake.

Is pas shitty code?

We take pride in our work. We strive to write non-shitty code. If you believe we have written shitty code, please let us know in a non-shitty way.

Does pas contain cool code?

Yes, there is some cool code in pas.

The web server is being written in go and it and the pas server use Google Protocol Buffers (version 3).

The threading models are nice. Apparently they are real nice as there are $5000+ audio servers that do single streams. pas supports an unknown number (limited by your hardware) number of concurrent streams.

When will pas be done?

¯_(ツ)_/¯.

What's the best computer ever made?

The Amiga.

<mic drop>