urock @ sitcon 2015

39
μRock

Upload: -

Post on 18-Jul-2015

142 views

Category:

Technology


0 download

TRANSCRIPT

µRock

⾃自我介紹•本名:楊宗凡 •綽號:浪打、sonicyang •來⾃自:成⼤大電機⼆二年級 •成⼤大C4Labs成員

• sonicyang.me • github.com/sonicyang

MicrocontrollerARM Cortex M4F

ARMv7 180 Mhz FPU SIMD

IEEE754

10100010101011010001010

1010001010101100101010101

101000101010110100010101100101

FirmwaresThe fundamental of Everything

ARM DSP Library

FatFs Library

STM32F429

CMSIS

STM32 Cube

FreeRTOS

DSP Library FATFS uGFX

f(x) d(x) g(x)X = ADCf(x) g(x)Analog Digital Converter

DAC F(x)g(x)Digital Analog Converter

Let’s say it’s 3 bits

Data Pipe

ADC

DAC

Buffer (12bits unsigned)

Q12.20 (Fix-Point Signed)

Effect 1 (Configurable)

Effect 2 (Configurable)

Effect 3 (Configurable)

Effect 4 (Configurable)

Wave Audio (SD Card)

Q12.20 (Fix-Point Signed)

Buffer (12bits unsigned)

Q NumbersIEEE 754

加法

6.253.125+———————9.375

0110.0100011.001+————————1001.011

乘法

6.253.125✕—————————————————

19.53125

00110.01000011.001✕

————————————————————————————

10011.100010

同理⼀一共6位⼤大家都知道是五位⼩小數

010

過多的要捨去 保留MSB

SIMD

BA

✕ ✕HIGH LOW-

Result

BranchesFunctions

The Aid of Python•內建⼤大數 •無浮點誤差 • Matplotlib

Distortion & Overdrive• Distortion是⽤用 If 或是飽和來 Clip

• Overdrive是再把結果 乘上Sine函數來圓滑

Saturation Arithmetic

• Distortion除了⽤用判斷的Clip還可以⽤用飽和運算達成 •⼀一般 Signed 16bits 運算

• 16384 * 2 > 32767 所以會是 - 32768 •飽和 Signed 16bits 運算

• 16384 * 2 > 32767 會鎖在 32767

Compressor

Input

Out

put

Level Relationship

Time

Leve

l

聽不到

Audio Signal

聽的到惹!

Compressor

• 使⽤用Envolope來偵測聲⾳音⼤大⼩小,也就是計算RMS

• 超過額定⼤大⼩小就壓縮⼀一定⽐比例

• 漸進壓縮

Delay & Reverb

• 500 ms進⼊入實⽤用範圍

• 由於內部的記憶體不夠⼤大,所以使⽤用外部的記憶體

• 外部 I/O 成為速度瓶頸

Data (t) In Data (t) Out+

Data (t - 1) Data (t - 2) Data (t - 3)

EQ

• IIR 濾波器

• MATLAB設計、DSP Library實作

Data (t) In Data (t) Out

High

Mid

Low

Gain

Gain

Gain

IIR濾波器

•離散系統下⾯面, 等校於類⽐比濾波器設計 •將不同Delay後的資料,

衰減後疊加達到濾波的效果

IN OUT+

Delay

Delay

Wave 錄⾳音、回放、伴奏功能

uGfx based UI

Live Demo

Further InformationGithub : github.com/sonicyang/urock

Hackpad : uRock.hackpad.com

Thank You for Listening任何問題歡迎提出