FPGA based USB 2.0 high speed audio interface featuring multiple optical ADAT inputs and outputs

Overview

ADAT USB Audio Interface

FPGA based USB 2.0 High Speed audio interface featuring multiple optical ADAT inputs and outputs

Status / current limitations

  • enumerates as class compliant audio device on Linux and Linux. 2 and 8 channel modes.
  • audio output works almost glitch free. Occasional underruns occur, but they are barely audible.
  • only 48kHz sample rate supported
  • audio input is still a dummy (internally generated signal)
  • integrated USB2 high speed logic analyzer works
Comments
  • Board exceeds JLCPCB capabilities

    Board exceeds JLCPCB capabilities

    Got this message from JLCPCB and they cancelled my order:

    "After marking the hole compensation of the original 0.4/0.6 mm, the minimum hole distance is only about 0.17 mm, and the minimum hole distance line is only about 0.08, which exceeds our capabilities. (the minimum hole distance of different networks must be greater than 0.33 mm , the hole distance line must be greater than 0.23 mm)"

    I did notice that the visa and tracks were awfully close to each other, but i figured you had submitted this to JLCPCB before so i didnโ€™t think it was an issue.

    Iโ€™d do this myself, but modifying this design to fix this issue messes with it far more than I am comfortable with.

    the full list of capabilities can be found here: https://jlcpcb.com/capabilities/Capabilities

    opened by nikitalita 32
  • Add a full-speed target

    Add a full-speed target

    Thanks for posting this repo! I had some success with it on the TinyFPGA-Bx using the DirectUSB resource.

    This target enumerates correctly and the dummy tone shows up on record (a tad off-key and with a few artefacts)

    opened by BrettRD 15
  • final fixes

    final fixes

    I added back the custom rules and changed them so that:

    1. the custom rules that duplicated global rules were commented out
    2. the minimum clearance rule for the inner layers has been changed so it doesn't apply to zones, so it won't have the same copper fill bug that it did before

    The custom rules catch stuff that the global rules don't, but fortunately, we didn't have anything to fix here.

    I also length matched the D- and D+ lines by making D- and D+ both use vias to cross each other; I also adjusted the spacking and width of the tracks of the main run based on this calculation from eeweb: image

    With this, I think we're finally finished with this revision ๐Ÿฅณ

    opened by nikitalita 11
  • USB interface

    USB interface

    Hello, I like this project and would like to reproduce it with qmtech spartan 6 board. Can I use USB3300 for USB interface or is there some special feature of 3320 being used?

    If so, don't you happen to have one extra unpopulated PCB to sell?

    Thank you.

    opened by danielkucera 10
  • Fix PCB issues

    Fix PCB issues

    I ran into some issues when ordering the PCB from JLCPCB, so I had to make some minor adjustments:

    1. Changed the footprint for the toslink ports to the T8 variation vs. the T10. I can't find the PLR135/T10 part anywhere, and JLCPCB only had the T8. The only difference is the addition of two NPTH for the plastic mounting feet, so either the T10 or T8 variations can be used.

    2. Fix the USB-C port rotation for the POS file; it is flipped 180 degrees in the JLCPCB render

    3. Move power traces away from board edge The JLCPCB capabilities section says that traces must be >=.2mm from the edge: image

    So I just moved the power traces about .1mm; the only thing that it might cause issue with is that they're closer to the shield PTHs, but they still have about .4mm clearance to copper.

    1. Adjusted the board width for TOSLINK port clearance so that it can be flush with the case.

    BTW, you may want to update your JLCPCB plugin, I note that the part assignments file was in a different format.

    opened by nikitalita 9
  • S/PDIF support?

    S/PDIF support?

    I realize that S/PDIF is a different protocol and may take some effort to work because of variable clock speeds, but is this something that you are thinking about implementing in the future?

    opened by nikitalita 7
  • Port to LUNA board

    Port to LUNA board

    Would it be possible to port this to the LUNA board?

    The 8 in and out optical ports should fit comfortably on one of the two available PMOD connectors (though power draw may become an issue), and the two DACs on the other.

    question 
    opened by icb- 2
  • fix diff pair run on both top and bottom USB interfaces

    fix diff pair run on both top and bottom USB interfaces

    Applied the length matching to both the top AND bottom interfaces, fixed the main run according to these impedence calculations (because .09mm spacing was a bit too tight for comfort): image

    opened by nikitalita 2
  • Add JLCPCB custom rules

    Add JLCPCB custom rules

    I finally found a custom ruleset that has the JLCPCB rules here: https://gist.github.com/denniskupec/e163d13b0a64c2044bd259f64659485e

    I added that to the custom rules on the project and I adjusted the values to match. This should be all of their minimums. I also removed some bogus rules (like trace to vcut, since we aren't panelizing this, and maximum PTH size, which produced incorrect results).

    There are about 149 errors left now, but about 1/4 of them are just some ground vias having too small an annular ring (0.1250 vs. 0.13), and a good chunk of them are just here: image

    opened by nikitalita 2
  • Added an optional convolver as dsp for the dac1 output.

    Added an optional convolver as dsp for the dac1 output.

    The convolver can be enabled with the USE_CONVOLUTION flag. Once the design has been synthesized with USE_CONVOLUTION enabled you can enable the convolver by either pressing the first platform button or via the TOGGLE_CONVOLUTION (1) vendor usb control request.

    The concolver uses the amlib.dsp.convolution.mac convolver for now. In the future an option to use FFT convolution may be added.

    opened by fritzbauer 1
Releases(v0.0.8)
Owner
Hans Baier
Hans Baier
Bot duniya Music Player

Bot duniya Music Player Requirements ๐Ÿ“ FFmpeg (Latest) NodeJS nodesource.com (NodeJS 17+) Python (3.10+) PyTgCalls (Lastest) 2nd Telegram Account (ne

Aman Vishwakarma 16 Oct 21, 2022
Gateware for the Terasic/Arrow DECA board, to become a USB2 high speed audio interface

DECA USB Audio Interface DECA based USB 2.0 High Speed audio interface Status / current limitations enumerates as class compliant audio device on Linu

Hans Baier 16 Mar 21, 2022
๐™ฐ ๐™ผ๐šž๐šœ๐š’๐šŒ ๐™ฑ๐š˜๐š ๐™ฒ๐š›๐šŽ๐šŠ๐š๐šŽ๐š ๐™ฑ๐šข ๐šƒ๐šŽ๐šŠ๐š–๐™ณ๐š•๐š ๐Ÿ’–

TeamDltmusic ๐™ฐ ๐™ผ๐šž๐šœ๐š’๐šŒ ๐™ฑ๐š˜๐š ๐™ฒ๐š›๐šŽ๐šŠ๐š๐šŽ๐š ๐™ฑ๐šข ๐šƒ๐šŽ๐šŠ๐š–๐™ณ๐š•๐š ๐Ÿ’– Deploy String Session String Click hear you can find string session OR join He

TeamDlt 5 Jan 18, 2022
A useful tool to generate chord progressions according to melody MIDIs

Auto chord generator, pure python package that generate chord progressions according to given melodies

Billy Yi 53 Dec 30, 2022
Python tools for the corpus analysis of popular music.

CATCHY Corpus Analysis Tools for Computational Hook discovery Python tools for the corpus analysis of popular music recordings. The tools can be used

Jan VB 20 Aug 20, 2022
A GUI-based audio player with support for a large variety of formats

Miza-Player A GUI-based audio player with support for a large variety of formats, able to play from web-hosted media platforms such as YouTube, includ

Thomas Xin 3 Dec 14, 2022
cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python

audioread Decode audio files using whichever backend is available. The library currently supports: Gstreamer via PyGObject. Core Audio on Mac OS X via

beetbox 419 Dec 26, 2022
A Youtube audio player for your terminal

AudioLine A lightweight Youtube audio player for your terminal Explore the docs ยป View Demo ยท Report Bug ยท Request Feature ยท Send a Pull Request About

Haseeb Khalid 26 Jan 04, 2023
python wrapper for rubberband

pyrubberband A python wrapper for rubberband. For now, this just provides lightweight wrappers for pitch-shifting and time-stretching. All processing

Brian McFee 106 Nov 28, 2022
PyAbsorp is a python module that has the main focus to help estimate the Sound Absorption Coefficient.

This is a package developed to be use to find the Sound Absorption Coefficient through some implemented models, like Biot-Allard, Johnson-Champoux and

Michael Markus Ackermann 8 Oct 19, 2022
A fast MDCT implementation using SciPy and FFTs

MDCT A fast MDCT implementation using SciPy and FFTs Installation As usual pip install mdct Dependencies NumPy SciPy STFT Usage import mdct spectrum

Nils Werner 43 Sep 02, 2022
This library provides common speech features for ASR including MFCCs and filterbank energies.

python_speech_features This library provides common speech features for ASR including MFCCs and filterbank energies. If you are not sure what MFCCs ar

James Lyons 2.2k Jan 04, 2023
Royal Music You can play music and video at a time in vc

Royals-Music Royal Music You can play music and video at a time in vc Commands SOON String STRING_SESSION Deployment ๐ŸŽ– Credits โ€ข ๐Ÿ‡ธแดแดสแด€โƒ๐Ÿ‡ฏแด‡แด‡แด› โ€ข ๐Ÿ‡ดา“า“ษช

2 Nov 23, 2021
An audio-solving python funcaptcha solving module

funcapsolver funcapsolver is a funcaptcha audio-solving module, which allows captchas to be interacted with and solved with the use of google's speech

Acier 8 Nov 21, 2022
โค๏ธ This Is The EzilaXMusicPlayer Advaced Repo ๐ŸŽต

Telegram EzilaXMusicPlayer Bot ๐ŸŽต A bot that can play music on telegram group's voice Chat โค๏ธ Requirements ๐Ÿ“ FFmpeg NodeJS nodesource.com Python 3.7+

Sadew Jayasekara 11 Nov 12, 2022
Audio Retrieval with Natural Language Queries: A Benchmark Study

Audio Retrieval with Natural Language Queries: A Benchmark Study Paper | Project page | Text-to-audio search demo This repository is the implementatio

21 Oct 31, 2022
SU Music Player โ€” The first open-source PyTgCalls based Pyrogram bot to play music in voice chats

SU Music Player โ€” The first open-source PyTgCalls based Pyrogram bot to play music in voice chats Note Neither this, or PyTgCalls are fully

SU Projects 58 Jan 02, 2023
Music player - endlessly plays your music

Music player First, if you wonder about what is supposed to be a music player or what makes a music player different from a simple media player, read

Albert Zeyer 482 Dec 19, 2022
Terminal-based audio-to-text converter

att Terminal-based audio-to-text converter Project description A terminal-based audio-to-text converter written in python, enabling you to convert .wa

Sven Eschlbeck 4 Dec 15, 2022
Python module for handling audio metadata

Mutagen is a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg The

Quod Libet 1.1k Dec 31, 2022