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
A library for augmenting annotated audio data

muda A library for Musical Data Augmentation. muda package implements annotation-aware musical data augmentation, as described in the muda paper. The

Brian McFee 214 Nov 22, 2022
SomaFM Plugin for Kodi

SomaFM XBMC Plugin This description is a bit outdated. You can simply install this addon by browsing the official repositories from within Kodi. Insta

7 Jan 21, 2022
Basically Play Pauses the song when it is safe to do so. when you die in a round

Basically Play Pauses the song when it is safe to do so. when you die in a round

AG_1436 1 Feb 13, 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
Real-Time Spherical Microphone Renderer for binaural reproduction in Python

ReTiSAR Implementation of the Real-Time Spherical Microphone Renderer for binaural reproduction in Python [1][2]. Contents: | Requirements | Setup | Q

Division of Applied Acoustics at Chalmers University of Technology 51 Dec 17, 2022
🎵 A repository for manually annotating files to create labeled acoustic datasets for machine learning.

🎵 A repository for manually annotating files to create labeled acoustic datasets for machine learning.

Jim Schwoebel 28 Dec 22, 2022
Okaeri-Music is a telegram music bot project, allow you to play music on voice chat group telegram.

🗄️ PROJECT MUSIC,THIS IS MAINTAINED Okaeri-Music is a telegram bot project that's allow you to play music on telegram voice chat group Features 🔥 Th

Okaeri-Project 2 Dec 23, 2021
Supysonic is a Python implementation of the Subsonic server API.

Supysonic Supysonic is a Python implementation of the Subsonic server API. Current supported features are: browsing (by folders or tags) streaming of

Alban 228 Nov 19, 2022
Official implementation of A cappella: Audio-visual Singing VoiceSeparation, from BMVC21

Y-Net Official implementation of A cappella: Audio-visual Singing VoiceSeparation, British Machine Vision Conference 2021 Project page: ipcv.github.io

Juan F. Montesinos 12 Oct 22, 2022
Voicefixer aims at the restoration of human speech regardless how serious its degraded.

Voicefixer aims at the restoration of human speech regardless how serious its degraded.

Leo 324 Dec 26, 2022
A Python library for audio data augmentation. Inspired by albumentations. Useful for machine learning.

Audiomentations A Python library for audio data augmentation. Inspired by albumentations. Useful for deep learning. Runs on CPU. Supports mono audio a

Iver Jordal 1.2k Jan 07, 2023
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
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
nicfit 425 Jan 01, 2023
A python script that can play .mp3 URLs upon the ringing or motion detection of a Ring doorbell. The sound plays through Sonos speakers.

Ring x Sonos A python script that plays .mp3 files whenever a doorbell is rung or a doorbell detects motion. Features Music! Authors @braden Running T

braden 0 Nov 12, 2021
A Python wrapper around the Soundcloud API

soundcloud-python A friendly wrapper around the Soundcloud API. Installation To install soundcloud-python, simply: pip install soundcloud Or if you'r

SoundCloud 84 Dec 31, 2022
🎵 A music bot for discord servers!

music bot A music bot for Discord Servers Features Play songs in your discord server Get the lyrics without going on a web explorer Commands Command P

1 Jul 25, 2022
Library for Python 3 to communicate with the Google Chromecast.

pychromecast Library for Python 3.6+ to communicate with the Google Chromecast. It currently supports: Auto discovering connected Chromecasts on the n

Home Assistant Libraries 2.4k Jan 02, 2023
Algorithmic and AI MIDI Drums Generator Implementation

Algorithmic and AI MIDI Drums Generator Implementation

Tegridy Code 8 Dec 30, 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