[Sigma Studio] Lautsprecher-Beamforming und I²C-Daten

+A -A
Autor
Beitrag
MK_Sounds
Stammgast
#1 erstellt: 01. Sep 2017, 13:50
Hallo zusammen,

in einem aktuellen Projekt glaube ich an die (natürlich) begrenzten Möglichkeiten von Sigma Studio gestoßen zu sein.
Es geht um ein lineares 8-fach-Lautsprecher-Line-Array, vorerst zu Demonstrationszwecken, später wird in Richtung akustische Verortung/Feedback von Eingaben auf größeren Touchscreens optimiert.

Hierzu wird auf einem PC eine Benutzeroberfläche laufen. Auf der Bedienoberfläche soll zunächst nur ein Slider implementiert werden, um die Richtung des Beams zu steuern.
Das Interface zum PC bildet ein Atmel SAM D21. Der USB-Audio-Treiber (vorerst Class 1) ist im Grunde fertig, der USB HID-Treiber in der Mache. Die Audio-Ausgabe vom SAM erfolgt dann mittels TDM/I²S. Durch den HID-Treiber wird die Möglichkeit bestehen vom SAM über I²C (Richtungs-)Daten zu schicken.

Nun wollte ich einen ADAU1701 hinter den SAM hängen, primär um einfach von TDM/I²S auf 4x I²S umzusetzen zu können, da die Endstufen (2-Kanal) nur I²S am Eingang können. Zudem sollen dort die Frequenzgänge der Einzellautsprecher korrigiert bzw. zueinander kalibriert werden.

Wenn möglich würde ich natürlich gerne die Berechnungen des Beams (Amplitude und Delay) auch auf dem ADAU durchführen. Dafür bräuchte ich allerdings 2 Sachen:
1. Schreiben eines Wertes via I²C in ein Register des ADAU (zur Not könnte hier auch ein ungebrauchtes Register zweckentfremdet werden) oder einen externen RAM. Dann in Sigma Studio auslesen des Wertes. Gibt es eine Möglichkeit/Block in Sigma Studio, Registerwerte oder von I²C-Geräten zu lesen und dann weiterzuverarbeiten ?
Das wäre zumindest die eleganteste Lösung, natürlich könnte ich auch ein Analogsignal einspeisen (SAM DAC --> Aux-ADC ADAU).

2. Berechnung der Amplitude und des Delays für jeden der 8 Kanäle. Ich denke hierbei wird es scheitern, da ich keine Berechnungsblöcke (Sinus, Cosinus etc.) gefunden habe. Frei programmierbare Blöcke (z.B. in C) wären hierbei ideal. Gibts sowas, vllt. auch als Bastler-Add-On ? Oder gibt es in Sigma Studio die Möglichkeit komplexere Berechnungen durchzuführen ?

Kay*
Inventar
#2 erstellt: 01. Sep 2017, 14:12

Frei programmierbare Blöcke (z.B. in C) wären hierbei ideal. Gibts sowas, vllt. auch als Bastler-Add-On ?

du kannst restlos alles selbst, ohne Sigma, in C machen!
Genauso kannste z.B. Volume-Werte, zusätzlich zum laufenden Programm, per I²C in den (selfboot) DSP schieben,
wie jeden anderen Wert auch. Letztlich ist ein DSP nur ein dem Aufgabengebiet angepasster MC.
Ist sehr aufwendig, da man eben neben der Chip-Struktur auch die Signalverarbeitung verstanden haben muss.

Die Frage nach den freiprogrammierbaren Blöcke ist ein anderes Thema,
da man neben dem DSP auch den Hintergrund von Sigma (Compiler) kennen muss.
Da würde ich wirklich in den Analog-Foren nachfragen.

edit:
ich habe vor sehr lange Zeit in einer Firma gearbeitet, wo wir BlackFin's von AD einsetzten.
Die Jungs haben in "C" gearbeitet. Da gab es auch verwendbare Subroutinen.
Es gab vor Sigmas schon andere Programmierumgebungen.
Danach sollte man mal suchen.


[Beitrag von Kay* am 01. Sep 2017, 14:18 bearbeitet]
MK_Sounds
Stammgast
#3 erstellt: 01. Sep 2017, 14:22

Kay* (Beitrag #2) schrieb:

Frei programmierbare Blöcke (z.B. in C) wären hierbei ideal. Gibts sowas, vllt. auch als Bastler-Add-On ?

du kannst restlos alles selbst, ohne Sigma, in C machen!
Genauso kannste z.B. Volume-Werte, zusätzlich zum laufenden Programm, per I²C in den (selfboot) DSP schieben,
wie jeden anderen Wert auch.


Ist natürlich klar, dass man bekannte Register zur Laufzeit via I²C neu beschreiben kann. Die Frage ist eher, wie ich die Werte nachher in Sigma Studio wieder anspreche/weiterverarbeite.

Grundsätzlich wäre mir eine reine C-Programmierung mit vorgefertigten Libraries natürlich am liebsten, allerdings steht und fällt in diesem Fall eben alles mit einem vorhandenen Compiler.
Kay*
Inventar
#4 erstellt: 01. Sep 2017, 14:34
dort mal fragen
(offenbar gibt's keine C-Compiler, nur Assembler)
https://ez.analog.com/thread/47824

ich nicht, was soll es bedeuten:
https://wiki.analog....dio/scripting/server

sonst 'nen anderen DSP
http://www.analog.co...opment-software.html
http://www.analog.co...ts.html#dsp-overview


[Beitrag von Kay* am 01. Sep 2017, 14:46 bearbeitet]
Suche:
Das könnte Dich auch interessieren:
Subsonic Filter mit Sigma Studio, aber wie ?
Zückerchen am 19.03.2022  –  Letzte Antwort am 21.06.2022  –  18 Beiträge
Sigma-Studio - bessere Subwoofer-Trennung - mein ADAU1701 Testaufbau
Kay* am 29.08.2017  –  Letzte Antwort am 29.08.2017  –  7 Beiträge
C in Visual Studio 2013 ( Fehler C1069)
HardstyleJoni am 03.03.2014  –  Letzte Antwort am 03.03.2014  –  6 Beiträge
Studio 12 + Studio 120 Fragen
SV650 am 21.03.2004  –  Letzte Antwort am 22.03.2004  –  9 Beiträge
Sigma Multiplexer über GPIO Taster
DTobi am 17.08.2017  –  Letzte Antwort am 23.08.2017  –  8 Beiträge
Sure DSP gibt einen grausamen Ton aus bei Übertragung der Daten?
Phil9292 am 05.09.2017  –  Letzte Antwort am 06.09.2017  –  5 Beiträge
IRS2092 und IRAUDAMP 7D Delta Sigma Modulation
v.cougar am 05.01.2011  –  Letzte Antwort am 06.01.2011  –  7 Beiträge
Projekt D-Verstärker / Delta-Sigma Wandler
DomTom86 am 15.05.2007  –  Letzte Antwort am 15.05.2007  –  4 Beiträge
Fostex FE 108 Sigma Spiral Horn
Allons! am 15.12.2003  –  Letzte Antwort am 15.12.2003  –  2 Beiträge
Sigma Delta Treiber mit dig Eingang
barnygumble am 09.04.2005  –  Letzte Antwort am 13.04.2005  –  3 Beiträge
Foren Archiv
2017

Anzeige

Aktuelle Aktion

Partner Widget schließen

  • beyerdynamic Logo
  • DALI Logo
  • SAMSUNG Logo
  • TCL Logo

Forumsstatistik Widget schließen

  • Registrierte Mitglieder927.950 ( Heute: )
  • Neuestes Mitglied
  • Gesamtzahl an Themen1.556.997
  • Gesamtzahl an Beiträgen21.670.256