Gateware for the Terasic/Arrow DECA board, to become a USB2 high speed audio interface

Overview

DECA USB Audio Interface

DECA based USB 2.0 High Speed audio interface

Status / current limitations

  • enumerates as class compliant audio device on Linux and Windows.
  • Works on the FPGA
  • Playback works
  • Recording works
  • only 48kHz sample rate supported
  • integrated USB2 high speed logic analyzer works
You might also like...
Python library for audio and music analysis

librosa A python package for music and audio analysis. Documentation See https://librosa.org/doc/ for a complete reference manual and introductory tut

?️ Open Source Audio Matching and Mastering
?️ Open Source Audio Matching and Mastering

Matching + Mastering = ❤️ Matchering 2.0 is a novel Containerized Web Application and Python Library for audio matching and mastering. It follows a si

Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications
Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications

A Python library for audio feature extraction, classification, segmentation and applications This doc contains general info. Click here for the comple

Scalable audio processing framework written in Python with a RESTful API

TimeSide : scalable audio processing framework and server written in Python TimeSide is a python framework enabling low and high level audio analysis,

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

Python I/O for STEM audio files
Python I/O for STEM audio files

stempeg = stems + ffmpeg Python package to read and write STEM audio files. Technically, stems are audio containers that combine multiple audio stream

Python library for handling audio datasets.

AUDIOMATE Audiomate is a library for easy access to audio datasets. It provides the datastructures for accessing/loading different datasets in a gener

An audio digital processing toolbox based on a workflow/pipeline principle

AudioTK Audio ToolKit is a set of audio filters. It helps assembling workflows for specific audio processing workloads. The audio workflow is split in

Pyroomacoustics is a package for audio signal processing for indoor applications. It was developed as a fast prototyping platform for beamforming algorithms in indoor scenarios.
Pyroomacoustics is a package for audio signal processing for indoor applications. It was developed as a fast prototyping platform for beamforming algorithms in indoor scenarios.

Summary Pyroomacoustics is a software package aimed at the rapid development and testing of audio array processing algorithms. The content of the pack

Comments
  • initialize-python-environment.sh fails on usb2-highspeed-core.git

    initialize-python-environment.sh fails on usb2-highspeed-core.git

    [email protected]:~/programming/packages/deca-usb2-audio-interface/gateware$ ./initialize-python-environment.sh 
    Collecting git+https://github.com/amaranth-lang/amaranth.git (from -r requirements.txt (line 1))
      Cloning https://github.com/amaranth-lang/amaranth.git to /tmp/pip-hwd1ucqd-build
    Collecting git+https://github.com/amaranth-community-unofficial/amaranth-boards.git (from -r requirements.txt (line 2))
      Cloning https://github.com/amaranth-community-unofficial/amaranth-boards.git to /tmp/pip-van05hhq-build
    Collecting git+https://github.com/amaranth-community-unofficial/usb2-highspeed-core.git (from -r requirements.txt (line 3))
      Cloning https://github.com/amaranth-community-unofficial/usb2-highspeed-core.git to /tmp/pip-p43mpqtz-build
        Complete output from command python setup.py egg_info:
        running egg_info
        creating pip-egg-info/luna.egg-info
        writing pip-egg-info/luna.egg-info/PKG-INFO
        writing dependency_links to pip-egg-info/luna.egg-info/dependency_links.txt
        writing requirements to pip-egg-info/luna.egg-info/requires.txt
        writing top-level names to pip-egg-info/luna.egg-info/top_level.txt
        writing manifest file 'pip-egg-info/luna.egg-info/SOURCES.txt'
        error: package directory 'luna/gateware/debug' does not exist
        
        ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-p43mpqtz-build/
    
    [email protected]:~/programming/packages/deca-usb2-audio-interface/gateware$ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 18.04.6 LTS
    Release:	18.04
    Codename:	bionic
    
    [email protected]:~/programming/packages/deca-usb2-audio-interface/gateware$ python3 --version
    Python 3.6.9
    

    Maybe you can find solution faster than me, I think it is something with not existing luna/gateware/debug directory in usb2-highspeed-core but that's my guess.

    opened by stsrc 4
  • protocol error for descriptors longer than 128 bytes

    protocol error for descriptors longer than 128 bytes

    I've ported this to a ecp5 with a usb3300, I can get the board to enumerate, but only by cutting the descriptor back.

    If I comment out create_output_streaming_interface() and create_input_streaming_interface(), it enumerates fine with a URB length of 119 bytes.

    If I include a single AudioStreamingInterfaceDescriptorEmitter() under either the input or output descriptor it also enumerates fine, with a URB length of 128 bytes.

    If I include the AudioStreamingInterfaceDescriptorEmitter()s in both the input and output descriptors, I get a Protocol Error -71 at the GET DESCRIPTOR Response DEVICE stage, it doesn't get far enough to even report the length of the descriptor. in dmesg that's a device descriptor read/64, error -71

    This smells vaguely like https://github.com/greatscottgadgets/luna/issues/86, but I'm definitely running the fix from that. I'd report this under GSG Luna, but I'm not sure how much I'm leaning on upstream patches from https://github.com/amaranth-community-unofficial/usb2-highspeed-core

    opened by BrettRD 3
  • commit 2783e77f934e17a5dc8b15de83cded22a651a560 (fix off-by-one error in the feedback endpoint) causes overflow in ep1_out fifo

    commit 2783e77f934e17a5dc8b15de83cded22a651a560 (fix off-by-one error in the feedback endpoint) causes overflow in ep1_out fifo

    Hello,

    On Linux (Ubuntu 20.04.3 LTS) latest code (from branch 'main') does not work properly: after 2-3 minutes of normal playback there is loud noise (something like white noise). It is caused by overflow in ep1_out fifo, what leads to malformed state of USBStreamToChannels.

    By comparing latest code with version 0.2.0 (on which everything works correctly) I found that commit 2783e77f934e17a5dc8b15de83cded22a651a560 causes such behavior. After revert everything works properly.

    I was trying to fix it by my own, but I don't know that much about USB, so I am living this issue to you.

    opened by stsrc 1
  • new pip resolver, requirements.txt woes

    new pip resolver, requirements.txt woes

    I had this codebase building last year, but pip is giving me some sass this time around Apparently the new pip version resolver gets angry about subtle URL string mismatches

    In this case, luna specifies a trailing @main in some git URLs (yes, really, that's enough to upset pip now)

    The conflict is caused by:
        The user requested amaranth 0.4.dev5+gc6dc08c (from git+https://github.com/amaranth-lang/amaranth.git)
        amaranth-boards 0.1.dev236+g809587c depends on amaranth<=4 and >=0.2
        luna 0.1.0.dev0 depends on amaranth 0.4.dev5+gc6dc08c (from git+https://github.com/amaranth-lang/[email protected])
    

    I consider this a bug in pip, the (temporary and extremely brittle) workaround is to tweak the requirements.txt to match precisely the URLs listed in luna

    The following completes pip resolution, but I had to point to the wrong amaranth-boards.git.

    -git+https://github.com/amaranth-lang/amaranth.git
    -git+https://github.com/amaranth-community-unofficial/amaranth-boards.git
    +git+https://github.com/amaranth-lang/[email protected]
    +git+https://github.com/amaranth-lang/[email protected]
     git+https://github.com/amaranth-community-unofficial/usb2-highspeed-core.git
    -git+https://github.com/amaranth-community-unofficial/amlib.git
    +git+https://github.com/amaranth-community-unofficial/[email protected]
    

    Thanks for the link to retroramblings, that article was useful. I'll follow this up with a resolution next week when I bully pip into giving me the repos I need.

    opened by BrettRD 1
Releases(0.2.0)
Owner
Hans Baier
Hans Baier
voice assistant made with python that search for covid19 data(like total cases, deaths and etc) in a specific country

covid19-voice-assistant voice assistant made with python that search for covid19 data(like total cases, deaths and etc) in a specific country installi

Miguel 2 Dec 05, 2021
Small Python application that links a Digico console and Reaper, handling automatic marker insertion and tracking.

Digico-Reaper-Link This is a small GUI based helper application designed to help with using Digico's Copy Audio function with a Reaper DAW used for re

Justin Stasiw 10 Oct 24, 2022
Improved Python UI to convert Youtube URL to .mp3 file.

YT-MP3 Improved Python UI to convert Youtube URL to .mp3 file. How to use? Just run python3 main.py Enter the URL of the video Enter the PATH of where

8 Jun 19, 2022
Cobra is a highly-accurate and lightweight voice activity detection (VAD) engine.

On-device voice activity detection (VAD) powered by deep learning.

Picovoice 88 Dec 16, 2022
Mina - A Telegram Music Bot 5 mandatory Assistant written in Python using Pyrogram and Py-Tgcalls

Mina - A Telegram Music Bot 5 mandatory Assistant written in Python using Pyrogram and Py-Tgcalls

3 Feb 07, 2022
A telegram bot for which is help to play songs in vc 🥰 give 🌟 and fork this repo before use 😏

TamilVcMusic 🌟 TamilVCMusicBot 🌟 Give your 💙 Before clicking on deploy to heroku just click on fork and star just below How to deploy Click the bel

TamilBots 150 Dec 13, 2022
An 8D music player made to enjoy Halloween this year!🤘

HAPPY HALLOWEEN buddy! Split Player Hello There! Welcome to SplitPlayer... Supposed To Be A 8DPlayer.... You Decide.... It can play the ordinary audio

Akshat Kumar Singh 1 Nov 04, 2021
📺Headless全自动B站直播录播、切片、上传一体工具

DDRecorder Headless全自动B站直播录播、切片、上传一体工具 感谢 FortuneDayssss/BilibiliUploader 安装指南(Windows) 在Release下载zip包解压。 修改配置文件config.json 双击运行DDRecorder.exe (这将使用co

322 Dec 27, 2022
An Amazon Music client for Linux (unpretentious)

Amusiz An Amazon Music client for Linux (unpretentious) ↗️ Install You can install Amusiz in multiple ways, choose your favorite. 🚀 AppImage Here you

Mirko Brombin 25 Nov 08, 2022
Algorithmic Multi-Instrumental MIDI Continuation Implementation

Matchmaker Algorithmic Multi-Instrumental MIDI Continuation Implementation Taming large-scale MIDI datasets with algorithms This is a WIP so please ch

Alex 2 Mar 11, 2022
Extract the songs from your osu! libary into proper mp3 form, complete with metadata and album art!

osu-Extract Extract the songs from your osu! libary into proper mp3 form, complete with metadata and album art! Requirements python3 mutagen pillow Us

William Carter 2 Mar 09, 2022
DeepMusic is an easy to use Spotify like app to manage and listen to your favorites musics.

DeepMusic is an easy to use Spotify like app to manage and listen to your favorites musics. Technically, this project is an Android Client and its ent

Labrak Yanis 1 Jul 12, 2021
A tool for retrieving audio in the past

Rewinder A tool for retrieving audio in the past. Ever felt like, I need to remember that discussion which happened 10 min back. Now you can! Rewind a

Bharat 1 Jan 24, 2022
Some utils for auto speech recognition

About Some utils for auto speech recognition. Utils Util Description Script Reset audio Reset sample rate, sample width, etc of audios.

1 Jan 24, 2022
Terminal-based music player written in Python for the best music in the world 🎵 🎧 💻

audius-terminal-player Terminal-based music player written in Python for the best music in the world 🎵 🎧 💻 Browse and listen to Audius from the com

Audius 21 Jul 23, 2022
digital audio workstation, instrument and effect plugins, wave editor

digital audio workstation, instrument and effect plugins, wave editor

306 Jan 05, 2023
A voice assistant which can handle your everyday task and allows you to book items from your favourite store!

Voicely Table of Contents About The Project Built With Getting Started Prerequisites Installation Usage Roadmap Contributing License Contact Acknowled

Awantika Nigam 2 Nov 17, 2021
Marsyas - Music Analysis, Retrieval and Synthesis for Audio Signals

Welcome to MARSYAS. MARSYAS is a software framework for rapid prototyping of audio applications, with flexibility and extensibility as primary concer

Marsyas Developers Group 364 Oct 31, 2022
Vixtify - Python Controlled Music Player

Strumm Sound Playlist : Click me to listen Welcome to GitHub Pages You can use the editor on GitHub to maintain and preview the content for your websi

Vicky Kumar 2 Feb 03, 2022
Speech Algorithms Collections

Speech Algorithms Collections

Ryuk 498 Jan 06, 2023