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
Sequencer: Deep LSTM for Image Classification

Sequencer: Deep LSTM for Image Classification Created by Yuki Tatsunami Masato Taki This repository contains implementation for Sequencer. Abstract In

Yuki Tatsunami 111 Dec 16, 2022
Gradient - A Python program designed to create a reactive and ambient music listening experience

Gradient is a Python program designed to create a reactive and ambient music listening experience.

Alexander Vega 2 Jan 24, 2022
MusicBrainz Picard

MusicBrainz Picard MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagge

MetaBrainz Foundation 3k Dec 31, 2022
Spotipy - Player de música simples em Python

Spotipy Player de música simples em Python, utilizando a biblioteca Pysimplegui para a interface gráfica. Este tocador é bastante simples em si, mas p

Adelino Almeida 4 Feb 28, 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
NovaMusic is a music sharing robot. Users can get music and music lyrics using inline queries.

A music sharing telegram robot using Redis database and Telebot python library using Redis database.

Hesam Norin 7 Oct 21, 2022
This is an OverPowered Vc Music Player! Will work for you and play music in Voice Chatz

VcPlayer This is an OverPowered Vc Music Player! Will work for you and play music in Voice Chatz Telegram Voice-Chat Bot [PyTGCalls] ⇝ Requirements ⇜

1 Dec 20, 2021
A Music Player Bot for Discord Servers

A Music Player Bot for Discord Servers

Halil Acar 2 Oct 25, 2021
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

librosa 5.6k Jan 06, 2023
🎵 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
Simple, hackable offline speech to text - using the VOSK-API.

Nerd Dictation Offline Speech to Text for Desktop Linux. This is a utility that provides simple access speech to text for using in Linux without being

Campbell Barton 844 Jan 07, 2023
𝙰 𝙼𝚞𝚜𝚒𝚌 𝙱𝚘𝚝 𝙲𝚛𝚎𝚊𝚝𝚎𝚍 𝙱𝚢 𝚃𝚎𝚊𝚖𝙳𝚕𝚝 💖

TeamDltmusic 𝙰 𝙼𝚞𝚜𝚒𝚌 𝙱𝚘𝚝 𝙲𝚛𝚎𝚊𝚝𝚎𝚍 𝙱𝚢 𝚃𝚎𝚊𝚖𝙳𝚕𝚝 💖 Deploy String Session String Click hear you can find string session OR join He

TeamDlt 5 Jan 18, 2022
A small project where I identify notes and key harmonies in a piece of music and use them further to recreate and generate the same piece of music through Python

A small project where I identify notes and key harmonies in a piece of music and use them further to recreate and generate the same piece of music through Python

5 Oct 07, 2022
controls volume using hand gestures

controls volume using hand gestures

1 Oct 11, 2021
Conferencing Speech Challenge

ConferencingSpeech 2021 challenge This repository contains the datasets list and scripts required for the ConferencingSpeech challenge. For more detai

73 Nov 29, 2022
Convert complex chord names to midi notes

ezchord Simple python script that can convert complex chord names to midi notes Prerequisites pip install midiutil Usage ./ezchord.py Dmin7 G7 C timi

Alex Zhang 2 Dec 20, 2022
a library for audio and music analysis

aubio aubio is a library to label music and sounds. It listens to audio signals and attempts to detect events. For instance, when a drum is hit, at wh

aubio 2.9k Dec 30, 2022
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
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
Code for paper 'Audio-Driven Emotional Video Portraits'.

Audio-Driven Emotional Video Portraits [CVPR2021] Xinya Ji, Zhou Hang, Kaisiyuan Wang, Wayne Wu, Chen Change Loy, Xun Cao, Feng Xu [Project] [Paper] G

197 Dec 31, 2022