Ugo, thank you for the great suggestion. PureData has been a huge help to me in testing out the functionality of the AudioInjector Octo.

For anyone following in my footsteps, here is my process:
-------------------------
Install PureData:
sudo apt install puredata
(At time of writing, this is version 0.51.4-1)

Open a command prompt and type "pd" to launch the PureData GUI application.
Select your sound card by clicking Media -> Audio Settings.
From this menu, make sure you have the Output Device set to the audioinjector, and set the channel count to 8. Save settings, hit apply, and OK.

To use the built in test tone generator, click Media -> Test Audio and MIDI.
On the left side, there are settings for the test tone generator.
It defaults to 440Hz (A4 on a piano). You can choose which output channels to send the tone. I hit All, and I was able to hear the tone at all eight outputs.
Note that my test setup is using 4 pairs of cheap wired earbuds, so 8 channels = 4 earbuds (left and right).

Next, I wanted to send different outputs to each of the 8 channels. I created a new pd file (File -> New).
I created an oscillator object by clicking Put -> Object and then entering the text "osc~ 440" where 440 is the frequency of the oscillator object.
I made 8 oscillators with different frequencies so I could tell them apart.
Then, I made an output object by clicking Put -> Object and entering the text "dac~ x" where x is the channel number. I made 8 objects, numbering them 1-8.
Using the graphical interface, I connected one oscillator to one DAC until they were all connected.
As they were connected, they started playing. I went through the 8 earbuds and heard 8 different tones.

Finally, I wanted to play .wav files, instead of tones. I already had 4 different .wav files downloaded to my Pi.
I created a new pd file. Then I added an object to read a .wav file by entering "readsf~" in the object text field.
Next, I added two DACs ("dac~ 1" and "dac~ 2") for the right and left channels.
I hooked both DAC inputs to the output of the "readsf~" object (so, this is mono output, but to both the right and left sides).
Then I added an object to open the .wav itself: "open /home/pi/Desktop/audio_samples/drums.wav, 1". (You'll need to update that with your own filepath.)
I connected the output of the "open" object to the input of the "readsf~" object.
Then, I could click on the "open" object, and the audio would play.
I copied and pasted my connection structure to set up the additional channels. I renamed the "dac" objects (to get 1-8) and changed the .wav filepath for my other three audio samples.
Then I clicked all 4 "open" blocked, and I got all 4 .wav files playing simultaneously, one on each of my sets of headphones.

Here's a link to a useful series of tutorial videos on PureData:
https://www.youtube.com/watch?v=v53tJl3rE1c&ab_channel=QVisible
-------------------------

Hopefully, this writeup is able to help someone someday. I still need to try recording audio, but PureData was absolutely a great software tool for testing out this device. Thanks again for the help!

     -Chris


On Mon, Apr 25, 2022 at 6:44 PM Chris Fernandez <chris@hardline.io> wrote:
Ugo, thank you for the great suggestion. PureData has been a huge help to me in testing out the functionality of the AudioInjector Octo.

For anyone following in my footsteps, here is my process:
-------------------------
Install PureData:
sudo apt install puredata
(At time of writing, this is version 0.51.4-1)

Open a command prompt and type "pd" to launch the PureData GUI application.
Select your sound card by clicking Media -> Audio Settings.
From this menu, make sure you have the Output Device set to the audioinjector, and set the channel count to 8. Save settings, hit apply, and OK.

To use the built in test tone generator, click Media -> Test Audio and MIDI.
On the left side, there are settings for the test tone generator.
It defaults to 440Hz (A4 on a piano). You can choose which output channels to send the tone. I hit All, and I was able to hear the tone at all eight outputs.
Note that my test setup is using 4 pairs of cheap wired earbuds, so 8 channels = 4 earbuds (left and right).

Next, I wanted to send different outputs to each of the 8 channels. I created a new pd file (File -> New).
I created an oscillator object by clicking Put -> Object and then entering the text "osc~ 440" where 440 is the frequency of the oscillator object.
I made 8 oscillators with different frequencies so I could tell them apart.
Then, I made an output object by clicking Put -> Object and entering the text "dac~ x" where x is the channel number. I made 8 objects, numbering them 1-8.
Using the graphical interface, I connected one oscillator to one DAC until they were all connected.
As they were connected, they started playing. I went through the 8 earbuds and heard 8 different tones.

Finally, I wanted to play .wav files, instead of tones. I already had 4 different .wav files downloaded to my Pi.
I created a new pd file. Then I added an object to read a .wav file by entering "readsf~" in the object text field.
Next, I added two DACs ("dac~ 1" and "dac~ 2") for the right and left channels.
I hooked both DAC inputs to the output of the "readsf~" object (so, this is mono output, but to both the right and left sides).
Then I added an object to open the .wav itself: "open /home/pi/Desktop/audio_samples/drums.wav, 1". (You'll need to update that with your own filepath.)
I connected the output of the "open" object to the input of the "readsf~" object.
Then, I could click on the "open" object, and the audio would play.
I copied and pasted my connection structure to set up the additional channels. I renamed the "dac" objects (to get 1-8) and changed the .wav filepath for my other three audio samples.
Then I clicked all 4 "open" blocked, and I got all 4 .wav files playing simultaneously, one on each of my sets of headphones.

Here's a link to a useful series of tutorial videos on PureData:
https://www.youtube.com/watch?v=v53tJl3rE1c&ab_channel=QVisible
-------------------------

Hopefully, this writeup is able to help someone someday. I still need to try recording audio, but PureData was absolutely a great software tool for testing out this device. Thanks again for the help!

     -Chris

On Fri, Apr 22, 2022 at 5:14 PM Ugo Fosco <nasa50126@gmail.com> wrote:
Hi Chris, i am not a programmer, but i made a simple mixer with all inputs and output fully working in puredata. I started with no previous knowledge of the program and i completed in a couple days. Sometimes, very rarely,  pd dont recognize the soundcard, in that case i simply unplug the power supply from rpi, i reboot,  and it comes back alive. pd is super easy to install in raspberry pi. Don't know if this solution will suits you, now the rpi-octo couple is my synths mixer, reverb and delay included, and i love it. Bye, have fun.

On Fri, 22 Apr 2022, 19:59 Chris Fernandez via People, <people@lists.audioinjector.net> wrote:
Hello,

I recently purchased an Octo and I am trying to demonstrate its capabilities. I have connected it to a Raspberry Pi 3B+ with a fresh install of Raspbian (v11). I've gone through the GitHub octo installation instructions, and I have been able to play 1x audio output from the AudioInjector card. Sound quality is good!

However, I am struggling to get more than one audio output working at a time. I've tried opening multiple instances of VLC media player to play two different audio files. This works if I send one audio stream to the AudioInjector, and another to HDMI. However, the AudioInjector is only showing up as a single audio sink. I don't see how I can send other audio streams to the other channels of the AudioInjector.

I have spent a few days looking into this, and playing around with aplay and other Asla tools. No luck for me so far. 

Is the basic installation from GitHub intended to default to a 1x output mode? Are there other steps I need to do to enable multiple independent outputs? Is there something like a tutorial or demo that I could use to validate the hardware and test operation with 6x inputs and 8x outputs? What is the easiest way to test the full functionality of the Octo board?

Any guidance would be greatly appreciated! Thanks in advance!

     -Chris

--
Chris Fernandez
518-242-6475
Hardline, Inc.
112 South Park Street
San Francisco, CA 94107

--
People mailing list
People@lists.audioinjector.net
https://lists.audioinjector.net/mailman/listinfo/people


--
Chris Fernandez
chris@hardline.io
518-242-6475
Hardline, Inc.
112 South Park Street
San Francisco, CA 94107


--
Chris Fernandez
chris@hardline.io
518-242-6475
Hardline, Inc.
112 South Park Street
San Francisco, CA 94107