Mic Visualizer

Lab 4: Microphone Visualizer


1. ΰΉ‚ΰΈ„ΰΈ£ΰΈ‡ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈ ΰΈ²ΰΈžΰΈ£ΰΈ§ΰΈ‘ΰΈ‚ΰΈ­ΰΈ‡ Lab

Why? - ΰΈ—ΰΈ³ΰΉ„ΰΈ‘ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΉ€ΰΈ£ΰΈ·ΰΉˆΰΈ­ΰΈ‡ΰΈ™ΰΈ΅ΰΉ‰

  • Real Audio Input: ΰΈ£ΰΈ±ΰΈšΰΉ€ΰΈͺΰΈ΅ΰΈ’ΰΈ‡ΰΈˆΰΈ²ΰΈ PDM Microphone

  • Level Metering: แΰΈͺΰΈ”ΰΈ‡ΰΈ£ΰΈ°ΰΈ”ΰΈ±ΰΈšΰΉ€ΰΈͺΰΈ΅ΰΈ’ΰΈ‡ (VU Meter)

  • Real-time Visualization: แΰΈͺΰΈ”ΰΈ‡ waveform แบบ live

What? - ΰΈˆΰΈ°ΰΉ„ΰΈ”ΰΉ‰ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΈ­ΰΈ°ΰΉ„ΰΈ£

  1. Mic API: aic_mic_init(), aic_mic_read()

  2. Level Calculation: Peak-to-Peak β†’ Level percentage

  3. VU Meter: Bar widget แΰΈͺΰΈ”ΰΈ‡ΰΈ£ΰΈ°ΰΈ”ΰΈ±ΰΈšΰΉ€ΰΈͺΰΈ΅ΰΈ’ΰΈ‡

  4. Fast Update: Timer 50ms ΰΈͺำหรับ smooth display

How? - ΰΈˆΰΈ°ΰΈ—ΰΈ³ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΉ„ΰΈ£

  1. Initialize PDM microphone

  2. ΰΈ­ΰΉˆΰΈ²ΰΈ™ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ΰΉ€ΰΈͺมฒงทุก 50ms

  3. แΰΈͺΰΈ”ΰΈ‡ waveform ΰΈšΰΈ™ Chart

  4. คำนวณแΰΈ₯ะแΰΈͺΰΈ”ΰΈ‡ level ΰΈšΰΈ™ Bar


2. ΰΈ«ΰΈ₯ักการทำงานแΰΈ₯ΰΈ° Flowchart

2.1 PDM Microphone

2.2 VU Meter Concept


3. ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ΰΈͺำคัญ

3.1 Microphone API

Function
Description

aic_mic_init(sample_rate)

Initialize PDM mic

aic_mic_read(buffer, count)

Read samples

aic_mic_stop()

Stop recording

3.2 Measurement

Function
Description

aic_scope_calc_peak_to_peak()

Calculate Vpp


4. Code Example

4.1 Timer Callback


5. ΰΈ­ΰΈ‡ΰΈ„ΰΉŒΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ£ΰΈΉΰΉ‰ΰΉΰΈ₯ΰΈ°ΰΉ€ΰΈ—ΰΈ„ΰΈ™ΰΈ΄ΰΈ„

5.1 Sample Rate for Mic

5.2 DC Offset Removal


6. ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”

Exercise 1: Color Level Bar

ΰΉ€ΰΈ›ΰΈ₯ΰΈ΅ΰΉˆΰΈ’ΰΈ™ΰΈͺΰΈ΅ Bar ΰΈ•ΰΈ²ΰΈ‘ΰΈ£ΰΈ°ΰΈ”ΰΈ±ΰΈš:

  • Green: 0-60%

  • Yellow: 61-80%

  • Red: 81-100%

Exercise 2: Peak Hold

แΰΈͺΰΈ”ΰΈ‡ peak level ΰΈ—ΰΈ΅ΰΉˆΰΈ„ΰΉ‰ΰΈ²ΰΈ‡ΰΈ­ΰΈ’ΰΈΉΰΉˆ 2 วินาทมแΰΈ₯ΰΉ‰ΰΈ§ΰΈ„ΰΉˆΰΈ­ΰΈ’ΰΈ₯ΰΈ”ΰΈ₯ΰΈ‡


7. References


Previous Lab: Lab 3: Audio Waveform Next Lab: Lab 5: Oscilloscope UI

Last updated

Was this helpful?