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
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
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 :-)
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?
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
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?
Das mit der Fertigen Arduino Lib klingt natürlich auch verlockend. Jetzt habe ich auf jeden Fall schonmal jede Menge Anregungen! Danke
> 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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.