[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4688: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4690: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4691: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4692: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
Parallella Community • View topic - Audio playback
Page 4 of 8

Re: Audio playback

PostPosted: Sat Mar 14, 2015 8:54 am
by patc

Re: Audio playback

PostPosted: Fri Apr 03, 2015 12:41 pm
by patc
Measurement first results (entirely done with the Parallella)

image #1
- measuring my home-theater speakers during testing (still work in progress so I'll move to the hifi system only after thorough testing)
- microphone is close to the speakers so there is limited room influence

image #2
- measurement of logsweep 2 millions samples 10-21000Hz sampling rate = 44100
- the first vertical line represents a sinewave of 10 periods 11025Hz to determine where the logsweep signal starts exactly (because 10Hz is way too low for the speakers to reproduce anything)

image #3
- the response after convolving the measurement with an inverse logsweep

Measurement sequence
- the Parallella generates the logsweep signal and simultaneously outputs it to spdif and extracts the spdif measurement data from the microphone
- data is saved to SD then analyzed: determine the logsweep start from the sinewave header, do the convolution and save the impulse response to SD

Re: Audio playback

PostPosted: Sun Apr 26, 2015 9:28 am
by patc
didn't win but here's part of the project description submitted to a Xilinx contest (some references here and there taken from the net).

Re: Audio playback

PostPosted: Sun Apr 26, 2015 11:33 am
by patc
A word about NETMF
Originally the .NET MicroFramework is meant for resource-constrained devices. However the Parallella with its Zynq, 1GB DRAM,... is everything but resource-constrained and for someone going along the Microsoft path, Windows Embedded Compact (WEC) is probably the logical choice so far for this development board.

But:
- NETMF is free, WEC is not
- NETMF is open-source, WEC is not

With my Parallella board I got the ability to switch back and forth between C# / C / C++ / VHDL, whichever is best to address different parts of a design:

1- NETMF running managed code on one Cortex-A9 core for the C sharp part
=> nice and easy

2- FreeRTOS running native code on the other Cortex-A9 core for the C/C++ part
=> performances and connectivity determinism

3- FPGA programmable logic for the VHDL/Verilog part
=> flexibility + very high performances of hardware programming
=> lower overall cost of the system at the end

Re: Audio playback

PostPosted: Sun Apr 26, 2015 4:47 pm
by cmcconnell
Would Linux with Mono also have been a viable option for the C# part? (http://www.mono-project.com/)

Re: Audio playback

PostPosted: Mon Apr 27, 2015 8:11 am
by patc

Re: Audio playback

PostPosted: Sun May 03, 2015 10:46 am
by patc
the room measurement part:

Re: Audio playback

PostPosted: Sun May 17, 2015 12:19 pm
by patc
headless version
A CD player SPDIF output is connected to the SPDIF input of the Parallella instead of getting audio data from the SD card. Then the workflow is the same: digital room correction convolution –> digital crossovers –> SPDIF output

I’m using Mike Field’s design for SPDIF Input:


I’m not using a PLL to synchronize the Parallella SPDIF output clock to the CD player clock. Since the convolver works on 64K chunks of audio data, I buffer ahead 64K (=~ 1.5s latency @44100 sampling rate) from the CD player before starting the playback sequence. In that way whether a clock is faster or slower than the other one doesn’t really matter because 64K samples is plenty of room for clock drifting (as a matter of fact during a quick test I found about 1 sample drift per second between the 2 clocks). And anyway, if push comes to shove, I can always use the blanks between 2 songs on a CD to re-align the 2 clocks together....

Re: Audio playback

PostPosted: Mon Jun 08, 2015 7:54 am
by patc
project basically done, here's the complete PS+PL source code for headless version (the headless version is an order of magnitude simpler: only one Cortex core running, no LCD, no GUI, no NETMF, ...).

See "high-end audio playback.pdf" for instructions on how to build & operate

"DRCGuidev1.0.pdf" is a guide written by Jones Rush that describes the DRC setup when using a PC-based audio playback device instead of the Parallella one

- USE AT YOUR OWN RISKS -

Re: Audio playback

PostPosted: Mon Jun 08, 2015 8:55 am
by 9600
Many thanks for sharing these, Pat!

I wondered if perhaps you might be able to upload the materials to GitHub or similar, as this would make them a bit easier to find, and also to examine the source code without having to download and unpack ZIP archives.

Cheers,

Andrew