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
Sparse Beta-Divergence Tensor Factorization Library

NTFLib Sparse Beta-Divergence Tensor Factorization Library Based off of this beta-NTF project this library is specially-built to handle tensors where

Stitch Fix Technology 46 Jan 08, 2022
controls volume using hand gestures

controls volume using hand gestures

1 Oct 11, 2021
Audio fingerprinting and recognition in Python

dejavu Audio fingerprinting and recognition algorithm implemented in Python, see the explanation here: How it works Dejavu can memorize audio by liste

Will Drevo 6k Jan 06, 2023
Reading list for research topics in sound event detection

Sound event detection aims at processing the continuous acoustic signal and converting it into symbolic descriptions of the corresponding sound events present at the auditory scene.

Soham 64 Jan 05, 2023
Python game programming in Jupyter notebooks.

Jupylet Jupylet is a Python library for programming 2D and 3D games, graphics, music and sound synthesizers, interactively in a Jupyter notebook. It i

Nir Aides 178 Dec 09, 2022
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
Audio spatialization over WebRTC and JACK Audio Connection Kit

Audio spatialization over WebRTC Spatify provides a framework for building multichannel installations using WebRTC.

Bruno Gola 34 Jun 29, 2022
PianoPlayer - Automatic fingering generator for piano scores

PianoPlayer - Automatic fingering generator for piano scores

Marco Musy 571 Jan 02, 2023
Generating a structured library of .wav samples with Python.

sample-library Scripts for generating a structured sample library with Python Requires Docker about Samples are written to wave files in lib/. Differe

Ben Mangold 1 Nov 11, 2021
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

Matthieu Brucher 238 Oct 18, 2022
Full LAKH MIDI dataset converted to MuseNet MIDI output format (9 instruments + drums)

LAKH MuseNet MIDI Dataset Full LAKH MIDI dataset converted to MuseNet MIDI output format (9 instruments + drums) Bonus: Choir on Channel 10 Please CC

Alex 6 Nov 20, 2022
Okaeri-Music is a telegram music bot project, allow you to play music on voice chat group telegram.

Okaeri-Music is a telegram bot project that's allow you to play music on telegram voice chat group

Wahyusaputra 1 Dec 22, 2021
gentle forced aligner

Gentle Robust yet lenient forced-aligner built on Kaldi. A tool for aligning speech with text. Getting Started There are three ways to install Gentle.

1.2k Dec 30, 2022
Spotify Song Recommendation Program

Spotify-Song-Recommendation-Program Made by Esra Nur Özüm Written in Python The aim of this project was to build a recommendation system that recommen

esra nur özüm 1 Jun 30, 2022
A python wrapper for REAPER

pyreaper A python wrapper for REAPER (Robust Epoch And Pitch EstimatoR) Installation pip install pyreaper Demonstration notebnook http://nbviewer.jupy

Ryuichi Yamamoto 56 Dec 27, 2022
GiantMIDI-Piano is a classical piano MIDI dataset contains 10,854 MIDI files of 2,786 composers

GiantMIDI-Piano is a classical piano MIDI dataset contains 10,854 MIDI files of 2,786 composers

Bytedance Inc. 1.3k Jan 04, 2023
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

Theodoros Giannakopoulos 5.1k Jan 02, 2023
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
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
Code for csig audio deepfake detection

FMFCC Audio Deepfake Detection Solution This repo provides an solution for the 多媒体伪造取证大赛. Our solution achieve the 1st in the Audio Deepfake Detection

BokingChen 9 Jun 04, 2022