www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Audio-Projekt


Autor: TheMason (Gast)
Datum:

Hallo,

ich habe mal wieder eine neue Version meines Audio-Projekts hochgeladen.
Zu finden unter :

http://www.mikrocontroller.net/articles/Audio-Projekt

Jeder der ein Spartan 3 Board hat und 1 oder 2 Audio-Codecs daran
ageschlossen bekommt kann den Audio-Prozessor nun benutzen.
Der DAP kann per RS232 (vom PC aus) oder per SPI (vom uC aus) gesteuert
werden.
Es können damit Mischpulte (ok 4 Mono-Eingänge ist nicht der Hit, aber
es ist ja noch ausbaufähig), Delays (später auch Chorus, Flanger),
Equalizer und Synthesizer mit gebaut werden.
Eine PC-Software zum steuern des DAPs existiert schon in einer
Roh-Version und wird dem Audio-Projekt noch hinzugefügt.
Weiterhin fehlt noch eine ausführliche Dokumentation des DAPs
(Befehlssatz, Arbeitsweise, Beispiele).
Aber alle diese Dinge werden im laufe der Zeit noch nachgereicht.

Ich möchte nochmals Werbung dafür machen das ich noch Leute suche die
Lust und Zeit haben an solch einem Projekt mitzuwirken, da ich denke das
man aus dem Projekt noch eine ganze menge machen kann.

Gruß
Rene
Autor: T.M. (Gast)
Datum:

Ich hab mal probiert, das 6.2 Projekt mit ISE 9.1 zu implementieren.
Wenn man alle ressourcensparenden Optionen wählt, kommt das P&R durch.
Dafür alle Optimierungen auf Area stellen, die FSM-Codierungen auf
sequential, LUT into BRAM usw. Dann müsste es auch bei dir klappen. Wenn
ich neben der Arbeit noch Zeit finde, schaue ich auch mal in den Code
rein.
Autor: Ratze (Gast)
Datum:

Du hast Dir ja eine Menge Arbeit gemacht. Aber um das zu nutzen, müsste
MIDI ran! Geht  das ?
Autor: TheMason (Gast)
Datum:

@ratze

MIDI wäre dann die Aufgabe des uCs (der DAP ist ja auch per SPI
steuerbar). Da ich aber erstmal eine einfache Testschnittstelle haben
möchte (bis ich weiß was noch zu tun ist) ist RS232 vorgesehen.
Wenn ich die Doku fertig habe (kann noch was dauern) sollte es für jeden
sehr einfach sein selbst MIDI zu implementieren (egal ob über
MIDI-Buchsen, oder mal als anregung : Igor- oder obdev.at-USB für AVR,
welches als MIDI-Device fungiert, wär das was ?! :-))
Zu der Doku kommen dann noch ein paar Beispiele wie man Töne erzeugt und
Filterkoeffizienten berechnet, nebst Delphi Programm zum groben Testen.
Interesse ?

Gruß
Rene
Autor: Tom (Gast)
Datum:

Darf ich mal fragen, welchen Codec du verwendet hast? Ich konnte da
keine Info zu finden.
Autor: TheMason (Gast)
Datum:

@tom

den TLV320AIC23B von Texas Instruments. Steht in der Übersicht :-) (ok,
ist da etwas blöd platziert, werds noch in den Schaltplan packen)
Autor: Tom (Gast)
Datum:

> TLV320AIC23B

Fettes Teil, genau was ich suche :)
Autor: TheMason (Gast)
Datum:

den codec ?! na ja .. eher low-cost. aber für halbwegs gescheite tests
ausreichend und (was mir wichtig war/ist) single supply und wenig
beschaltung :-)) (soll ja noch hobby sein)
Autor: Tom (Gast)
Datum:

Ja und vor allem der int. Verstärker. Nicht das das ein Problem wäre,
ist aber sehr angenehm.

Wo hast du das Teil gekauft?
Autor: TheMason (Gast)
Datum:

hab ich als sample bei ti bekommen. kannst glaube ich 3 stück auf einmal
ordern.
Autor: TheMason (Gast)
Datum:

@t.m.

hab mal etwas mit den optionen gespielt, aber der p&r kommt bei mir
nicht durch. welche optionen genau (ich hab mit dem optimierer noch
nicht so viel gemacht, von daher weiß ich nicht welche optionen speziell
für area gelten, bzw. welche optionen sich auf die area auswirken) hast
du eingestellt ?
kannst du mir evtl. screenshots von den optionsdialogen machen ?

gruß
rene
Autor: T.M. (Gast)
Datum:

Ich werd heute Abend zH mal nachschauen, was ich eingestellt hatte.
Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

dank schonmal im voraus.
hier mal ein screenshot der optionen bei denen am wenigsten ungeroutete
signale nach dem par herauskommen.

gruß
rene
Autor: Dirk (Gast)
Datum:

Hallo,

Respekt erstmal, ich haette nicht gedacht das es realisiert wird.

Ich benoetige für ein Design vielleicht die I2S Schnittstelle, weiss
jemand ca. wieviele Makros benoetigt werden, desweiteren ist es moeglich
die I2S Schnittstelle in ein CPLD zuquetschen oder werden DCM's benutzt?

Gruß,
Dirk
Autor: TheMason (Gast)
Datum:

@dirk

dcm's werden keine benutzt. den i2s teil kannst du gerne verwenden.
musst wohl dran denken das dieser nur als slave arbeitet (seine clocks
also von außen bezieht). du müsstest den i2s teil aber anpassen da
dieser für 2 i2s signale ausgelegt ist (also 2 stereo ein und ausgänge,
ergo 4 mono ein und ausgänge).
bei 1 i2s signal (also 1 stereo ein und ausgang) müsste es in einen cpld
pressbar sein.
anzahl der flipflops für 1 i2s (grob übern daumen gepeilt) 2  2  24 =
96 flipflops fürs senden und empfangen, dann noch ca 6-7 flipflops für
die zähler, 6-8 fürs einsynchen und noch 2-3 für die statemachine, plus
ein paar ff's an die ich bestimmt nicht gedacht habe :-). in einen 95144
könnte (müsste) es also passen (wenn meine rechnung stimmt).
ansonsten : ausprobieren :-)

gruß
rene
Autor: Dirk (Gast)
Datum:

Danke für die Einschaetzung!
Autor: T.M. (Gast)
Datum:
Angehängte Dateien:

So, im Anhang sind die ISE-Einstellungen als *.jpg zu finden. Damit hat
er zwar auch ne Weile gebraucht, aber beim P&R kann alles geroutet
werden.
Autor: TheMason (Gast)
Datum:

@t.m.

vielen dank. jetzt lässt es sich synthetisieren.
cool. mal schauen was sich noch zusätzlich in dem fpga unterbringen
lässt :-)) aber es scheint ja schon so zu sein das das dingen bald am
poller ist.

gruß
rene

Autor: TheMason (Gast)
Datum:

Jetzt gibt es ein kleines Demo-Programm welches den DAP zum 3-Band
Stereo Equalizer macht (inkl. Audio-Demo).
Weitere Demos und Programme folgen ...
Autor: TheMason (Gast)
Datum:

update : habe 3 weitere Demos hochgeladen und altes eq-demo upgedatet
(war kein stereo sondern ein mono-eq :-x)
jetzt gibt es ein Stereo Equalizer Demo, ein Synthesizer-Filter Demo,
ein Mixer-Demo und ein Delay (Chorus)-Demo.
Hoffe auf nachbau und Feedback

Gruß
Rene
Autor: TheMason (Gast)
Datum:

update :

- codecs werden nun vom pc aus initialisiert (mit den demo-programmen).
allerdings funktioniert das nur mit der 6.2'er version (ise 9.1 hat es
trotz optimierung nicht geschafft das teil zu routen)
- habe neue audio-demos (mp3) hochgeladen. als audio-quelle dient ein
werkspreset meiner roland mc505-groovebox.

ich würde mich über ein feedback freuen (egal ob
demos/code-überflug/nachbau/artikel-statement).

gruß
rene
Autor: TheMason (Gast)
Datum:

hat denn mal jemand das ganze mal getestet ? würde mich echt freuen mal
was feedback zu hören ....
Autor: Ephi (Gast)
Datum:

Also ich hab mir mal die demos angehört:

also wenn das wirlich über deinen FPGA lief, dann kann der schon
allerhand, und die qualität ist dafür das dir die wandler atm egal sind
auch ganz gut!

wäre denn mit dem teil auch ein 16band EQ oderso möglich?
Autor: TheMason (Gast)
Datum:

also 16 band eq mit 2 mono-kanälen ist möglich (habe ich zwar noch nicht
getestet aber rein rechnerisch kann ich 40 eq-filter insgesamt rechnen)
Autor: Axel (Gast)
Datum:

Ich kenne das Projekt nicht, sitze aber des öfteren über einer
Resourcenplanung und würde dazu raten, Elementarzellen zu definieren,
die man iterative pipelinen kann. Dann werden Divider und solche
Prozesse sinnvoll ausgenutzt. Hier würde ich als eine Elementarzelle ein
solches Bandelement sehen. Dann kommt man zwar auf eine höhere additive
Latenz, aber das ist im Idealfall nur 1 Clock.
Autor: TheMason (Gast)
Datum:

@axel

danke für den tip

also divider werden nicht genutzt, nur multiplizierer und addierer. wie
würde man denn am besten eine solche mac-einheit (multiply and
accumulate) in elementarzellen zerlegen ? ich habe mir auch schon
überlegt einen core-generator einzusetzen, wollte das aber bisher nicht
machen da ich zum einen gerne den code nach möglichkeit 1:1 (bis auf die
blockrams) auf einem altera ausprobieren möchte und zum anderen wollte
ich den mikrocode erstmal so belassen.
vielleicht das ich in einer späteren version das mal mache, aber im
moment wäre ohnehin nur ideenfindung für ein optimaleres design
angebracht, da ich erstmal feedbeck mit dem bestehenden system sammeln
möchte.
daher hoffe ich das mal jemand das ganze nachbaut.

gruß
rene
Autor: Ephi (Gast)
Datum:

weil ja jeder der wasweisichwieviel millionen deutschen ein FPGA board
daheim hat ;)
Autor: TheMason (Gast)
Datum:

das wirds wohl sein :-)

ok, gebs ja zu das die chance recht gering ist, das diese konstellation
(fpga-interessierte, leute die ein spartan 3 board haben, leute die an
audio interessiert sind, leute die sich den codec ans board anflanschen)
erfüllt ist ...

aber die hoffnung stirbt ja zuletzt :-)
Autor: T.M. (Gast)
Datum:

[x] Spartan3-Board
[x] an Audio interessiert
[ ] Zeit, um sich die Peripherie zu basteln :-(

Aber vielleicht tut sich im letzten Punkt ja demnächst was, da steht
dein Projekt ganz oben auf der Liste :-)
Autor: Ephi (Gast)
Datum:

was ist eigentlich der unterschied zwischen spartan 3 und virtex 4 und 5
außer das der 5er in 65nm gefertigt ist?
Autor: TheMason (Gast)
Datum:

also den genauen unterscheid zwischen spartan und virtex kenne ich
nicht. ich meine das die struktur bei den virtexes etwas anders ist
(interconnects und clbs). und manche virtexes haben einen (oder mehrere)
powerpcs mit on-chip.
bin mir aber nicht ganz sicher.

gruß
rene
Autor: TheMason (Gast)
Datum:

Update :

Delphi-Quellcodes zum EQ-Demo, Filter-Demo und Delay-Demo hochgeladen.
Autor: TheMason (Gast)
Datum:

update :

audio demo eines synthesizers mit dem dap hochgeladen. der dap wird vom
pc aus gesteuert (hüllkurven, sequencer, filterkoeffizienten). ein
pc-programm zum steuern (inkl. quellcode) folgt bald
Autor: TheMason (Gast)
Datum:

ich habe mich nochmals mit dem problem beschäftigt, das sich das design
nicht vernünftig mit ise9.1 synthetisieren lässt (unter 6.2 habe ich gar
keine probleme, da geht das ganze sogar richtig fix). ich bin langsam am
ende mit meinem (kleinen) latein. egal wie ich es anstelle : es gibt
immer probleme beim routen (selbst wenn ich einen spartan3 400'er nehme,
muß ich die optimierung einschalten, damit es überhaupt geroutet werden
kann).
die "ursache" liegt wohl in der MAC-Einheit.
da ich "einfach" nur 2 32 bit signed zahlen multipliziere (den *
operator) denke ich liegt da der hund begraben (kein pipelining->große
multiplizierer und addierer->viel interconnect-routing->problem).
nun denke ich das man den multiplizierer in pipelining machen müsste um
das problem zu umgehen. (jedenfalls würde mir hier nichts anderes
einfallen)
wie würde man eine solche operation (32x32 bit multiplizieren und
akkumulieren) am besten in ein pipelining schema pressen (nach
möglichkeit ohne irgendwelche core-generatoren zu benutzen da ich den
dap erstmal weitestgehend platform-unabhängig [abgesehen von den
blockrams] beschreiben möchte) ? wie würde man sowas am einfachsten in
vhdl implementieren ?

hoffe das mir da jemand helfen kann.
der quellcode zu dem "problem" ist im audio-projekt verfügbar. die datei
in der die mac-einheit steht ist "sdsp_core_mc.vhdl". (vielleicht findet
ja doch jemand eine andere ursache für das problem)

gruß
rene
Autor: Stefan Hanke (stefanhanke)
Datum:

TheMason wrote:
> wie würde man eine solche operation (32x32 bit multiplizieren und
> akkumulieren) am besten in ein pipelining schema pressen (nach
> möglichkeit ohne irgendwelche core-generatoren zu benutzen da ich den
> dap erstmal weitestgehend platform-unabhängig [abgesehen von den
> blockrams] beschreiben möchte) ?

Ein Algorithmus von http://opencores.org benutzt folgende Dekomposition:
X*Y = (XH<<16+XL)*(YH<<16+YL) = XH<<16*YH<<16 + XL*YH<<16 + XH<<16*YL + XL*YH
Das ergibt 4 Multiplikationen mit der Hälfte der Bitbreite. Einmal
weiter, und du bist bei 16 Multiplikationen mit 8 Bit.

 -- stefan
Autor: TheMason (Gast)
Datum:

hallo stefan,

das man eine 32x32 multiplikation in 4 16x16 aufteilen kann ist mir
klar. mir geht es nur darum wie man sowas am besten so in vhdl
implementiert das sich eine optimale pipeline-struktur ergibt, damit das
design ohne probleme in den fpga passt (egal ob mit 6.2'er ise oder
9.1'er), wenn das implementierungs problem von 9.1 denn wirklich an der
mac einheit (speziell dem multiplizierer ) liegt. und da ich nicht sooo
fit in vhdl bin würde mich mal interessieren ob dem wirklich so ist,
oder ob es an einer anderen stelle probleme gibt (wäre mir ehrlich
gesagt lieber, dann muß ich nämlich nicht zwangsweise den ganzen
micro-code umschreiben/neuschreiben/simluieren und und und ...)
aber dazu müsste man sich tiefer mit meinem quellcode auseinandersetzen,
und das ist für die erfahrenen hier im forum denke ich ein zeitproblem
... :-(

trotzdem danke für die anregung.

gruß
rene
Autor: fpga jolly (Gast)
Datum:

Stefan und Hans, ich denke, daß nach der Synthes DASSELBE rauskommt,
auch wenn man es häppchenweise vorformuliert. Um diese Struktur zu
erzeugen und zu nutzen, müsste man schon ausdrücklich Register
dazwsichen setzen. Dann hat man eine schnellere pipline.
Autor: TheMason (Gast)
Datum:

@fpga jolly

danke für den hinweis.
hoffe nur das es vielleicht irgendwie ohne pipeline geht, damit ich den
mikrocode nicht ändern muß (dauert inkl. simulation so lange ...)

@all

wäre schön wenn jemand mal über den code (speziell den
sdsp_core_mc.vhdl) gucken könnte und mir sagen könnte ob da vielleicht
eine formulierung drin ist die die probleme verursacht. möchte echt nur
ungern den multiplizierer durch ne pipeline ersetzen müssen.

gruß
rene
Autor: TheMason (Gast)
Datum:

muß jetzt mal meckern ....

gibt es denn überhaupt niemanden der ein bischen feedback gibt ?
was sagt ihr zu den audio-demos ? (ich trau mich ja schon gar nicht zu
fragen ob mal jemand auf das design geguckt hat, oder geschweige denn
das es mal jemand ausprobiert hat, oder nachge baut hat) ich weiß ja das
schönes wetter und wenig zeit da ist, aber es ist echt ätzend wenn kaum
ein schwein was dazu sagt ... (ich weiß ja noch nicht mal wer lust hat
sowas nachzubauen bzw. daran mitzuwirken)
menno nu sach doch mal einer watt ... ist echt frustrierend wenn man
macht und tut und keiner was dazu sagt ...

so genug gemeckert

gruß
rene
Autor: Maik Ritter (kiamur)
Datum:

Hi Rene!

Nach diesem (emotionalen) Aufruf schreibe ich dir mal ein Feedback.

Also ich bin stark beeindruckt von dem Projekt. Ich weiß nur nicht, wie
viel dir so ein Statement Wert ist von jemanden, der in der FPGA Welt
erst ganz am Anfang steht. . .

Ich habe mir mal die Demos angehört, und finde den Klang schon sehr gut.
Aber noch mehr beeindruckt mich das Wissen und das Durchhaltevermögen,
das hinter deinem Projekt steckt.

Grudsätzlich habe ich schon interesse daran, an so einem Projekt, wie
deinem, mitzuwirken. Leider habe ich kein eigenes FPGA Board, und in der
Firma, wo ich gerade bin haben wir nur Altera FPGAs. Außerdem schreibe
ich gerade meine Diplomarbeit, und deswegen keine Zeit. . .

Da ich aber Hobbymusiker bin, kann es durchaus sein, dass ich in naher
Zukunft anfange mich mit ähnlichen Dingen zu beschäftigen. Dann werde
ich vielleicht auf dich und dein Projekt zurückkommen, da es mich wie
gesagt schwer beeindruckt und das Thema auch interessiert.

Gruß
Maik
Autor: TheMason (Gast)
Datum:

hallo maik,

erstmal danke fürs feedback. musste einfach nur mal eben meckern. ist
einfach nur was doof wenn so gut wie gar kein feedback kommt. und wert
ist mir eigentlich jedes feedback (außer von einem troll :-))).
ich seh mich im übrigen auch als anfänger (mache seit 2 jahren
hobbymässig vhdl, kann mich also mit einem berufsmäßigen professional
nicht messen, ist aber auch nicht mein anliegen).
das wissen zum synthesizer/audio-basteln selbst habe ich am pc erworben.
die umsetzung in vhdl war nur eine idee, die erstaunlich schnell
funktionierte, da ich schon vor knapp 1 1/2 schonmal einen versuch mit
einem audio-prozessor gemacht habe der gründlichst daneben ging, habe da
aber eine menge gelernt.
ich freue mich immer zu hören wenn jemand vorhat das nachzubauen, und
wenn wenig zeit da ist ist ja auch kein thema (bei dem schönen wetter
ists ja auch nur verständlich). hoffe aber trotzdem mal ab und zu was zu
hören, und das sich noch ein paar mehr leute an dem projekt beteilgen,
zumal ich das ganze auch gerne mal auf nem altera laufen sehen würde,
selbst aber kein altera board habe.
ansonsten, wenn du mal zeit und lust, ein board, und ein paar
funktionierende codecs hast kannst du ja gerne mal was testen.

gruß
rene
Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Hallo,

ich verfolge das Projekt interessiert. Ich habe noch keine Hardware um
es live zu testen, aber ich versuche gerade ausschnittsweise mit GHDL zu
testen. Da gibt es allerdings ein Problem: du verwendest STD_LOGIC_ARITH
und STD_LOGIC_UNSIGNED, was nicht standardisiert ist und von GHDL nicht
unterstützt wird. Hättest du was dagegen, wenn ich das auf NUMERIC_STD
umstelle und im SVN committe?

Gruß
Andreas
Autor: Rick Dangerus (Gast)
Datum:

@Andreas:

Zur Not kennt ghdl auch --ieee=synopsys. Aber den Code umstellen wäre
der saubere Weg.

Rick
Autor: TheMason (Gast)
Datum:

hallo andreas,

mit dem umstellung ist kein thema, solange es sich noch mit ise noch
synthetisieren lässt :-). sonst sag mir einfach wenn du es eingecheckt
hast, dann teste ich das mal. bin leider nicht von selbst auf die idee
gekommen das man vielleicht besser einheitlich unsigned/signed statt den
misch-masch mit std-logic/signed verwenden sollte. :-/
muß auch noch die delphi sourcen einchecken, möchte aber erst das
synthesizer -demo fertig machen.

gruß
rene
Autor: TheMason (Gast)
Datum:

Wiedermal ein Update :

 - es gibt nun ein SVN-Repository für das Audio-Projekt.
 - es gibt ein Synthesizer Demo (mit Quellcodes).
 - es gibt eine auf das Nexys Board angepasste Version (mit
Speicherinterface)
 - es gibt ein Audio-Codec Board im SVN Repository für Eagle.

Gruß
Rene
Autor: Jürgen Schuhmacher (Gast)
Datum:

Wie wäre es mal mit einem Mono-Stereoprozessor?

Man nutzt den linken Kanal als Monoeingang, bzw. mischt bedarfsweise den
rechten dazu. (Das macht aber nur Sinn, bei reinen gepannten Signalen,
also Pegelstereofonie). Gfs müssen die Bässe weggeschnitten werden.

Von diesem Monosignal ausgehend erzeugt man ein Phasenverschobenes
Signal über Delay: optimal sind 20ms - 30ms  -> bei 48kHz wären das dann
etwa 1kB.

Diese Signal wird in der Größenordnung von etwa 25% bis maximal 50% dem
Original hinzugemsicht und zwar dem einen Kanal positiv, dem anderen
negativ.
Autor: TheMason (Gast)
Datum:

@jürgen

also die einzelnen Komponenten (Filter und Delay) funktionieren ja
schon. Sollte machbar sein :-)
Autor: Techniker (Gast)
Datum:

Wenn ich das richtig sehe, funktioniert das Ganze mit einer Art
Befehlsprozessor ?
Autor: TheMason (Gast)
Datum:

@techniker

richtig. die befehle im PMEM (programmspeicher) werden dekodiert und an
den sdsp bzw. util core weitergegeben und dort ausgeführt. jeder dieser
kerne hat einen eigenen micro-code speicher in welchem jeweils 16
mögliche befehle drinstehen. somit hat der dap 32 befehle (16 befehle
pro kern, 2 kerne). was bzw wie man die befehle anordnet bleibt einem
selbst überlassen. und da man noch einfluß auf den micro-code speicher
hat kann man sich (im rahmen der möglichkeiten der beiden kerne) seine
eigenen opcodes bauen (oder bestehende optimieren).

@all

hat jemand schonmal den audio-prozessor aufgebaut ? kann mir dazu jemand
mal feedback geben ?

gruß
rene
Autor: Techniker (Gast)
Datum:

Das FPGA ist also eine Art Coprozessor - verstehe. Was ist denn noch
alles an Modulen geplant?
Autor: TheMason (Gast)
Datum:

im moment sind folgende sachen geplant :

- wavetable/sampling modul / opcodes (um samples als audio-quelle nutzen
zu können)
- ide-interface für harddiskrecording bzw. wiedergabe von audio-dateien
- interface zum einschleusen/auslesen von audio-daten via uC (z.b. arm7
oder so)
- opcodes für dynamik-einheit (ist allerdings etwas aufwendiger)
Autor: Jürgen Schuhmacher (Gast)
Datum:

Die IDE Schnittstelle würde mich interessieren. Allerdings brauche ich
vorwiegend ein Digitalnterface und weniger einen 0815 Audio Codec.

Noch etwas zu dem Prozessor (und meinem Vorschlag des MS Wandlers): Ich
würde es bevorzugen, wenn das direkt in hardware gelöst waere.
Autor: TheMason (Gast)
Datum:

@jürgen

also das harddiskrecording ist erstmal nur als grobe idee angedacht.
ich habe zwar schon eine idee wie man das am besten umsetzen kann,
allerdings werde ich dazu wohl auch noch einen steuerprozessor
(msp430/arm7) einsetzen der dann noch andere sachen machen kann.
das ide-interface als solches werde ich wohl per statemachines
realisieren. und dann wahrscheinlich auch nur im pio-mode (der
einfachheit halber).

was verstehst du unter digital-interface (i2s/spdif/tdm/adat ?!)
prinzipiell kannst du da alles anschließen was i2s unterstützt, solange
du in dem ganzen system einen master (und wenn es benötigt wird mehrere
slaves) der den dap versorgt (da dieser auch nur als slave arbeitet)

>Noch etwas zu dem Prozessor (und meinem Vorschlag des MS Wandlers): Ich
>würde es bevorzugen, wenn das direkt in hardware gelöst waere.

was meinst du damit, direkt in hardware gelöst ?
als fester algorithmus der "direkt" anläuft oder eine schaltung die
nichts anderes machen kann ?
prinzipiell kann man das mit dem dap auch machen. man muß nur das
programm mit dem der dap hochfährt ändern (beim booten des fpgas wird
auch direkt ein programm für den dap geladen).

gruß
rene
Autor: Jürgen Schuhmacher (Gast)
Datum:

Ok, das durchschaue ich jetzt nicht so genau, aber es klang so, als ob
der DAP einzelne Befehle abarbeitet. Damit den Stereoprozessor zu
realsieren (oder andere Effekte) wäre umständlich, platz und
Zeitfressend, bzw es würde eine ordentliche Latenz produzieren.

Ich mache solche Sachen derzeit mit einer "programmierbaren" Soundkarte,
die einen 56301 benutzt. Dort man das einstellen. Ich will aber hin zu
einer hardware-Lösung mit fester Codierung, da gerade solche "low-level"
Aktionen praktisch ohne großen Flächenbedarf im FPGA laufen - abgesehen
vom Delay-RAM.

Zum DIGI : Ich benötige zunächst SPDIF - ADATA optical wäre aber
dernächste Schritt.

Was vor allem passieren muss, ist ein flexibles Sampling und Resampling
auf "analoger " Ebene mit externer Synchronisation. Damit bekommt man
zwar 2 worte Latenz - aber einen Datenstrom OHNE zusätzliche
jitter-Artefakte.

Ich habe bisher noch kein System am Markt gefunden, das das kann!
Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Wieso würde das Latenz erzeugen? Die paar Befehle sind doch in ein paar
Takten abgearbeitet.
Autor: Jürgen Schuhmacher (Gast)
Datum:

Du brauchst ja auch noch Verwaltung, um die Befehle abzuarbeiten und
ausserdem sehe ich einen deutlichen Mehraufwand darin, eine allgemeine
Hardware per Befehle dazu zu bringen, diese Grundfunktion zu
realisieren.

Mal abschätzt sähe das so aus:

RAMWR++;
RAM(RAMWR) = INPUT
RAMRD = RAMCNT + 960;
M = RAM(RAMRD)
L = M - INPUT * k;
R = M + INPUT * k;

Macht schonmal 5 sequenzielle Befehle. GEschätzt 10 CLK-Zyklen

Der nächste Punkt: Auch ein "paar Befehle" sind immer Latenz. Bei fest
verdrahteter Hardware kann ich die genau berechnen und bei der
Verarbeitung anderer Datenströme mit berücksichtigen.

Die Funktion dieses hardware-Prozessors wird damit für mich auch
nutzlos, da ich mit meiner €85,- Soundkarte (gebr Soundscape Mixtreme)
schon jetzt schneller bin!
Autor: TheMason (Gast)
Datum:

@jürgen

ich geh mal (kurz) darauf ein :

es wird pro sample (also alle 20us @ 44khz) das komplette programm
sequentiell (!) abgearbeitet.
da der fpga mit 50mhz läuft hat man bei 44khz etwa 1000 takte. in diesen
werden die befehle geholt, dekodiert und ausgeführt.
rein theroretisch hast du somit eine latenz von nur 1 sample (plus noch
2 samples für den transfer vom/zum wandler)
die latenz die man vom pc her kennt kommt nur dadurch zustande das der
pc keine so schnelle reaktion auf ein sample zeigen kann. da werden
mehrere samples zwischengepuffert (das ergibt dann die latenz) und
zeitversetzt abgearbeitet.
der dap hat also eine geringe latenz.

gruß
rene
Autor: Jürgen Schuhmacher (Gast)
Datum:

Ach ja, noch eins : Ich benutze das DELAY RAM auch als Echo-RAM für die
Kurzreflexionen und den Hall. Der Faktor k wird so eingesetzt, das er
das DECAY kompensiert. Damit kriege ich in der Addition oben auch diese
Infos mit rein. Erzeugt werden die KR jeweils mit Zählern, die ein Delay
beinhalten und voll parallel laufen.

Der eigentliche Schritt, nämlich die Synthese des L-R-Signals läuft
damit in einem einzigen CLOCK! Der Rest an vorbereitender Rechnerei ist
voll parallel, wobei die Stereofunktion nur aus einem einzigen RAM-Write
besteht, der aus einem Addierer (mit den geloopten REFs) besteht.

Wenn ich mit statischen Refelxionen arbeiten würde, benötigte ich gerade
mal 1 Clock, 3 24Bit-Multiplier und 4 Addiere, sowie die Zählschleife.

Die Stereofunktin mit fester Verstärkung (50%Mix) braucht gerade mal 2
Addierer!

Baue das mal in Software nach.
Autor: Jürgen Schuhmacher (Gast)
Datum:

@Mason:

Man hat also (wie üblich bei DSPS) für alle Prozesse, die man
programmiert zusammen ein Sample Zeit. Das ist sowoeit klar.


>2 samples für den transfer vom/zum wandler)
Das ist unvermeidbar ?

>die latenz die man vom pc her kennt kommt nur dadurch zustande das der
pc keine so schnelle reaktion auf ein sample zeigen kann

Das ist auch klar. Die o.a. Karte arbeitet aber nicht über Software,
sondern kriegt von der Controllsoftware lediglich die Config. Die
Funktion arbeitet unten in hardware. Soweit ich das sehe auch innerhalb
eines samples.
Autor: TheMason (Gast)
Datum:

@jürgen

nur mal eben am rande : mir geht es nicht darum gegen einen 56xxx oder
sharc oder blackfin "anstinken" zu wollen, das ist hoffentlich klar,
oder ?
mein ziel ist es vielmehr eine (einfache) plattform aufzubauen mit dem
audio-signale (einigermaßen) flexibel bearbeitet werden können. falls
damit auch noch hd-recording (da bin ich ja schon froh wenn ich
überhaupt 4 mono kanäle schaffe) möglich ist, ists doch prima. ein
synthesizer, einfache effektgeräte und ein kleines mischpult
funktionieren ja schon.
das man einige operationen (z.b. deinen ms-wandler) mit einem fpga
sicherlich sehr elegant lösen kann ist klar, aber dann hättest du nur
eben diese eine funktion. wenn du das als einzelnen opcode in meinem dap
haben möchtest muß man auf micro-code ebene herunter. und kannst dabei
noch parametrieren (z.b. mischungsverhältnis, oder grenzfrequenz um die
bässe nur in die mitte zu legen, oder oder oder ...)

>2 samples für den transfer vom/zum wandler)
>Das ist unvermeidbar ?

bei dem design das ich verwende ist es unvermeidbar (brauche immer noch
ein daten register neben dem schiebe-register), aber ich wüsste nicht
warum das schlimm sein sollte, immerhin sind 3 samples (2 für i/o, 1 für
die verarbeitung) gerade mal 60us. eine soundkarte hat deutlich mehr,
und eine creamware-karte wollte ich ja auch nicht aufbauen :-)
Autor: TheMason (Gast)
Datum:

hat eigentlich jemand mittlerweile den DAP auf dem nexys board mal
ausprobiert und kann mir feedback geben ?
Autor: TheMason (Gast)
Datum:

ist das projekt so unattraktiv ?
fehlen soviele informationen ?
sagt doch mal was ...
Autor: Thomas H. (supergrobi)
Datum:

Hallo Mason,

super Projekt ! Wollte mir das immer mal aufspielen, mir fehlt leider
nur die Zeit :) hab das Nexys und auch die Codecs. Hab es aber noch
nicht geschafft, Leiterplatten für die Codecs zu ätzen...

Freue mich aber riesig, das demnächst mal auszuprobieren... !
Ist also auf gar keinen Fall unatraktiv !!!

gruß
Thomas
Autor: Thomas H. (supergrobi)
Datum:

So, ich hab mir jetzt mal den Audio Codec nachgebaut, hat aber leider
nicht funktioniert. Ist es richtig, das der Mode Eingang auf GND liegt ?
Das wäre ja nach Datanblatt Two Wire...

kann man irgendwie nachvollziehen, ob der Codec richtig initialisiert
wurde ?

Der Quarz ist 12 MHz, richtig ?

Hab die Platine noch mal neu geroutet, damit ich eine einseitige Platine
habe... muss das noch mal durchgehen, hatte keine Lust mehr :)

Gruß
Thomas
Autor: TheMason (Gast)
Datum:

@thomas

ich hab im schaltplan an den wichtigsten pins zum connector überall
doppelt und dreifach widerstände vorgesehen. zum einen um gegen
kurzschlüsse zu schützen, und zum anderen damit man durch weglassen sich
den codec "vorkonfigurieren" kann.
z.b. kann man indem man entweder r5 oder r18 weglässt das dingen als spi
oder twi konfigurieren.
mit r19 bzw. r23 wird bestimmt ob der codec mit dem quarz laufen soll
oder seinen clk über pin 1 des connectors bekommt.

die initialisierung mache ich meist so :

- codec resetten (register 15)
- device als master
- clk divider setzen
- audio routing setzen (zum testen das bypass-bit setzen)
- den rest (power off/lautstärken/usw).

dann schaue ich nach ob der quarz schwingt und ob BCLK und LRCLK
anliegen und ob an DOUT etwas zappelt. wenn dem so ist funktioniert der
codec.

einen 12mhz quarz kann man ebenfalls verwenden, muß dann aber das
clk-divider register richtig setzen.

also der codec ist von der beschaltung her recht einfach und auch die
initialisierung ist super-simpel. ich hatte bisher eigentlich nie große
probleme damit.
vielleicht konnte dir meine kleine anleitung etwas helfen.
wenn du noch fragen hast, frag ...

gruß
rene
Autor: Rene B. (themason) Benutzerseite
Datum:

Mal ein kleines Zwischenupdate.

Im Audio-Projekt-Artikel habe ich vor einiger Zeit ein paar Bilder eines
Aufbaus des DAP's hochgeladen. Der DAP läuft in einem FPGA Board welches
von Thomas Pototschnig designt worden ist (miniGA). Das Bild ist unter
"DAP mit selbstgelötetem FPGA Board" zu finden.
Gesteuert wird der DAP von einem AVR (im moment mega32, wird demnächst
aber ein mega644). Das Bild dazu ist in der Picture-Gallery :-)

Das ganze funghiert als Synthesizer, bzw. soll ein solcher werden, bzw.
ist dabei einer zu werden (und wie ich finde ein recht guter :-)).

Kurzer Umriss :
 - 3 Oszillatoren
 - 2 Filter (seriell/parallel)
 - 2 LFO's
 - 2 Hüllkurven
 - Einspeisung eines externen Audio-Signals (wird zu den Oszis gemischt)
 - Modulationsmöglichkeiten (imm aufbau)
 - Delay (im aufbau)
 - Chorus (im aufbau)
 - EQ (im aufbau)

Das ganze ist schon per MIDI steuerbar (allerdings funktioniert der SW
UART noch nicht richtig, mit dem ich alle Parameter von außen steuern
möchte, also kann ich momentan nur einige wenige Parameter per
MIDI-Controller steuern).
Zum Einstellen aller Parameter habe ich ein UI-Board gebaut welches
einige Potis (16), Schalter (11) und LEDs (24) sowie ein Display und
einen Drehgeber enthält. Leider habe ich beide Platinen noch nicht
erfolgreich miteinander reden lassen können. Kommt aber noch.
Was noch zu umzusetzen ist, ist ein Delay, Chorus und EQ als
Effektsektion, dann ist der Synth von der Funktionalität (und von meinem
persönlich gesteckten Ziel) her komplett.
Wenn ich am Wochenende Zeit finde mache ich mal ein Audio und evtl.
Video Demo des Synths.
Sobald das Teil fertig ist (es fehlt wie gesagt nur noch die
Kommunikation zwischen beiden Platinen, die SW ist größtenteils fertig)
werde ich das gesamte Projekt (Schaltpläne, Sourcen, Bilder, Audiodemos,
usw.) mit in das Repository aufnehmen, auf das das jemand nachbauen möge
(sofern Zeit vorhanden :-))

Gruß
Rene
Autor: Dirk (Gast)
Datum:

Hallo Rene,

ich finde das Projekt sehr interessant. Für mich stellt
sich die Frage, ohne das Projekt im Detail zu kennen,
ob Du nicht auf dem Spartan 3 einen Softcore einsetzen
möchtest, z.B. soc-lm32, siehe hier:

https://roulette.das-labor.org/bzrtrac/wiki/soc-lm32

um den externen Mikrocontroller einzusparen.

Gruß Dirk
Autor: TheMason (Gast)
Datum:

Hallo Dirk,

kann man sicherlich machen. Dazu muß das derzeitige Design aber komplett
überarbeitet werden, da durch die verwendung des 32x32 bit
multiplizierers so wie er implementiert ist sehr viele ressourcen
(speziell interconnects) verbraten werden die erweiterungen sehr
erschweren. (bin ja schon heilfroh das ich das design überhaupt in einen
spartan3 200 geprügelt bekommen habe, und selbst in einem 400'er wirds
eng).
allerdings benötigt die softcore cpu dann noch einiges an speicher, da
man um floating-point rechnereien für die filterkoeffizienten nur schwer
drum herum kommt. daher braucht der steuernde uC einiges an speicher
(schließlich soll der ja nicht nur die koeffizienten berechnen, sondern
auch alle anderen elemente bedienen wie lfo's, hüllkurven, modulation,
midi usw ...)

gruß und danke für den link
rene
Autor: Rene B. (themason) Benutzerseite
Datum:

mal ein paar neue audio-demos.
dap und avr als synthesizer.
Autor: Rene B. (themason) Benutzerseite
Datum:

hat denn mal jemand reingehört ?
also so ganz ohne kommentar ist ja für die tonne .... *mecker
Autor: TheMason (Gast)
Datum:

och mennooo ...

nu lasst mich doch nicht so hängen ....
Autor: Rick Dangerus (Gast)
Datum:

Hey, Du stehst mit Deinem Projekt bei mir in der Warteschlange :-)
Ich brauche nur noch Zeit und wahrscheinlich einen geeigneten
AD-Wandler.

Rick
Autor: TheMason (Gast)
Datum:

ich wollte eigentlich auch nur ein feedback zu den synthesizer-audio
demos. daher das gemecker. ich denke 3 minuten demo-hören und 2 min ein
kommentar posten ist doch nicht zuviel verlangt.
es richtet sich ja auch nicht gegen diejenigen die das projekt nachbauen
wollen. ich weiß das es (wegen der bauteile) nicht ganz einfach ist.
wäre aber trotzdem schön mal ab und zu was von den leuten zu hören :-)
also ein ganz artiges danke an rick.

gruß
rene
Autor: Harkan (Gast)
Datum:

Wo sind diese mp3s?
Autor: TheMason (Gast)
Datum:

Autor: Dr. Jones (Gast)
Datum:

@TheMason : Ich übersehe das Systen noch nicht so ganz, bringt das was,
jetzt einen eigenen Befehlsinterpreter für Audiobefehlr zu schreibr?
Wäre es nicht effektiver, das in C zu machen und einen Softcore zu
nutzen?

>im moment sind folgende sachen geplant :
>- wavetable/sampling modul / opcodes (um samples als audio-quelle nutzen
>zu können)

Ist das schon drin? MIDI-Verarbeitung ist ja komplex!

@Jürgen Schuhmacher : Machst Du damit Musikverarbeitung ?
>Wie wäre es mal mit einem Mono-Stereoprozessor?
Kannst du das bitte erklären, wie das gehen soll?
Autor: TheMason (Gast)
Datum:

@dr jones

also ein softcore wäre sicherlich einfacher, aber ein microblaze (wäre
am passendensten, da komplett 32bit) ist ja auch nicht kostenlos, und
einen anderen uC mit komplettem environment (gcc usw) aufzusetzen ist
(denke ich) auch nicht so einfach (jedenfalls denke ich das da schon
noch einiges zu machen ist).
außerdem gings mir für mich auch erstmal darum einen eigenen kleinen dsp
(wenn man das dingen so nennen darf) zu entwerfen und mit diesem dann
audio zu machen.

zum thema midi :

midi selbst läuft in dem steuerprozessor (in dem fall ein avr) ab.
dieser übernimmt auch die berechnung der filterkoeffizienten und
dergleichen.
evtl. wäre/ist ein arm dafür sogar noch besser eeignet.

thema weitere module :

da im moment leider wenig resonanz zu dem gesamten projekt besteht, gehe
ich da meinen eigenen weg, d.h. ich "reduziere" die funktionalität auf
einen synthesizer, auf basis des fpga-boards von thomas pototschnig (ist
ein echt kleines feines fpga-board).
da ich aber generell das problem habe das das design der mac-einheit
etwas "unglücklich" bzw "unvorteilhaft" ist, und ich leider keine zeit
bzw. leute finde die mir dabei helfen können (mir würde eine
serialisierte mac einheit schon vollkommen reichen) habe ich das problem
das das design recht "klobig" ist, was sich erst mit größeren fpgas (so
spartan 3-1000) in luft auflöst (mit der bestehenden mac einheit).
von daher sind erweiterungen erst mit größeren fpgas möglich
(ressourcenverschwendung) oder komplettüberarbeitung der mac-einheit und
des microcodes möglich. aber wie gesagt müsste dazu mehr resonanz da
sein.
sonst ist das vertane zeit (da ich für mich alleine eher ergebnisse
"sehen" möchte als ein "perfektes" design).

ich hoffe zwar immer noch das sich leute für zusammenarbeit finden, aber
das ist bei diesem projekt ein eher leidiges thema (sorry an die die
interesse aber keine zeit dafür haben). dann würde sich auch eine
umfangreichere doku lohnen, aber für mich alleine ist das gelinde gesagt
"zeitverschwendung" bzw. blödsinn.
mal schauen. ich überlege auch schon ob ich nicht einfach den
audio-codec durch einen pwm ersetzen soll, damit vllt etwas mehr leute
dieses projekt nachbauen können. so bräuchte man nur ein fpga board und
einen avr und könnte was "hören", und das würde die sache evtl.
attraktiver machen (wenn auch zu ungunsten des klangs).

schaun mer mal ...
würde mich trotzdem freuen wenn sich noch leute an diesem projekt
beteiligen. für fragen steht dieser thread ja jederzeit offen.

gruß
rene
Autor: Experte (Gast)
Datum:

Das Beste wäre sich er eine käuflich zu erwerbende PLattform. Ginge da
nicht eines der zahlreichen Evalboards am Markt?
Autor: TheMason (Gast)
Datum:

das problem ist eher das ein audio-codec und ein steuerprozessor
vorhanden sein müssen/sollten, da der fpga lediglich den audio-prozessor
"beherbergt". wie gesagt kann man im vorhandenen design evtl. einen pwm
output implementieren (zu lasten der klangqualität), aber ohne einen
steuerprozessor gehts eben nicht (ausgenommen die steuerung per pc, aber
das bringt nur die hälfte der möglichkeiten, bedingt durch die relativ
langsame verbindung per rs232). und letzenendes scheitert es daran das
zum einen ich leider kein solch erwerbbares board (mit wenigstens eins
mit einem audio-codec) besitze, und zum anderen genügend andere leute
genau dasselbe board besitzen.
ansonsten dürften solch unterschiede (abgesehen von der intialisierung)
marginal sein (bestenfalls im ucf file einige anpassungen).
wie sieht es denn mit möglichen kandidaten aus ? (schau schon eine weile
nicht mehr nach passenden plattformen, da es immer die frage ist :
wieviele leute haben genau dieses board ...)
Autor: Mr. Mister (Gast)
Datum:

Mit einem direkten FPGA-Ausgang sollte sich aber ein guter 1-Wandler
bauen lassen, oder ?  Bei 50MHz hätte man immerhin 1100 Stufen je 44kH
also 10 Bit. Da man mit 15kHz filtern könnte, wären es schon 12 Bit.
Brauchst halt nen guten Filter.
Autor: TheMason (Gast)
Datum:

@mrmister

wie gesagt hatte ich das auch schon überlegt. aber dann hat man eben
keinen eingang. und der würde bei dem system eben ein komplettes
audio-system machen. so bin ich nur auf klangerzeugung festgelegt.
mal schauen.
hatte übrigens in der anfangszeit (als ich noch keinen codec hatte) mit
einem 1-bit wandler gearbeitet (einfach nur ne pwm). einfach nur nen
kondensator und widerstand dahin. zum testen hats gereicht.
Autor: TheMason (Gast)
Datum:

Ich habe mal die FPGA-Platine (mit Erlaubnis) von Thomas Pototschnig um
einen Audio-Codec, einen AVR, eine bzw. zwei serielle Schnittstellen und
ein MIDI Interface erweitert. Ich bin gerade dabei die Platine
aufzubauen.
Wenn alles klappt werde ich das Layout und eine Bestell-liste (evtl.
kann man alle Spezialbauteile bei Sander Elektronik bekommen) hier
hereinstellen plus dem Quellcode für den Synthesizer. Ich hoffe so das
der Thread bzw. das Projekt wieder etwas zum leben kommt, da ich bisher
halt nur für mich alleine daran rumgewerkelt habe, mangels Resonanz.

An dieser Stelle nochmals der Aufruf an Leute die sowas gerne mal
nachbauen wollen würden bzw an diesem Projekt mitwirken möchten. Ich
suche immer noch Leute die bei diesem Projekt mitmachen möchten.
Autor: Pauli (Gast)
Datum:

>einfach nur nen kondensator und widerstand dahin. zum testen hats
>gereicht.

Wenn man mit 60MHz rausgeht und eine Grenzfrequenz von 20k nutzt, hat
man immerhin 7 Oktaven an Headromm zur Dämfung. Klar, muss reichen.
Autor: TheMason (Gast)
Datum:

aber 7 oktaven bei einem filter erster ordnung (6dB/okt) macht dann auch
nur 42 dB :-)
also das signal sah auf dem scope schon echt mies aus, aber zum testen
hats gereicht ...
als ich dann den ersten codec drangeflascht hab hatte sich da thema
klangqualität per pwm erstmal erledigt ;-)
Autor: zrtr (Gast)
Datum:

Interesse hätte ich auf jedem Fall am projekt bzw. an den Platinen, da
ich mich mit FPGA schon lange auseinander setzten will.

Tolle Idee
Autor: Pauli (Gast)
Datum:

>als ich dann den ersten codec drangeflascht hab hatte sich da thema
>klangqualität per pwm erstmal erledigt ;-)
Sag das mal den Audiophilen mit ihren 1-Bit Wandlern.
Autor: TheMason (Gast)
Datum:

>Sag das mal den Audiophilen mit ihren 1-Bit Wandlern.

na ja ... es geht bei dem projekt ja immerhin um einen dsp und weniger
den wandler. aber nen 8 bit pwm klingt sicherlich schlechter als nen
codec ;-)
und wenn man dreieck nicht von sinus unterscheiden kann (wie bei dem
8bit pwm) dann ist ein codec doch schon um klassen besser.
Autor: 123 (Gast)
Datum:

versuch mal ein delta sigma DA Wandler statt einer PWM.
Xilinx hat ein appnote dazu.
Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

Soo ... es ist mal wieder Zeit den alten Thread hervorzukramen und meine
Undercover-Works zu präsentieren ....

Das komplette Projekt befindet sich auf einem (fast) komplett
selbstgeroutetem Board und bietet :

 - Spartan 3 - 400 (TQFP144)
 - 1 MByte SRAM (15ns)
 - AVR ATMega644p mit 20MHz
 - Audio-Codec
 - MIDI-Schnittstelle
 - div. Stiftleisten

Auf der Trägerplatine die das Audioboard beherbergt befinden sich neben
den Anschlüssen für Audio, MIDI, RS232 und USB (nur für Stromversorgung)
außerdem noch ein SPDIF Transmitter nebst optischem Transmitter, ein
DataFlash und ein I2C EEProm. Auf einer Huckepack-Platine befindet sich
ein 128x64 EA-DOG Display inkl. Touch-Panel und ein weiterer AVR (dieser
übernimmt nur die Erfassung der Berührungen auf dem Touch-Panel sowie
die Helligkeitseinstellung der Hintergrundbeleuchtung sowie 2 weiterer
LED's [wobei der AVR später noch für andere Sachen gebraucht wird,
allerings nur reine UI Aufgaben])

Die Software (bzw Hardware) des FPGAs übernimmt dabei folgendes :

 - Bearbeitung von Audio
   - Filtern, Mischen, Verstärken/Abschwächen
   - Erzeugen von Audio-Signalen
   - Verzögern von Audio-Signalen
   - RMS-Wert von Eingängen und Ausgängen
   - Speicherung (für Scope)
 - Ansteuern des Displays
   - Zyklisches wiederholen des Frame-Buffers
   - Grafik-Operationen wie Rechtecke oder Bitmaps kopieren

Die Software des AVR's übernimmt folgende Aufgaben

 - Berechnen von Filterkoeffzienten (später werden diese aus dem
DataFlash gelesen)
 - Framework für modulares System mit komplexen Blöcken (z.b. Equalizer,
Chorus, Delay, Oszillator, ADSR-Hüllkurve, Envelope-Follower usw)
 - Steuerung der Module per MIDI
 - Steuerung der Module per Grafik (Touch-Panel)
 - Kommandointerpreter
 - GUI, basierend auf den Display-Funktionen des FPGAs

Es ist noch nicht alles 100% fertig (speziell die Funktionen des
DataFlashs müssen noch weiter getestet werden bzw. sind gerade im Umbau)
aber prinzipiell (und auch in echt ;-)) funktioniert alles
zufriedenstellend.
Z.z. arbeite ich daran die vorher berechneten und im DataFlash
abgelegten Koeffizientensätze durch die Filterkoeffizientenberechnung zu
ersetzen, da das berechnen eines Filtersatzes (optimiert!!) ca 1.5ms
dauert, und ich aufgrund von Speichermangel (der 644P ist zu ca 85%
voll) einige Daten-Aufgaben ins DataFlash auslagern kann was dann ca
16KB freien Flash gibt (gäbs dochmal schon einen ATMega1284P zu kaufen
seufz).

Hier mal ein paar Fotos von dem Board ...

Wenn ich die Software fertig habe werde ich das Projekt (sofern
interesse besteht) hier reinstellen.
Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

das hauptmenü ...
Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

die hauptplatine auf der trägerplatine ...
Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

drahtverhau par excellence ...
Autor: TheMason (Gast)
Datum:

und nochmal eine seitenansicht ....

in kürze folgen audio und videos ... (wahrscheinlich auch auf youtube,
weil 1MB große videos nicht viel hergeben :-)

so. und nun hoffe ich das vllt noch ein paar leute interesse an diesem
projekt bekommen :-)
Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

öhm .. seitenansicht ...
Autor: Gast (Gast)
Datum:

Schön!
Autor: TheMason (Gast)
Datum:

wäre noch schöner wenn leute interesse an diesem projekt hätten. dann
würd sich auch eine veröffentlichung in einem weiteren artikel (ist ja
auch nicht wenig arbeit) lohnen ...
Autor: Markus ---- (mrmccrash)
Datum:

Glück Auf!

Ich verfolge den Thread schon seit einiger Zeit. Mir fehlt es leider an
der passenden Hardware sowie Kenntnissen zu DSP und FPGA, um hier aktiv
mitzuwirken.

Momentan arbeite ich an einer nicht weit entfernten Baustelle, einem
8in/8out MIDI-Interface mit AT91SAM7S. Hier hängt es noch an passenden
UARTs für den SAM7...

Ich könnte mir aber Vorstellen, dass man mit dem SAM ein
MIDI/Audio-Interface gestaltet, welches dann den FPGA direkt ansteuert.

Ein anderer Gedanke:
Könnte man die I2S-Schnittstellen nicht auch direkt an eine
PCI-Soundkarte anflanschen, wie z.b. SoundBlaster Live!/Audigy o.ä.?

_.-=: MFG :=-._
Autor: Gast (Gast)
Datum:

Wie sieht es denn mit der Verfügbarkeit von Platinen aus? Kann man die
erwerben?
Autor: TheMason (Gast)
Datum:

@marcus

mein (für mich) erklärtes ist es auch das ich an den fpga einen arm7
flansche. da der arm7 den ich anpeile (von atmel) auch die i2s
schnittstelle beherrscht wäre es ein leichtes auf dem fpga ein 2.tes i2s
interface zu implementieren das der arm7 auch als soundquelle dienen
kann.

mit der passenden hardware sollte es aber nicht so das thema sein. wenn
sich genügend leute finden kann man für die platinen und die bauteile
bestimmt eine sammelbestellung organisieren. bis auf die
spezialbausteine (spannungsregler, platform-flash, speicher, codec,
quarzoszillator, und den 74lvc07 die ganzen teile bekommt man am ehesten
bei digikey oder wenn man z.b. bei csd nachfragt)  sind alle bauteile
bei reichelt beziehbar (inkl. display und touch panel).
die platine kostet mich einzeln bei q-pcb ca 31 euro.
zur not reicht es auch wenn man irgendwo ein spartan3 starterkit
herbekommt und sich einen codec oder wahlweise a/d und d/a wandler
organisiert. die restlichen bauteile sind dann ebenfalls einfach bei
reichelt zu bekommen.

>Ein anderer Gedanke:
>Könnte man die I2S-Schnittstellen nicht auch direkt an eine
>PCI-Soundkarte anflanschen, wie z.b. SoundBlaster Live!/Audigy o.ä.?

ich weiß nicht ob man das auf dem foto gut erkennen kann, aber ich hab
da noch einen optischen transmitter dran nebst cs8406 damit ich die
audio-daten direkt digital ausgeben kann.
denkbar wäre es sicherlich, aber ich wüsste nicht was das bringen sollte
... wenn man die soundkarte als sound-quelle nutzen möchte wäre spdif
der universellere weg. solange man BCLK, LRCLK und entsprechend
SDIN/SDOUT findet sollte das kein thema sein. aber man bräuchte dann
eben immer einen pc.
Autor: TheMason (Gast)
Datum:

@gast

ich habe selbst noch keine sammelbestellung oder dergleichen organisiert
aber wie gesagt : wenn sich genügend leute finden, und jemand anderes
die sammelbestellung der spezialbauteile macht kann man gerne darüber
reden.
ich hatte selbst mal bei sander angefragt ob man die bauteile über ihn
beziehen kann, aber bisher noch nix gehört. vllt trigger ich da nochmal
an.
vorausgesetzt es finden sich genug leute dafür ...

ich hab wie gesagt bei q-pcb für eine platine 31 € irgendwas bezahlt.
müsste mal schauen wie teuer die platine bei 10/20 stück wird.

eine andere möglichkeit wäre wenn man irgend einen bestücker findet der
die dinger herstellt und man das ganze über einen der shops hier
vertreibt. wäre der schönste, aber wohl auch aufwendigste weg denke ich.

zumal sich das fpga board auch universell einsetzen lässt (man muß ja
nicht den codec und die midi schnittstelle bestücken)
ich denke dabei an das mini-la projekt hier. dadurch das auf dem board
ein avr drauf ist wäre es sicherlich nicht uninteressant.

aber wie gesagt bin ich ja schon die nächste version am planen. da kommt
dann entweder ein xmega oder ein arm7 drauf. der arm7 hätte den vorteil
das usb direkt mit drauf ist.
aber die ganzen toolchains hab ich noch nicht am laufen (das war auch
der [vorgeschobene] grund warum ich erstmal das ganze mit einem avr ans
laufen gebracht hab). von daher muß das noch was warten.
Autor: Rene B. (themason) Benutzerseite
Datum:

eig. hatte ich gehofft das jemand anderes den 100. post zu diesem thema
macht, und ich nicht ein verzweifelungs-aufruf post machen muß.

also :

es gibt ein funktionierendes board, ich würde wenn sich genug leute
finden lassen eine sammelbestellung versuchen auf die beine zu stellen.
nun liegts an euch ob dieses projekt in der versenkung verschwindet oder
nicht.

das das projekt nicht ein 5-min wochenend projekt ist ist mir klar, aber
es kann doch wohl auch nicht sein das es so wenig leute gibt die mit
audio und uc/fpga zu tun haben oder ?!
Autor: Antti (Gast)
Datum:

wau, sorry, eh tut mir echt leid, das ich nicht den 100. post gemacht
habe,
na ja, den projekt habe ich irgendwie irgendwann angesehen, aber leider
aus irgendwelchen grund fast gleich vergessen.

na, ich werde schon was bauen wollen, eine neue hardware muss
es nicht gleich sein, habe schon zuviel FPGA boards, und wenns
schon was neues, dann auch richtig, mit gross genug FPGA

ok, aber versprochen, ich werde das projekt naher ansehen

Antti
Autor: Antti (Gast)
Datum:

wie versprochen: habe nach gesehen ein bishen:
das Quellcode datei (.gz)

1) fur MCU Leute: kein code fur den MCU dabei :(
2) fur DSP Leute: keine DSP source code? :(
3) fur HDL Leute: kein simulator testbench :(
4) fur SW Leute: ok, etwas delphi source code, aber na parameter uber
RS232 senden ist keine magie.

fazit: alle sind unglücklich weil sie nicht das sehen was sie
kennen/interesse haben.

na ich konnte auch keine doku sehen, da ich .ODS dateien
nicht öffnen kann. (und bitte, ich will kein openoffice!
auf meinen PC)

ok, nicht so schlimm, was interessantes ist schon da, aber
mit flühtigen uberblick nicht so richtig zu verstehen.

--
das DSP, was macht der mit EXTERNEN RAM ? ein audio DSP
sollte 1 clock per instruction laufen, da ist ext ram
ausgeschlossen.

wie werden die DSP algorithmen geschrieben?
sollte ein DSP assembler da sein?
es ware SEHR gut das DSP mittels delphi program
und SignalLab komponent zu simulieren!

ok, ich gucke spater noch ein bishen

Antti
PS ist auf jeden fall zu fruh eine PCB zu bestellen fur den projekt!
Autor: Rene B. (themason) Benutzerseite
Datum:

sry das ich erst jetzt antworte :

zu 1) es gibt einen uC code, aber dieser ist (wie der vhdl-code) nicht
wirklich dokumentiert. und bei der masse an code lohnt sich eine doku
erst wenn sich genügend leute dafür interessieren. für mich alleine
brauche ich keine doku, da das ganze sehr zeitaufwendig ist (hatte ich
aber auch schon in diesem thread geschrieben)

zu 2) einen "richtigen" dsp code kann man aus den delphi-test-programmen
entnehmen, da der code dort über die serielle schnittstelle in den fpga
geladen wird. beim uC läuft das ganze ähnlich, wobei mein derzeitiger
uC-Code den dsp modular handelt, sodaß uC-seitig nur code-schnipsel in
den dsp geladen werden, die dem audio-system dadurch einen modularen
"touch" geben.

zu 3) testbenches sind für die einzelnen cores vorhanden. bei meiner
überarbeitung gibt es weitere testbenches, allerdings keines für den
gesamten dsp, da ich mittlerweile auf den ise-simulator umgestiegen bin.

zu 4) irrtum, es sind keine "parameter", sondern schon programme,
koeffizienten und daten, so wie sie von dem uC aus in den dsp
geschrieben werden. die rs232 schnittstelle ist lediglich ein ersatz für
den uC, da zum zeitpunkt des enstehens des artikels ich mir die frage
gestellt habe : muß ein uC immer vorhanden sein um wenigstens mal ein
demo mit dem dsp laufen lassen zu können (daher auch noch kein
uC-quell-code, da der artikel nicht up to date mit dem aktuellen stand
ist).

ich habe mich für .ods entschieden weil ich eben kein excel auf meinem
rechner habe und ich das ganze mit möglichst freien tools erstellen
möchte.

der dsp arbeitet aus dem grunde mit einem externen ram, da sich
delay/chorus nicht mit dem internen fpga-block-rams realisieren lassen.
weiterhin benötigt das aktuelle design für einen "befehl" (z.b. biquad
durchrechnen) deutlich (!!) mehr takte als die original-variante, da der
32x32 multiplizierer serialisiert worden ist (das spart enorm ressourcen
auf dem fpga, und macht viele andere dinger überhaupt erst möglich). das
durchrechnen eines biquads braucht ca 80 takte (also 5 multiplikationen,
4 additionen, clipping, und das shiften der taps im blockram mit
wahlfreien adressen).

zum dsp-assembler :

im aktuellen uc-quellcode ist ein dsp-assembler/disassembler/memory dump
tool mit drin, ein tool mit dem man die audio-module erstellen,
modifizieren (also die verbindungen, und die steuerwerte) und auflisten
lassen kann.
das modular-system wie ich es mir vorgestellt habe läuft also bereits,
selbst wenn man es nur per "kommando-zeile" steuern kann.

zu früh für ein pcb ist es auf keinen fall, eher schon fast zu spät, da
das projekt eben in der zwischenzeit auf meinem mist "gewachsen"
(wortwörtlich) ist, und ich wie oben schon beschrieben habe am
scheideweg stehe, da noch mehr features eine doku nahezu unmöglich
machen, da es wirklich sehr viel geworden ist.

ich werde bald mal weitere audio-demos und evtl. video-demos von dem
projekt einstellen damit du dir mal ein bild davon machen kannst.
den quellcode (uc&vhdl) werde ich mal grob (!!) kommentieren und hier
hochladen. vllt wird dann einiges klarer.
evtl. überarbeite ich noch den artikel bzw. setze einen neuen auf. muß
ich mal schauen.
es ist halt nur so das ich eben nicht möchte das die ganze arbeit dann
für die "nüsse" ist. dafür würd ich die zeit dann lieber in das projekt
selbst stecken. daher auch diese etwas ausführlichere erklärung zum
aktuellen stand, damit man versteht warum ich einerseits etwas genervt
bin (eben das in 2 jahren kaum etwas zusammen zustande gekommen ist) und
ich bisher auch nicht viel zeit in die doku gesteckt habe (wie gesagt
weiß ich eben wie das teil funktioniert, und die audio-demos die ich
bisher eingestellt habe sind eben nur ein ausschnitt der funktionen des
dsps) weil eben so wenig resonanz da ist und ich dadurch eher im stillen
für mich gewerkelt habe.
Autor: Patrick Weinberger (seennoob)
Datum:

Hallo Mason

Wirklich interessante arbeit bis jetzt !

1.) Wär stat einem ARM7 nicht der cortex M3 interessanter ?
Aber ich weiß nicht wie es mit der Verfügbarkeit und Programmierung
aussieht.

2.) Du könntest ja mal Doxygen drüber laufen lassen über den Code und
noch ein paar Kommentare dazu machen ...

Aber im großen und ganzen weiter so !!!


MFG
Autor: Rene B. (themason) Benutzerseite
Datum:

zu doxygen mal eine frage :

gibt es ein tool mit dem ich die doxygen-kommentare als grundgerüst
automatisch erzeugen kann und dann in einem text-editor mit "leben"
fülle ?
also das z.b. funktionen mit einem doxygen-header versehen werden, am
dateianfang automatisch ein doxygen-abschnitt zur kommentierung erzeugt
wird ?
Autor: Patrick Weinberger (seennoob)
Datum:

Wenns um Doxygen geht muss ich leider passen arbeit selbst erst seit
kurzen damit!

MFG
Autor: Antti (Gast)
Datum:

ist das dsp assembler in SVN nur oder in snapshot zip auch?
den SVN version hatte ich leider nicht uberpruft, nur den
snapshot kurz angeschaut

Antti
Autor: Rene B. (themason) Benutzerseite
Datum:

im snapshot vom svn ist ein "aktuellerer" stand ... aber immer noch
nicht der  aktuellste ... der muß erst noch kommentiert werden, da ich
den wegen dem pcb überarbeitet hab. und dabei ist auch eben ein system
bei rausgekommen das einen assembler für den dsp sowie eine modulare
steuerung erlaubt.
ich werde diesen mal bei gelegenheit im svn updaten.
Autor: Patrick Weinberger (seennoob)
Datum:

Mason gibts schon wieder was neues von deinem Projekt ?

MFG Patrick
Autor: Rene B. (themason) Benutzerseite
Datum:

ich bin dabei eine simulation des ganzen zu schreiben um a) besser
testen zu können und b) um den leuten die zwar interesse aber keine zeit
haben einen vorgeschmack auf das zu geben was man mit dem dingen machen
kann.

hardwaremäßig bin ich dabei den atmega644p durch einen
atmega1281/atmega2561 zu ersetzen da es ja leider mit dem atmega1284p ja
leider noch ne weile dauert, obwohl ich diesen viel lieber eingesetzt
hätte (16k ram, offiziell 20mhz, kleines gehäuse, pinkompatibel usw).

ansonsten halt immer noch auf der suche nach leuten die mitmachen
wollen.

es würde mich halt auch mal interessieren ob die leute die damals
interesse bekundet haben dieses immer noch haben.
es ist halt einfach nur so das ich das ganze freigeben und überarbeiten
würde (im sinne einer doku usw) wenn sich eben genügend leute finden,
weils eben in diesem stadium des projektes doch sehr zeitaufwendig ist
das alles nachzupflegen, und ich es für mich selbst nicht unbedingt
brauche.
Autor: Rene B. (themason) Benutzerseite
Datum:

Es wird mal wieder Zeit meine Arbeiten zu präsentieren :

Anbei mal ein Youtube-Link des derzeitigen Standes.
Es ist der DAP mit Touch-Display als Effekt Gerät zu sehen.

http://www.youtube.com/watch?v=LUvqG7hGzsg

Viel Spaß damit.

PS. Als nächstes folgen Synthesizer Demos.
Autor: Rene B. (themason) Benutzerseite
Datum:

Wie angedroht nun noch das Synthesizer-Demo :


http://www.youtube.com/watch?v=lSO267qKo14
Autor: Lennart (Gast)
Datum:

Hallo,

erstmal respekt für das bisher geleistete!!!

ich lese mich selber erst seit ein paar tagen in das thema FPGAs ein und
finde das ganze super interessant aber leider auch extrem abschreckend
wenn man sich die datenblätter der einzelnen verfügbaren FPGAs so
anschaut. ich würde gern helfen allerdings wird ein noob wie ich da kaum
was bringen.

eines noch .. gib nicht auf und mach ungebremmst weiter, auch wenn nur
benig beteiligung herscht, es gibt sicher zig leute die hier immer mal
wieder reinschauen und nur nicht wissen was sie sagen sollen .. wer weiß
.. evtl. sind sie ja nur sprachlos :)

gruß .. lennart
Autor: Ralf H. (heschdy)
Datum:

sprachlos..... ;-)

wirklich ein sehr schönes projekt. beschäftige mich momentan mit einer
risc prozessor implementierung auf einem fpga. sowie eine wenig mit
filterbänken mit fir filter sowie ansatzweise wellen digital filter.

Viele Grüße und weiter so....
Autor: Rene B. (themason) Benutzerseite
Datum:

erstmal danke für das feedback. freut mich das mal jemand einen
kommentar zu den videos abgibt und danke für das lob.
ich werd garantiert an dem projekt weitermachen, zumal ich dieses
projekt (ein modulares audio-system) schon seit ca 10-15 jahren vorhab,
aber erst ca 2002 die mathe-grundlagen soweit zusammenhatte (damals hab
ich eine reine software-lösung gehabt) und seit 2005 mich mit fpga's
befasst hab sodass sich erst seit ca 2006 soweit war eine erste version
der modularen audio-engine implementieren konnte.

@lennart

ob noob oder nicht, die grundlagen würde ich schon erklären. bzw
hilfestellung geben um das projekt verstehen zu können. das einzige was
mich im moment echt davon abhält ne anständige doku zu machen ist
einfach der aufwand der sich bei nur wenigen leute leider eben nicht
lohnt, da ich das projekt (dadurch das ich da eben schon so lange dran
sitze) in und auswendig kenne und es doch schon recht umfangreich ist
(es ist ja nicht nur der fpga, sondern auch die uc-software die sehr
umfangreich ist).

@ralf

also ein risc-prozi würd mich auch noch interessieren (vor allem weil
ich zu der implementierung eines riscs wahrscheinlich noch etliche
fragen hätte, obwohl ich das prinzip schon verstanden habe, aber an
einer umsetzung wohl scheitern würde (jedenfalls bei dem was ich mir als
ziel setze :-))


es wird bei youtube noch weitere videos geben. erstmal ein video mit
einer etwas anderen hardware (zumindest den ui-teil, da gibts dann eine
spezielle ui für den synthesizer mit potis, schaltern und leds). ein
weiteres video wird die pc-schnittstelle zeigen (mit der sich wirklich
ne ganze menge machen lässt, da in den beiden synths bzw systemen ein
recht leistungsstarker kommando-interpreter implementiert ist). außerdem
wird es noch ein video geben mit einer art "making of" bzw erklärung was
da genau in der kiste läuft und wo etwas zu der hardware gesagt wird.

bestimmte software-teile werde (bzw hab ich schon) hier in der
code-sammlung eingestellt. unter anderem der besagte
kommando-interpreter (der in einer älteren version schon hier
existiert). aber auch die gui werde ich wohl mal "extrahieren" und in
der code-sammlung einstellen. weitere software-teile werden noch folgen.

evtl wird auch der artikel "Audio-DSP mit Spartan3 FPGA" überarbeitet.
alles mal schauen wie sich was ergibt.

jedenfalls danke noch für das feedback.
Autor: Rene B. (themason) Benutzerseite
Datum:

wie gestern angedroht folgen nun ein paar weitere bilder des
audio-prozessors. diesmal im synthesizer gewand. allerdings sind das
erstmal nur die bilder. diese sind im artikel "audio dsp mit spartan 3
fpga" zu finden. videos wie live an der kiste geschraubt wird folgen
wenn das gehäuse umlackiert und alles soweit eingebaut ist.

http://www.mikrocontroller.net/articles/Audio-Projekt
Autor: Rene B. (themason) Benutzerseite
Datum:

noch eine drohung wahrgemacht ....

der grobe aufbau der hardware als youtube-video (allerdings ohne
akustische erklärung, sondern nur mit den you-tube anmerkungen).

http://www.youtube.com/watch?v=rVAdz9dzrIg
Autor: Rene B. (themason) Benutzerseite
Datum:

So. Da ich ein sturer Hund bin Frage ich nochmal nach :

 - Gibts Leute die an einem solchen Projekt mitarbeiten möchten ?
 - Gibts Leute die diese Platform als Bausatz kaufen würden ?

Die zweite Frage zielt ein wenig darauf ab das ich überlege die Platine
als Bausatz (vormontiert) verkaufen zu wollen. Das ist erstmal eine
grobe Idee, weil wenn nicht genügend Leute Interesse an so einem Bausatz
hätten wäre der Aufwand zu groß, bzw wirds mir zu teuer.

Was bietet diese Platform ?

Es ist im Prinzip ein ganz normales FPGA-Board, nur etwas spezieller auf
Audio zugeschnitten.
Bei dem momentanen "Flagschiff" beinhaltet das Board 2 Stereo Codecs
(einen TLV320AIC23B und jeweils einen CS4344 und CS5343), 16MB SDRAM,
einen AVR ATMega2561, µSD Card Slot, ein Atmel DataFlash, ein serielles
EEProm sowie RS232, MIDI und div. Stiftleisten im 2,54mm Raster.

Es lassen sich damit Audio-Anwendungen zusammenbauen, aber auch andere
Applikationen sind denkbar (beispielsweise Logic-Analyzer,
Mini-Computer, ...)

Zu den Audio-Anwendungen die ich bereits realisiert habe :
 - Synthesizer
 - Effektgerät
 - kl. Mischpult

Zu dem was noch kommen kann/wird
 - div. Syntheseverfahren (additiv, FM, Granular)
 - Harddiskrecording (SD/CF/HDD)
 - Kompressor/Expander


Wie siehts aus mit Doku ?

Im Moment gibt es noch keine, da ich erstmal rausfinden möchte ob
überhaupt Interesse an einem solchen Board besteht. Dokumentation für
mich selbst macht keinen Sinn, aber wenn genügend Leute so ein Board
haben wollen wird diese ebenfalls noch erstellt.

Wie teuer wird das ganze ?

Dazu kann ich leider noch nichts sagen da es in erster Linie davon
abhängt wieviele Leute so ein Board haben möchten. Der Teuerste Posten
ist und bleibt der FPGA mit 25€ (bei Reichelt, Einzelstückzahlen) und
dieser wird auch nicht viel günstiger (selbst in Stückzahlen bei Digikey
gibts den nicht wirklich unter 19€). Das zweit-teuerste ist die Platine,
gefolgt vom AVR und den Codecs. Alles in allem dürften es um die 100€
Materialkosten sein (wahrscheinlich weniger, da in Stückzahlen die
Preise für Platine, Codecs, AVR eher runtergehen als die des FPGA's)
Autor: 7tupel (Gast)
Datum:

Hi,

ist jetzt leider schon eine weile her seit zu dem Projekt was
geschrieben wurde. but anyway. Ich hätte auf jeden Fall Interesse an dem
Projekt. Zunächst leider nur aus Anwendersicht, da ich mit
Mikrocontrollern im Allgemeinen und mit FPGAs im speziellen wenig/keine
Erfahrung habe. Ich könnte dem Projekt nur soweit helfen, dass ich weiß
welche Features für die Praxis sehr vorteilhaft wären (ich bin
nebenberuflich als Veranstaltungstechniker/Tontechniker unterwegs) Daher
kenne ich auch die Systeme die im professionellen Umfeld eingesetzt
werden und leider auch deren Preise :-( Deshalb bin ich sehr an einem
openSource Projekt interessiert.
Kann man im aktuellen Stadium einen mehrkanaligen Equalizer realisieren
(also zb. auf 12 Frequenzbändern?). Wie hoch können die
Samplingfrequenzen aktuell maximal sein (für einen in der Praxis
tauglichen Einsatz sind 48kHz oder mehr zwingend nötig (nicht nur im
proAudio Bereich))

Wäre super wenn du dich hier (oder per twitter @7tupel) bei mir melden
könntest.

lg 7tupel
Autor: Rene B. (themason) Benutzerseite
Datum:

@7tupel

Das Projekt "lebt" noch. Allerdings bin ich mehr für mich alleine am
werkeln, da sich eben nicht genügend Leute für eine Sammelbestellung
einer der Varianten finden lassen.
Ich fang mal von hinten an ...
- 48kHz kein Problem (läuft zur Zeit auch)
- mehrere Eingangskanäle kein Problem (habe max 4 mono bzw 2 stereo
ein/ausgänge)
- 12 Kanal Equalizer pro Kanal wird bei dem derzeitigen Design und
verwendeten FPGA schwierig.

Ich plane ohnehin ein Redesign allerdings noch ohne konkrete
Vorstellungen, da das Projekt im Moment etwas hinten ansteht.
Das einzige was ich zur Zeit mache ist zu versuchen meinen Synthesizer
damit endlich mal fertig zu bekommen. Ich hab einfach zuviele Ideen die
ich da reinprügeln will :-)), daher muß ich mal aufräumen.

Für Anregungen, Erweiterungen und Kritik bin ich aber dennoch offen.
Ist halt nur schade das man nicht einmal ne Sammelbestellung hinbekommt.

Du kannst mir auch gerne per uc.net schreiben. Bin ja hier angemeldet.
Bei twitter bin ich nicht angemeldet.
Autor: Maik M. (myco)
Datum:

Ich bin an diesem Projekt auch sehr interessiert, da ich mit Audio-DSP
schon viel auf PC-Basis gearbeitet habe. Hatte bisher nur noch nicht mit
FPGAs zu tun, aber wollte damit irgendwann mal anfangen, allerdings ist
der Einstieg bei diesen Dingern nicht so leicht.

Schön wäre es, wenn das Projekt (das neue Board) modular aufgebaut wäre
ähnlich wie bei den Midiboxen, sodaß man eine Core-Platine hat, auf der
nur das nötigste ist, also FPGA und alles was er zum laufen braucht +
Codecs, und dann eigentlich nur noch Header. Das reduziert auch den
Preis für die einzelnen Projekte, weil man für bestimmte Projekte nicht
ständig ein komplettes Board mit unnützen Kram braucht.

Was für mich allerdings noch wichtiger wäre, ist eine Art Anleitung wie
man ein Demoprojekt (zB. einfache Lautstärkeregelung) erstellt und auf
das Board überträgt (und man sollte da nicht vergessen zu erwähnen, was
man dafür alles benötigt).
Autor: Rene B. (themason) Benutzerseite
Datum:

@maik

Das neue Board ist sozusagen ein Core-Board mit FPGA, SDRAM, Codecs,
Schnittstellen, uC, SD-Karte, EEProm, DataFlash und viiiiielen Headern.
Da wäre nichts weiter modular zu machen. Es bleibt im prinzip jedem
selbst überlassen ob er Potis, Encoder, Subsystem mit Touchdisplay oder
oder oder anschließt.

Allerdings ist es halt auch recht anspruchsvoll zu löten bzw zu
programmieren. Wenn ich wirklich wüsste das ich sagen wir 10 Leute
zusammen bekomme bzw 10 Bausätze, dann könnte man echt über eine
Sammelbestellung nachdenken, bzw würd das ganze halt mal durchrechnen.
Allerdings sind die Bauteilkosten auch sehr hoch.
Alleine für die Bauteile gehen bestimmt an die 100 Euro drauf. Platine
auch nochmal ca 50 Euro. Und wenn ich jemandem eine Platine
zusammenlöten soll auch nochmal ein paar Euros.
Im Prinzip ist diese Platine ja auch nicht auf Audio beschränkt, da fast
alle Pins des FPGAs nach draußen geführt sind (genauso wie beim uC).
Von daher find ich es schon etwas schade das da so wenig Resonanz ist.
Aber einen genauen Preis kann ich eben nicht nennen, da es sehr stark
davon abhängt wieviele mitmachen. Und wenn ich sagen würde zw 200-250
Euro für alles komplett aufgebaut wäre es zuviel. Das dann aber nur evtl
2-3 Leute mitmachen steht dann auf einem anderen Blatt.
Na ja. Mal schauen. Vllt finden sich ja noch genügend Leute. Dann würde
wie schon mehrfach beschrieben auch eine Anleitung bzw eine ausführliche
Dokumentation Sinn machen, zumal der eigentliche DSP sehr einfach zu
programmieren ist.

Gruß
Autor: Mo Tupel (7tupel)
Datum:

also wenn sich noch ein paar mehr Leute finden und das Projekt (ins
besondere auch die Doku) voran kommen, dann wäre ich durchaus bei einer
Sammelbestellung mit dabei.
Ich werde auch bei mir im hackerspace (www.hackerspace-ffm.de) einmal
rumfragen ob dort noch jemand Interesse hat.

lg 7tupel
Autor: Rene B. (themason) Benutzerseite
Datum:

@mo

ich hoffe ja immer noch darauf das sich noch ein paar Leute finden.
(selbst nach fast 4 Jahren geb ich die Hoffnung nicht auf :-)))
Dann würde ich mir auch die Mühe der Doku machen, Code-Schnipsel und und
und bereitstellen. Nur für mich alleine macht es wenig Sinn. Ich kenne
das System ja. Und nur um dann nen PDF zu haben das beim nächsten
Redesign (tlw) hinfällig ist lohnt es sich nicht.

Ich habe mal im Unterforum "Markt" einen Thread erstellt wo man sich
eintragen kann.

Beitrag "[S] Leute die an einem Audio-Projekt interessiert sind"

Diejenigen die ich anschreiben kann (Anmeldung) werd ich mal antexten,
und dann mal schauen wieviele Leute ich zusammenbekomme. Ich denke ab 10
Leuten wirds interessant.

Wie gesagt : Doku würde ich machen. Zumal durch das Redesign vor ca 2
Jahren hat man auch mehr Platz und mehr Features die dann ohnehin
Dokumentiert werden müssten.
Autor: Michael (Gast)
Datum:

Ich glaube, du solltest ein paar mehr DSPs in so ein board stopfen, dann
können es auch Leute verwenden, die Video oder anderes damit machen
wollen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net