Forum: Mikrocontroller und Digitale Elektronik Sounds am PC spielen über Arduino


von nico (Gast)


Lesenswert?

Hallo,

ich möchte eine Art Klavier bzw. Keyboard für den Pc bauen.
Es soll folgendermaßen funktionieren:
Man hat mehrere Knöpfe, die mit dem Arduino/Microcontroller verbunden 
sind.
Der Arduino ist zusätzlich seriell über USB mit dem PC verbunden. Wenn 
nun ein Knopf gedrückt wird, soll der Arduino den PC dazu bringen eine 
bestimmte Sounddatei (auf dem PC) über die ganz normalen 
Computerlautsprecher abzuspielen.

Der Arduino selbst soll also keine Sounds erzeugen, er soll lediglich 
bewirken, dass der PC einen bestimmten Sound abspielt (je nach 
Knopfdruck).
Wie kann ich das programmiertechnisch umsetzten? Gibt es da irgendwelche 
Bibliotheken, oder geht das vllt mit Processing? Ich hab dazu nichts im 
Netz gefunden und würde mich freuen, wenn mir jemand weiterhelfen kann!

lieben Gruß
Nico

von Karl H. (kbuchegg)


Lesenswert?

nico schrieb:

> Der Arduino selbst soll also keine Sounds erzeugen, er soll lediglich
> bewirken, dass der PC einen bestimmten Sound abspielt (je nach
> Knopfdruck).

Der Arduino selbst hat damit überhaupt nichts zu tun.
Der schickt nur an den PC eine Nachricht "Jetzt wurde Taste x gedrückt". 
Was der PC dann damit macht, ist Sache der Programmierung des PC. Ob der 
dann als Folge dieses Tastendrucks die Festplatte formatiert, eine EMail 
an die NSA schickt oder eben einen Sound abspielt, kann der Arduino 
weder festlegen noch entscheiden.

> Wie kann ich das programmiertechnisch umsetzten? Gibt es da irgendwelche
> Bibliotheken, oder geht das vllt mit Processing? Ich hab dazu nichts im
> Netz gefunden und würde mich freuen, wenn mir jemand weiterhelfen kann!

Dann musst du die Doku eben studieren.
Du hast 2 Themenkreise:
* auf dem PC einen Ton abspielen
* Kommunikation Arduino->PC

viel Spass

von Frank M. (frank_m35)


Lesenswert?

Auf dem Arduino schreibst du ein Programm dass über die Serielle 
Schnittstelle bei Tastendruck 1 eine "1" sendet, bei Tastendruck 2 eine 
"2" sendet etc.

Am PC schreibst du ein Programm, dass die serielle schnittstelle 
überwacht und wenn eine "1" empfangen wird das Lied 1.wav abspielt, ...



Für den Arduino sollte es viele fertige Beispiele geben die so etwas in 
ähnlicher Form (Tasten abfragen, Über Rs232 Daten übertragen) machen.

Auf dem PC musst du dich eben für eine Programmiersprache entscheiden 
und dann dazu passende Beispiele suchen. Welche du nimmst hängt davon ab 
was du programmieren kannst. Recht einfach ist es vielleicht mit einer 
.NET Sprache sofern du Windows einsetzt.
Bspw. VB.NET
http://www.activevb.de/tipps/vbnettipps/tipp0071.html
http://forum.chip.de/c-visual-basic-net/musik-abspielen-vb-net-so-gehts-1299755.html
http://www.codeproject.com/Articles/9605/Play-Waves-in-VB-NET

Das wird verkompliziert wenn du mehrere Audiodateien parallel abspielen 
wollen wirst um eben einen besseren Klang zu erhalten. Dann muss man 
halt etwas mehr programmieren und sich damit auseinandersetzen :-)

von Stefan (Gast)


Lesenswert?

Das würde ich nicht mit Arduino machen. Es gibt HID-Interface Platinen, 
die werden von Windows/Linux wie Tastaturen erkannt. Dann ist die 
Programmierung gaaanz einfach.

Ansonsten verbindest du den Mikrocontroller mittels USB/UART Adapter mit 
dem PC, dort wird ein virtueller serieller Port installiert und den 
sprichst Du mit der Programmiersprache deiner Wahl an. Bei Java braucht 
man dazu die rxtx Library.

Wie man auf dem PC Sounds abspielt, willst Du nicht von uns erklärt 
haben, oder doch?

von Karl H. (kbuchegg)


Lesenswert?

Theoretisch gibt es noch eine Möglichkeit :-)
Der PC wird mit einem Software-Synthesizer zu einem MIDI Device 
'umfunktioniert' und der Arduino schickt dem Synthi dann Midi Kommandos.

Da gibts dann sogar eine passende fertige Lib dafür
http://playground.arduino.cc/Main/MIDILibrary

Gelernt hast du dabei wieder nichts, aber das macht nichts.

: Bearbeitet durch User
von nico (Gast)


Lesenswert?

Hey,

oh super! Vielen dank schonmal für die Schnellen antworten.
Also mit dem Arduino bestimmte serielle ausgaben machen, das kriege ich 
hin. D.h. ich muss jetzt nur noch ein Programm am PC schreiben, welches 
diese Ausgaben dann einlesen kann.
Ich kann ein bisschen mit Java umgehen, sollte man das dann mit Eclpise 
versuchen?

von nico (Gast)


Lesenswert?

Das mit der Fertigen Arduino Lib klingt natürlich auch verlockend. Jetzt 
habe ich auf jeden Fall schonmal jede Menge Anregungen! Danke

von Stefan (Gast)


Lesenswert?

> sollte man das dann mit Eclipse versuchen?

Du darfst auch gerne Notepad verwenden. Der Editor spielt für die 
Technik keine Rolle. Er hilft Dir aber, vor allem bei Tippfehlern. Wenn 
Du Eclipse noch nicht kennst, dann schau Dir Netbeans an, das ist 
einfacher.

von datasheet (Gast)


Lesenswert?

Mal unabhängig vom Arduino und der lib ist die Idee eine Midi 
Schnittstelle zu programmieren schick. Wenn man einen Sampler verwendet, 
braucht man auf dem PC gar nichts programmieren.
Kennt einer (außer dem super teuren Cubase) ein brauchbares kostenloses 
Programm, das Midibefehle von einer seriellen Schnittstelle live 
abspielen kann? Ich hatte da schon einmal gesucht, aber nichts passendes 
gefunden.

data

von Karl H. (kbuchegg)


Lesenswert?

datasheet schrieb:

> Programm, das Midibefehle von einer seriellen Schnittstelle live
> abspielen kann?

Google mal nach
"software synthesizer"

Ich persönlich steh ja mehr auf die analogen Synthesizer, bei denen man 
den Sound und die Hüllkurven noch selber einstellen kann. Mit den 
Alleinunterhalter-auf-Knopfdruck-gibt-es-ein-Trompetenquintett-samt-Akko 
rdeon-und-Humptata-Begleitung  kann ich wenig anfangen. Das ist fpr mich 
kein Synthesizer.

http://freemusicsoftware.org/category/free-vst/synth-virtual-analog

Die hier
http://www.native-instruments.com/de/
haben auch tolle Software. Hab mal vor Jahren damit rumgespielt, als es 
noch eine unbegrenzt lauffähige Demo gab. Vielleicht findest du in 
irgendwelchen Archiven noch was. Das Programm hiess damals noch 
"Generator"

: Bearbeitet durch User
von datasheet (Gast)


Lesenswert?

Ahh, danke für die Tipps!

Hab mal bisschen rumgeschaut. Phutura sieht ganz gut aus, wenn niemand 
ein aktuelles kostenloses Synthesizer Programm empfehlen kann, werd ich 
das wohl als erstes testen. Von Demos halte ich da nix. In meinem Fall 
bräuchte ich es nur für ein paar Drumsounds, es gibt scheinbar genügend 
freeware, ist aber eben auch viel Mist dabei.

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.