PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : der Dirigent: Mikrocontrollergesteuerter "Vorverstärker"



Marcus.S
14.04.2013, 11:26
Guten morgen zusammen!

Angeregt durch Usuls 4-Kanal LS-Steller ist in den letzten Wochen eine Idee in meinem Kopf gewachsen, die ich euch nicht vorenthalten möchte.
Kurz zu den Voraussetzungen:


mindestens zwei analoge und eine digitale Quelle
vollaktives System, Faltrechner
der Faltrechner soll auch zur Musikwiedergabe genutzt werden

Der LS-Steller soll durch einen Arduino (http://www.arduino.cc) gesteuert werden. Ich habe mich gegen den Selbstbau der Controllerplatine entschieden, weil ich zwar Elektronik- und Programmiererfahrung habe, aber bisher noch nichts mit Microcontrollern gemacht habe. Zudem sind die Arduinoboards sehr günstig und bringen fast alles mit, was man braucht. Ein weiterer Vorteil ist die freie Verfügbarkeit verschiedenster Bibliotheken z.B. zur Ansteuerung von Displays.

Da man mit einem Microcontroller deutlich mehr machen kann, als nur Usuls LS-Steller anzusteuern, steht für das fertige Gerät zusätzlich folgendes im Pflichtenheft:


Anzeige von gewähltem Eingang und eingestellter Gesamtlautstärke über ein Grafik-OLED-Display. Die Anzeige soll, wenn für einige Sekunden keine Funktion geändert wird, ein Logo anzeigen und leicht abgedunkelt werden. Wird eine Funktion betätigt, wechselt die Anzeige wieder in den Infomodus bei voller Helligkeit. Ich muss dazu sagen, dass diese Art, ein Display zu nutzen, nicht meine Idee ist. Das habe ich mir bei der MalValve preamp four line (http://www.malvalve.de/p1_6.html) abgeschaut. Allerdings wird mein Display ganz sicher nicht blau.
Wo ich grad dabei bin: keine blauen LEDs :D
Eingangswahl für analoge Quellen per Relais. Um die einzige Digitalquelle als Audioquelle auszuwählen soll der Arduino den Faltrechner ansteuern, welcher dann vom analogen auf den digitalen Eingang des Audiointerfaces umschaltet. Da das aktuell vorgesehene Audiointerface je acht analoge ins- und outs bietet denke ich noch darüber nach, auch die analoge Eingangswahl über den Rechner zu machen.
Integration einer 8-fach Verteilersteckdose. Vier der Anschlüsse sollen einen (über den Controller) zuschaltbaren Softstart erhalten.
Jeder der Anschlüsse wird über Relais geschaltet, sodass beim Ausschalten des Vorverstärkers die angeschlossenen Geräte stromlos geschaltet werden.
Eventuell implementiere ich in der Software die Möglichkeit, jeden Anschluss einzeln als permanent zu definieren, sodass Geräte, die auf Wegfall der Versorgung empfindlich reagieren, trotzdem angeschlossen werden können.
Die Aktivierung der einzelnen Anschlüsse soll nicht gleichzeitig erfolgen, sondern jeweils mit einer gewissen Verzögerung zum Vorhergehenden. Wenn ich nämlich in unserer Wohnung die komplette Anlage auf einen Rutsch einschalte führt mein nächster Gang zum Sicherungskasten.
Separate Sicherung für jeden Anschluss.
Jeder Anschluss soll einzeln komplett deaktivierbar sein.
Boot und Sleepmode des Faltrechners werden vom Controller ausgelöst.
Möglichkeit, verschiedene Profile auf dem Faltrechner vom Controller aus umzuschalten. So kann ich im Normalbetrieb auf ein Display am Faltrechner verzichten.
Bedienung des Controllers entweder über zwei Drehimpulsgeber am Gerät (zum Bedienkonzept schreibe ich später etwas), per Fernbedienung und - wenn ich das hinbekomme - per iOS-App.
Räumliche Trennung von Audio-, Regel- und Schaltteil durch separate Gehäuse.
Getrennte Versorgung von Audio- und Regelteil.
Werte, wie

Benennung der Eingänge
Verzögerung zwischen den Stromanschlüssen
etc.

sollen parametrisierbar sein.
Fast vergessen: der komplette Audioteil wird symmetrisch ausgelegt. Aber: bei Verwendung von Usuls Stellern ist dennoch kein Studiopegel möglich. In meinem Setup ist das nebensächlich. Sollten sich Nachbauer finden, die Studiopegel benötigen, müßten die LS-Steller entsprechend modifiziert oder z.B. durch Relaissteller ersetzt werden. Das zieht allerdings auch eine Modifikation des Codes für den Controller nach sich.

Der Begriff "Vorverstärker" steht schon im Titel in Anführungszeichen, weil ich aktuell noch davon ausgehe, dass ich keine Pufferstufen für den Audiosignalweg benötige. Sollte ich mit dieser Einschätzung falsch liegen, kommen noch entsprechende Buffer hinzu.

Ich glaube, das war es erstmal. Die Grundkomponenten sind bereits bestellt, sodass ich im Laufe der kommenden Woche mit dem Versuchsaufbau starten kann. Ich werde euch über den Forstschritt auf dem Laufenden halten.

Wichtig: Das gesamte Projekt steht unter einer Creative Commons by-nc-sa 3.0 Lizenz (http://creativecommons.org/licenses/by-nc-sa/3.0/). Ich habe mich für diese Lizenzform entschieden, weil ich jedem den Nachbau und die Veränderung des Ganzen ermöglichen, eine gewerbliche Nutzung aber ausschließen möchte.
Da ich mich kenne und daher davon ausgehe, dass der Versuchsaufbau mit zugekauften Boards auf ewig bestehen bleibt, werde ich keine Platinenlayouts zur Verfügung stellen.

So, ich gehe jetzt arbeiten.

lg
Marcus

Audiovirus
14.04.2013, 13:51
Hallo

Leider weiß ich nicht ob Du die aktuelle Klang und Ton hast.
Da wird ein 100 Euro Mini Rechner bzw Musikserver zur Wiedergabe von Festplatte als Bausatz ermöglicht.
Das ganze könnte man mit so einem besagten 4 Kanal Vorverstärker kombinieren wie die es eben benötigst, nur mal als Hinweis.

SG Claus

Marcus.S
14.04.2013, 17:44
Hallo Claus und danke für den Tipp!

Die aktuelle K&T kenne ich und habe auch schon überlegt, statt dem Arduino den Raspi zu nehmen. Aber irgendwie gefällt mir "meine" Variante besser. Warum weiß ich auch nicht genau. Durchaus möglich, dass es daran liegt, dass das auf meinem Mist gewachsen ist ;)

lg
Marcus

Audiovirus
14.04.2013, 18:02
Ob Du Deine Variante verwirklichst oder was nachbaust, wäre mir schnuppe.
Es ist jedenfalls ein sehr interessantes Thema was ich vor 1-2 Jahren schon versuchte selbst zu stemmen, leider ohne Erfolg.
Ich arbeite in einer Firma die auch Gehäuse herstellt, deshalb auch so verlockend....

SG Claus

waterburn
14.04.2013, 18:05
Hallo Marcus,

ich sitze gerade an einem ähnlichen Projekt. Wenn dein Faltrechner einen Parallelport hat, kannst du auf den Arduino verzichten. Vorteil ist in diesem Fall, dass du die Software nicht komplett in C schreiben musst, sondern mit einer interpretierten Sprache wie Python oder TCL auskommst. Für die Ansteuerung des Parallelports braucht man zwar etwas inline C, dennoch ist das ganze deutlich weniger aufwändig als Microcontroller zu programmieren.

Gruß

waterburn

Marcus.S
14.04.2013, 19:05
Ich hab mich schon ein wenig in die Adruino IDE eingearbeitet. Die verwendete Sprache basiert auf Processing (http://www.processing.org). Viel weiter weg von C geht´s kaum ;)
Zudem bin ich mit nem integrierten Microcontroller vom Rechner unabhängig, sodass sich das Konstrukt für analoge Quellen auch als Stereo"pre" nutzen ließe.

Marcus.S
15.04.2013, 08:18
Und schon gibt es die ersten Neuigkeiten:


Das Kind hat nun, wie auch im Threadtitel zu lesen, einen Namen: "der Dirigent"
Ich habe gestern (naja, eher heute Nacht *g*) von Holger Barske einen Tipp für die Ferndbedienung erhalten: NetIO (http://netio.davideickhoff.de/). Das ist eine programmierbare Fernbedienung für iOS, Android und MacOS. Schaut es euch mal an, das scheint sehr vielversprechend und funktioniert dem Vernehmen nach tadellos.
Die Folge aus 2 ist, dass ich mich aller Wahrscheinlichkeit nach nicht mehr um eine andere FB-Lösung bemühen werde. Wir haben mehrere iOS-Geräte im Haus. Für Nachbauwillige sind gebrauchte iPod Touch aber für unter 100€ zu bekommen, gebrauchte Androiden liegen ähnlich.

Slaughthammer
15.04.2013, 16:47
Moin Markus,

Kann der Preamp auch als A/D-Wandler für analoge Quellen dienen? Man kann ja anscheinend eh digitale und analoge Quellen anschließen und zwischen diesen Wählen. Wäre cool, wenn man generell alle (digitalen und analogen Signale) hinten Digital ausgeben könnte. So ein Gerät suche ich noch. Dafür brauche ich keine Lautstärkeregelung...

Gruß, Onno

Marcus.S
15.04.2013, 17:36
Habe ich nicht vorgesehen, sollte sich aber recht einfach einbauen lassen. Ich halte das mal auf dem Schirm.

Space
20.04.2013, 09:29
Ich bin dabei ein vergleichbares Projekt zu realisieren:) und habe mir deshalb auch Gedanken gemacht.

Im PreAmp bei mir integriert ist ein DAC. Ein gepimpter Bausatz aus China. Neben den 4 möglichen analogen Quellen werden auch 4 digitale (SPDIF) geschaltet. Also die 'analoge' Quelle 5 (-8) ist der DAC und hier wird dann für Quelle 5-8 SPDIF für den DAC geschaltet. Geschaltet wird über Reedrelais, der Langzeitstabilität wegen. Ebenso ist der Pegelsteller mit Reedrelais realisiert.

Digitale Quelle 8 ist fest für den im PreAmp eingebauten ARM basierenden Linux Rechner vorgesehen. Ich werde aber nicht den Raspberry Pi verwenden. Die CuBox (http://www.solid-run.com/products/cubox) hat direkt einen (leider optischen) SPDIF Ausgang. Und bietet mehr RAM, IR Receiver und SATA Anschluss. Kostet aber auch etwas mehr, als der Raspberry. Ein Atom basierendes Bord....das bootet deutlich länger als ein Embedded Rechner, da ein Bios initialisiert werden muss und ist aufwändiger in der Stromversorgung und braucht viel Platz. Auch ist der Stromverbrauch deutlich höher als beim Raspberry oder der CuBox. Würde ich mir gut überlegen.
Ferngesteuert wird der MPD (http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki)auf dem Linux Rechner vom Smartphone oder Tablet.

The Alchemist
20.04.2013, 11:52
Ein Atom basierendes Bord....das bootet deutlich länger als ein Embedded Rechner, da ein Bios initialisiert werden muss .....

Also ich weiß nicht wie lange eine Cubox für das booten braucht, aber der RPI ist furchtbar lahm, zudem auch noch sehr divenhaft was die zusätzliche Hardware angeht (inklusive der SD Karten ohne die nix läuft....)

Auch dort muss eine Art Bios gebootet werden, was sich auf einer Partition auf der SD-Karte befindet.
Die Arm basierten Linuxe ( ich kenne nur die für den RPI) bringen dann noch ein paar negative Softwareüberraschungen mit, die u.U nicht ganz so leicht zu umschiffen sind.

Für mich ist es schleierhaft wie man den RPi für irgendeine Art von Hifi Anwendung empfehlen kann, ich hab das versucht und ganz schnell wieder gelassen...
Das Board ist nicht einmal Preiswert, weil man die gesamte Hardware noch zusätzlich kaufen muss.

Ausser wenig Strom und klein hat dieses Ding keine Vorteile; es ist einfach nur gehyped.
(Den RPI habe ich letzlich dafür genutzt, um mit DSL 384 große Downloads über Nacht laufen zu lassen)

Ich habe einen atombasierten Thin Client der startet Brutefir unter TinyCore sowohl von einem alten USB-Stick als auch vom internen NVRam um Klassen schneller.

Gruß

usul
21.04.2013, 18:07
Also wenn es BruteFIR sein soll, dann geht das nicht mit dem Raspberry. Aber als MP3-Player funktioniert das Ding schon gut, warum sollte man da mit einem grossen Atom auffahren? Mit 2Watt Leistungsaufnahme inkl. Netzwerk ist das Ding schon sehr interessant. Ich habe mit dem Pi und einer externen Soundkarte z.B. ein Audiostreaming übers Netz aufgebaut, das funktioniert gut.
http://www.crazy-audio.com/projects/raspberry-pi-for-audio-distribution/

Space
21.04.2013, 23:34
Ok, die Bootdauer ist wohl nicht das Ausschlag gebende Argument für einen kleinen ARM basierenden Computer anstatt einem x86 Atom Board.
Aber für so profame wie MP3 Dateien abzuspielen einen Atom aufzufahren, halte ich echt für übertrieben. In meinem mobilen MP3 Stick ist sicher auch kein Atom Prozessor ;) Und Usuls Lösung mit dem Pi un USB DAC funzt auch.

Der Raspberry hat Probleme mit zuviel I/O auf dem USB. Also wenn WLAN, Storage und USB DAC gemeinsam am USB hängen, kann es eng werden. Die CuBox hat einen separaten SPDIF und SATA. Ich denke hier werden die Probleme nicht vorhanden sein.

Ich habe mir gestern einen MK802 Stick (http://rikomagic.co.uk/forum/viewtopic.php?f=2&t=90) besorgt. Integriert ist im Stick WLAN bereits und etwas mehr Dampf/RAM als der PI hat der auch. Den DAC plane ich dann per USB anzuschliessen.

Marcus.S
22.04.2013, 07:51
Moinsen!

Wenns nur um das Abspielen von Musik ginge, wäre ich auch bei einer Embedded Lösung gelandet. Geb dir vollkommen Recht, dass ein Atom dafür overdose ist.
Meiner bootet übrigens Ubuntu samt grafischer Oberfläche vermutlich dank der mini-SSD (16GB, die lag hier halt noch ´rum) innerhalb von 15-20s. Ziel ist ein headless minimal Linux. Damit sollte ich nochmal ein paar Sekunden sparen können. Schneller kriege ich auch über den CD-Player keine Musik ans laufen.

So, kleines Update zum Dirigenten:


Der Arduino Mega 2560 (http://arduino.cc/en/Main/ArduinoBoardMega2560) ist angekommen und schaltet schon fleißig Relais. Hätte nicht gedacht, dass das wirklich so einfach ist. :w00t:
Der Faltrechner bootet, die Delta 1010pci (http://www.m-audio.com/products/en_us/Delta1010.html) wird erkannt und kann per Alsa (http://www.alsa-project.org/main/index.php/Main_Page) angesprochen werden.
Ich stehe auf Kriegsfuß mit Jack (http://jackaudio.org/) ;)
mpd (http://www.musicpd.org/) läuft und läßt sich über mPoD und mPaD (iOS-Apps) fernsteuern. Mir gefällt allerdings das nicht vorhandene Coverhandling von mpd so gar nicht. Auch dass ich die Apps die Cover nicht automatisch für die ganze Sammlung suchen lassen kann ist nicht so wirklich praktisch. Da meine winzige Sammlung ohnehin sauber getagged und in Ordnern sortiert ist werde ich heute abend die Cover aus den Tags extrahieren und für jedes Album als folder.jpg speichern.
mpd mag trotz korrekt gesetzter Rechte nicht auf externe Datenträger (USB) zugreifen. Für eine automatisierte Einbindung von angeschlossenen Sticks und Platten ist das eher unpraktisch. Dazu werde ich Kollege Google noch ein wenig bemühen.

lg
Marcus

Kurze Begriffserklärung für die nicht-Linuxer unter euch:
mpd ... "music player demon". Ein Programm, dass unter Linux im Hintergrund läuft und für das Abspielen von Musikfiles zuständig ist. Läßt sich über den Browser oder spezielle Clients (gibt es für alle Betriebssysteme) steuern. Der Client muss dabei nicht auf dem Rechner laufen, auf dem mpd läuft. Lediglich eine Netzwerkverbindung ist notwendig. Braucht wenig Ressourcen und ist der de facto Standard für diesen Einsatzzweck.
Alsa ... "advanced linux sound architecture". Die Windows-Entsprechung heißt Directsound.
Jack ... erlaubt ein flexibles Audiorouting. Es können Softwareschnittstellen geschaffen und untereinander verkabelt werden. So ist es z.B. möglich, die Ausgabe eines Programmes (z.B. mpd) an eine Softwareschnittstelle zu leiten, an der BruteFIR den Audiostream abgreift, mit seinen Filtern behandelt und anschließend über die Hardwareausgänge ausgibt. Besonderes Augenmerk lag bei der Entwicklung auf der Synchronisierung der einzelnen Soft- und Hardwareschnittstellen, sowie auf einer geringen Latenz.

Wenn ihr Fragen habt, traut euch. Ich kann sicher nicht alle beantworten, werde mir aber die größte Mühe geben.

tobo
22.04.2013, 08:48
Hast du eigentlich schonmal was vom LCDuino-Projekt gehört?

http://www.amb.org/audio/lcduino1/

Da gibt's auch eine LS- und Quellenwahl für …

Marcus.S
22.04.2013, 11:43
Hi Tobo,

das ist mir mal "über den Weg gelaufen", dann aber in Vergessenheit geraten.
Da der pre für u.A. dazu dient, Erfahrungen mit der MC-Programmierung zu machen, baue ich Hardware, wie auch Code lieber selber. Trotzdem danke für den Tipp!

lg
Marcus