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.htmlhttp://forum.chip.de/c-visual-basic-net/musik-abspielen-vb-net-so-gehts-1299755.htmlhttp://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.
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?
> 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"
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.