[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

Audio playback

Using Zynq Programmable Logic and Xilinx tools to create custom board configurations

Re: Audio playback

Postby patc » Sat Mar 14, 2015 8:54 am

patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby patc » Fri Apr 03, 2015 12:41 pm

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
Attachments
img1.jpg
img1.jpg (119.02 KiB) Viewed 32052 times
img2.jpg
img2.jpg (207.16 KiB) Viewed 32052 times
img3.jpg
img3.jpg (145.29 KiB) Viewed 32052 times
patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby patc » Sun Apr 26, 2015 9:28 am

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).
Attachments
Audio Playback.jpg
Audio Playback.jpg (382.67 KiB) Viewed 31979 times
patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby patc » Sun Apr 26, 2015 11:33 am

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
patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby cmcconnell » Sun Apr 26, 2015 4:47 pm

Would Linux with Mono also have been a viable option for the C# part? (http://www.mono-project.com/)
Colin.
cmcconnell
 
Posts: 99
Joined: Thu May 22, 2014 6:58 pm

Re: Audio playback

Postby patc » Mon Apr 27, 2015 8:11 am

patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby patc » Sun May 03, 2015 10:46 am

the room measurement part:
patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby patc » Sun May 17, 2015 12:19 pm

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....
Attachments
cdp.jpg
cdp.jpg (142.21 KiB) Viewed 31755 times
patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby patc » Mon Jun 08, 2015 7:54 am

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 -
Attachments
heap.zip
(857.93 KiB) Downloaded 1772 times
drc_guide.zip
(822.37 KiB) Downloaded 1763 times
patc
 
Posts: 83
Joined: Wed Aug 06, 2014 7:18 pm

Re: Audio playback

Postby 9600 » Mon Jun 08, 2015 8:55 am

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
Andrew Back
User avatar
9600
 
Posts: 997
Joined: Mon Dec 17, 2012 3:25 am

PreviousNext

Return to FPGA Design

Who is online

Users browsing this forum: No registered users and 7 guests

cron