Software SOX: Question about

Discussion in 'Support Area' started by FBnil, Jan 27, 2019.

  1. FBnil

    FBnil Ready to Champion the Pyra to the World...

    Joined:
    Dec 14, 2012
    Messages:
    2,728
    Location:
    Yurp
    SoX (Sound eXchange; it's in the Pandora Repo) can do a lot of things, for example:

    When you run it it drops you in a shell, from there, you must first export some environment variables:

    Code:
    export LD_LIBRARY_PATH=`pwd`/lib
    export PATH=$PATH:`pwd`/bin
    export SOX_OPTS="--buffer 4096 -q"
    Now try to pluck a sound:
    Code:
    bin/play -n synth 4 pluck E2
    From there, you can make the Pandora help finetune your guitar:

    Code:
     for n in E2 A2 D3 G3 B3 E4; do
         play -n synth 4 pluck $n repeat 2; done
    Or create telephone sounds:
    Code:
    alias pause='play -n trim 0.0 0.1 remix - ' # North American Off Hook Signal Gap
    pause # I need this because the pandora is silent on the first command!
    play -n synth 0.1 sin 697 sin 1209 remix -  # Keypad 1 Signal
    play -n synth 0.1 sin 697 sin 1336 remix -  # Keypad 2 Signal
    
    play -n synth 0.1 sin 697 sin 1477 remix -  # Keypad 3 Signal
    play -n synth 0.1 sin 697 sin 1633 remix -  # Keypad A Signal
    play -n synth 0.1 sin 770 sin 1209 remix -  # Keypad 4 Signal
    play -n synth 0.1 sin 770 sin 1336 remix -  # Keypad 5 Signal
    play -n synth 0.1 sin 770 sin 1477 remix -  # Keypad 6 Signal
    play -n synth 0.1 sin 770 sin 1633 remix -  # Keypad B Signal
    play -n synth 0.1 sin 852 sin 1209 remix -  # Keypad 7 Signal
    play -n synth 0.1 sin 852 sin 1336 remix -  # Keypad 8 Signal
    play -n synth 0.1 sin 852 sin 1477 remix -  # Keypad 9 Signal
    play -n synth 0.1 sin 852 sin 1633 remix -  # Keypad C Signal
    play -n synth 0.1 sin 941 sin 1209 remix -  # Keypad * Signal
    play -n synth 0.1 sin 941 sin 1336 remix -  # Keypad 0 Signal
    play -n synth 0.1 sin 941 sin 1477 remix -  # Keypad # Signal
    play -n synth 0.1 sin 941 sin 1633 remix -  # Keypad D Signal
    possibly appending a sequence into a wav, then play the wav.


    However, I'm trying to reverse it: I get a sound in the microphone, and I want the corresponding letter. In a way, I need some information about how Commodore and spectrum transformed a tape audio into bytes.

    So far, I learned that the Goertzel_algorithm is faster than FFT (Fast Fourier Transforms) and there seems to be code available but nothing I can work with at the moment . Does anybody have a shortcut into that? Can SoX do it with FIR or Hilbert commands?
     
    Linux-SWAT likes this.
  2. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    11,100
    Location:
    Somewhere off the coast of the EU
    I think there was a computerphile about how the C64 encodes and decodes audio. It's two tones, one for 0 bit, the other for the 1 bit. I'm not sure how it measures it, but I guess it's based on rising edges (it's all square wave, at least at origin). You wouldn't be doing anything as complicated as FFTs in those days and ages. Even using a PLL or something and checking the two frequencies is likely to take longer to sync than just measuring rising edge timing; you probably need only two or three cycles to do that.

    Here it is:
     
    FBnil likes this.

Share This Page

Loading...