Resource icon

ulc-codec Demonstration 20210821

Hey everyone.

I've been developing an ultra-low-complexity MDCT-based audio codec (ulc-codec), and managed to get it running on the GBA to prove the extremely low decoding complexity (verified working on real hardware).

This is mostly a proof-of-concept, as decoding 32.768kHz M/S stereo audio takes 65-70% CPU (depending on the decoding quality mode, track complexity, etc.) spread out over 2-3 frames. That said, I still thought it was pretty neat as a tech demo.

More details are available on the GitHub page, but the basics for the codec itself are:
  • Target bitrate: 32..256kbps+ (no hard limits on playback or coding rates)
  • MDCT-based coding using sine window (window switching plus overlap switching to minimize decimation)
  • Noise-fill (similar to PNS)
  • Nybble-based syntax (no entropy-code lookups)
The GitHub page contains the source code to the player as well as the tools necessary to convert your own files. Unfortunately, 32.768kHz is about the limit for stereo audio with this demo, as the visuals take around 15% CPU; if 44.1kHz was to be used for example, CPU usage would be over 100%, resulting in dropouts.

As an experiment, a flimsy (but fun-to-use) pitch shifter has been included as of the 20201024 version. Lower frequencies tend to distort pretty badly (making it useless for serious applications), but it's kinda fun to mess around with.
NOTE: As of the 20210821 version, pitch shifting tends to overload the CPU (default ROM waitstates are pretty terrible).

The track used in this demo is a slightly EQ'd version of Re-Style & Runeforce - A New Dawn (32kbps VBR @ 32.768kHz). All credit goes to them, and I am making no money off this project; this is entirely for fun and learning.

Please use hardware to judge the quality; on some environments, high frequency detail is lost during resampling from 32768Hz, resulting in excessive muffling.

The codec itself is free open-source software, under the GPLv3 license.
  • ULC Player GBA - Re-Style & Runeforce - A New Dawn.gif
    ULC Player GBA - Re-Style & Runeforce - A New Dawn.gif
    570.3 KB · Views: 152
Author
Aikku
Downloads
2,021
Views
2,021
First release
Last update
Rating
5.00 star(s) 1 ratings

More resources from Aikku

Latest updates

  1. Improved transients (ie. thicc toks), more consistent visuals

    Did some hard thinking on the window-switching logic and managed to improve transients. For the...
  2. New track, greatly improved quality, improved visualizer

    This track is encoded at 32kbps VBR, which is extremely impressive for this style of music.
  3. Improved tools and codec syntax

    ULC now supports noise-fill. Transient detection has been improved, and noise-fill allows...
General chit-chat
Help Users
  • No one is chatting at the moment.
  • K3Nv2 @ K3Nv2:
    why
  • Xdqwerty @ Xdqwerty:
    @K3Nv2, it's not funny
  • K3Nv2 @ K3Nv2:
    ok
  • BigOnYa @ BigOnYa:
    Wut?
  • K3Nv2 @ K3Nv2:
    That's not funny
    +2
  • Psionic Roshambo @ Psionic Roshambo:
    So two cannibals where eating a clown and one says to the other. Hey does this taste funny to you?
    +2
  • K3Nv2 @ K3Nv2:
    What do you call a slow car? Retired
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Did you hear about the police car that someone stole the wheels off of? The police are working tirelessly to find the thieves.
    +2
  • K3Nv2 @ K3Nv2:
    A firefighter got arrested for assault his main claim was what I was told he was on fire
    +2
  • BigOnYa @ BigOnYa:
    What do you call a hooker with a runny nose? Full
    +2
  • Psionic Roshambo @ Psionic Roshambo:
    What do you tell a woman with two black eyes? Nothing you already told her twice!
  • K3Nv2 @ K3Nv2:
    Diddy also works
  • K3Nv2 @ K3Nv2:
    A scientist heard the word batman so he put a naked lady in a cage with a bat
  • Psionic Roshambo @ Psionic Roshambo:
    Chuck Norris won a staring contest, with the sun.
  • K3Nv2 @ K3Nv2:
    A vampires favorite thing to do is moon you
  • BigOnYa @ BigOnYa:
    What's the difference between an airplane, and Ken's mom? Not everyone has been in an airplane.
  • K3Nv2 @ K3Nv2:
    What's the difference between @BigOnYa and his wife? Nothing both want to bone me
    +3
  • RedColoredStars @ RedColoredStars:
    How much wood could a wood chuck chuck if a wood chuck could chuck norris
    +1
  • BakerMan @ BakerMan:
    how do i know? you're a guy, and he wants to bone every guy on this site (maybe, idk)
    +1
  • K3Nv2 @ K3Nv2:
    He wants to bone anything with a dick
    +1
  • Xdqwerty @ Xdqwerty:
    Good night
    +1
  • BigOnYa @ BigOnYa:
    Nighty night, big day tomorrow. Congrats.
    K3Nv2 @ K3Nv2: https://www.instagram.com/reel/C7iLZ35NrQt/?igsh=MWd2Z3U0dmNlMmNxcw==