Forum: Mikrocontroller und Digitale Elektronik Audiowiedergabe Multichannel


von Nokka236 (Gast)


Lesenswert?

Hallo,

ich möchte mit dem Tiny1614 und einem SPI-Flash mir einen Soundmodul 
bauen für die Modellbahn. Ich habe einige technische Fragen dazu:

1. Lautstärkeregelung, wie mache ich das in Software live?
2. Multichannelwiedergabe, wie mache ich das?

@1. Ich gebe über ein Poti einen Wert zwischen 0-255 vor, die Daten 
(PCM) vom Flash die ich abspiele, rechne ich die dann einfach Value * 
Poti / 0xFF? Reduziere ich so die Lautstärke?

@2. Multichannel, also mehrere Sounds gleichzeitig wiedergeben, rechne 
ich dort (Sound1Wert + Sound2Wert) / 2?

von minifloat (Gast)


Lesenswert?

Nokka236 schrieb:
> Poti einen Wert zwischen 0-255

Ginge für Gesamtlautstärke im Analogpfad einfacher.

Nokka236 schrieb:
> Value * Poti / 0xFF

Statt durch 255 zu teilen, täte es auch durch 256 zu teilen. Also um 8 
nach rechts schieben, oder bei einem int16_t das Highbyte nehmen.

Nokka236 schrieb:
> @2. Multichannel

Die Highbytes der int16_t aus (1.) in einem int16_t aufsummieren und 
auch hier kannst du um 1 nach rechts schieben, wenn es zwei 
Ausgangssignale werden sollen.

von Nokka236 (Gast)


Lesenswert?

minifloat schrieb:
> Nokka236 schrieb:
>> Poti einen Wert zwischen 0-255
>
> Ginge für Gesamtlautstärke im Analogpfad einfacher.
>
> Nokka236 schrieb:
>> Value * Poti / 0xFF
>
> Statt durch 255 zu teilen, täte es auch durch 256 zu teilen. Also um 8
> nach rechts schieben, oder bei einem int16_t das Highbyte nehmen.
>
> Nokka236 schrieb:
>> @2. Multichannel
>
> Die Highbytes der int16_t aus (1.) in einem int16_t aufsummieren und
> auch hier kannst du um 1 nach rechts schieben, wenn es zwei
> Ausgangssignale werden sollen.

Okay, also meine Theorie stimmt also schon, richtig?
Ist 8 Bit Audio. Also nehme ich die 2 8 Bit daten, addiere und teile 
dann durch 2. Dann habe ich 2 Kanäle.

von minifloat (Gast)


Lesenswert?

Nokka236 schrieb:
> Also nehme ich die 2 8 Bit daten, addiere und teile dann durch 2. Dann
> habe ich

...unter Umständen einen Ganzzahlüberlauf.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.