Ich möchte Midibefehle die mein Musikprogramm FL-Studio 10 ausgibt, an Arduino schicken und zwar per USB. Also FL Studio müsste diesen USB-Anschluss von Arduino irgendwie erkennen und dann MIDI-Befehle hinschicken. Jemand eine Idee wie ich das umsetzen kann?
Helmut vB schrieb: > Jemand eine Idee wie ich das umsetzen kann? Wenn deine MIDI-Software einen beliebigen UART ansprechen kann, ist da nix umzusetzen, denn dann ist alles schon fertig. Naja, fast.
1 | void setup() { |
2 | Serial.begin(31250); |
3 | }
|
Dein Arduino muss "nur" die USB-Midi-Spezifikatio umsetzen, dann ist er ein normales Midigerät und kann von jedem Programm angesteuert werden, das Midi-Geräte ansteuern kann; Dein "Fruity Loops Studio" sollte dazugehören.
die frage ist aber wie? Im Moment habe ich diesen Blog gefunden https://2froblog.wordpress.com/2012/07/19/controleur-midi-via-lusb-avec-arduino-49/ allerdings auf französisch wo ich nix verstehe, aber die Screenshots, Video und die Links zu Software sprechen für sich
Helmut vB schrieb: > Ich möchte Midibefehle die mein Musikprogramm FL-Studio 10 ausgibt, an > Arduino schicken und zwar per USB. > > Also FL Studio müsste diesen USB-Anschluss von Arduino irgendwie > erkennen und dann MIDI-Befehle hinschicken. > > Jemand eine Idee wie ich das umsetzen kann? Bei den meisten: gar nicht. Punkt. Wenn Dein Arduino einen FT232irgendwas oder eine andere USB-seriell Brücke hat, dann gibt es keinen Weg, dass sich diese als USB MIDI Device zu erkennen gibt. Ende. Wenn Dein Board mit einem Mega 16U2 oder Mega32U2 als USB-Seriell-Chip ausgestattet ist, dann könntest Du diesen umprogrammieren. Die Arduino-Entwicklungssoftware würde dann aber nicht mehr funktionieren. Keine Ahnung, ob Du das willst. Und das erforderliche Know-How wirst Du sicher auch nicht haben, davon gehe ich aus. Also: vergiss den Arduino USB-Port. Kaufe ein fertiges USB-MIDI-Interface und nutze dieses, um Deinen Arduino an den MIDI-Port anzuschließen. Das ist ja immerhin nur ein UART, aber per Optokoppler getrennt. Infos dazu gibts genügend im Netz. fchk
habe gerade mal den Arduino angeworfen, die Midi Baudrate kann nicht eingestellt werden, hilft nur der Umweg über die 2te UART
Helmut vB schrieb: > die frage ist aber wie? > > Im Moment habe ich diesen Blog gefunden > https://2froblog.wordpress.com/2012/07/19/controleur-midi-via-lusb-avec-arduino-49/ > > allerdings auf französisch wo ich nix verstehe, aber die Screenshots, > Video und die Links zu Software sprechen für sich Das ist ein Midi2Seriell Konverter das ist nichts anderes als: Der Arduino selber hat nur UART also Rx/Tx an dem Arduino sind jetzt zwei Drehpotis angeschlossen und ein Schieberegler mit 10 KOhm. Die drei Sachen gehen auf den Arduino. Der wandelt die Regler in Midi befehle um. Da der Arduino aber keinen USB MIDI Class port bereitstellen kann (*) wird die Ausgabe an einen USB Seriel Adapter geleitet der am Uart Rx/Tx hängt, man kann auch den USB Port ( CDC ) verwenden. Der USB Serial Adapter wird dann im Midi2Serial Konverter die Baudrate eingestellt, mit der die UART 'Bridge' arbeitet. Das kleine Tool leitet dann die Midi Befehle vom USB Seriell weiter als virtueller Audio Midi Claas Treiber, den man dann im MIDI HOST einstellen kann als 'EIngang' man hat die Option auch die Midi befehle an Midi.OX oder MIDI Yoke zu leiten. Du brauchst auch keine MIDI Baudrate einstellen, und kannst von 9600 bis 115200 alles auswählen´auch die hohen USB Baudraten. Wenn du echtes MIdi machen wills mit deinem Arduino, dann hat dir Rufus schon das richtige genannt, du brauchst dann einen USB Device Baustein der MIDI kann und der am Arduino unterstützt wird. Einen Umweg kannst du noch gehen: Wenn du z.B. ein USB-HOST Shield dir kaufst, z.B. das da: http://hardwarefun.com/tutorials/using-usb-host-shield-with-arduino und hier ein direktes Projekt mit MIDI USB-HOST http://www.circuitsathome.com/mcu/interfacing-midi-devices-with-arduino-using-usb-host-shield Alles was du wissen musst: http://arduino.cc/en/pmwiki.php?n=Reference/USBHost dann kannst du für diesesn USB HOST einen USB audio midi class treiber schreiben, dann kannst du ein USB2MIDI kabel z.b das: https://www.google.de/search?q=USB+MIDI+kabel&hl=de&gbv=1 dort anschliessen. Dann kommen am DIN 5 midi OUT deine MIDI Signale raus, dann aber mit 31250 baud und du brauchst am Rechner dann wieder einen USB2MIDI Adapter. Dann verbindest MIDI out vom USB HOST Kabel mit MIDI in vom USB2MIDI am Rechner. Genau aus dem Grunde wurde Midi2Seriell geschaffen; das gleiche hab ich auch selber geschrieben aber mit MidiYoke und WIFI Unterstützung. Das gleiche auch für Android . lg rudi ;-)
Helmut vB schrieb: > Ich möchte Midibefehle die mein Musikprogramm FL-Studio 10 ausgibt, an > Arduino schicken und zwar per USB. ok - du willst aber die andere richtung, dann geht es genau in die andere richtung also am rechner midi out zu midi in verbinden mit dem ganzen HOST und kabel gejammer.. oder eben das Midi2Seriell anstatt dem Seriell2Midi installieren und die Midi Sachen aus deinem PC an den Arduino schicken, ( was willst du mit MIDI daten am Arduino ? ) ... es gäbe noch eine Lösung, dazu müsste dir aber WIFI am Rechner zur Verfügung stehen oder ein LAN das WIFI bereitstellt. lg rudi :)
so alle guten dinge sind drei: http://makezine.com/2010/11/30/usbhacking/ jetzt solltest alles haben was du brauchst. Wenn du ein USB HOST Shield brauchst, hier hab ich noch eins, PM an mich. lg rudi :)
@Mod Jörg Bild Src: http://www.spikenzielabs.com/SpikenzieLabs/Serial_MIDI_files/SM%20conversion.png Link Src: http://www.spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html @Helmut SMv2D.macosx.zip SMv2D.windows.zip SMv2D.linux.zip (Not tested) stehen unten http://www.spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html lg rudi :)
Helmut vB schrieb: > Ich möchte Midibefehle die mein Musikprogramm FL-Studio 10 ausgibt, an > Arduino schicken und zwar per USB. nochmal Bezogen auf deinen Thread Titel: "wie ich Midibefehle über USB schicken kann an Arduino ?" welchen USB meinst du da? dem am PC, dem am Arduino? PC und Ardudion sollen beide per USB verbunden werden? Du führst einem ja ganz irre :) was hälst von dem: USB 2 MIDI Kabel besorgen USB am PC anstecken am MIDI OUT per Optokoppler wie Frank es schon sagte den MIDI sauber trennen und auf den Uart des Arduino legen. Den Uart des Arduino auf 312500 einstellen Dein Status, Data1, Data2 am Uart auslesen was dein FL Studio 10 ausgibt und weiterverarbeiten. wars das was du wissen wolltest? lg rudi :)
die tasten sorry, 31250 soll das heisen.
r_u_d_i schrieb: > Den Uart des Arduino auf 31250 einstellen am USB Arduino Schnitte lässt sich das nicht einstellen, aber am UART2 oder Soft UART, wenn nicht über die Arduino IDE Serial2. dann in C per Register. Hat Midi 8N1 ?
Joachim B. schrieb: > Hat Midi 8N1 ? "The MIDI standard consists of a communications messaging protocol designed for use with musical instruments, as well as a physical interface standard. It consists physically of a one-way (simplex) digital current loop electrical connection sending asynchronous serial communication data at 31,250 bits per second. 8-N-1 format, i.e. one start bit (must be 0), eight data bits, no parity bit and one stop bit (must be 1), is used"
Joachim B. schrieb: > r_u_d_i schrieb: >> Den Uart des Arduino auf 31250 einstellen > > am USB Arduino Schnitte lässt sich das nicht einstellen, Ja weil der USB Wandlerbaustein diese 31250 nicht unterstützt wie auch die ganze uSB2Seriell Adapter nicht, man kann es zwar einstellen, es sind aber dann keine 31250 Es gibt einen USB2Seriell Wandler den man per Firmware dazu bewegen kann, ich hab aber den Link nicht mehr ( ich weiss auch nicht mehr wie ich den damals gefunden habe ) > aber am UART2 Ja den mein ich also den echten UART vom Mega2560 der hat ja vier: Tx0, Rx0, Tx1, Rx1 Tx2, Rx2 Tx3, Rx3 > oder Soft UART, Sollten die 54 Pins dann ausreichen :) aber einen Tip dazu Soft Uart nur entweder empfangen oder senden dann klappt das super > wenn nicht über die Arduino IDE Serial2. dann in C per > Register. jo > > Hat Midi 8N1 ? hat es, 31250,8, N, 1 lg rudi
vielen Dank für die zahlreichen antworten. da muss ich erst mal alles durchlesen und verstehen bevor ich wieder meine Probleme schildern kann. Aber eine Frage: Braucht man USB Host Shield wenn man den ATMega2560 hat? Weil der hat doch 4 mal den TX/RX ?
Du brauchst kein Host Shield. Du brauchst das hier für den PC: ebay #280743272825 Für den Arduino nimmst Du das hier: ebay #311014230782 Dann musst Du nur noch wissen, dass Du MIDI-OUT von einem Gerät ins MIDI-IN vom anderen Gerät stecken musst. Zwei MIDI-OUT oder zwei MIDI-IN miteinander verbinden funktioniert nicht. Immer OUT mit IN. Der Rest sollte trivial sein. fchk PS: Die passende Arduino-Library für MIDI gibts im zweiten ebay-Link auch gleich. Musst Du nur benutzen.
:
Bearbeitet durch User
Also das mit dem Midi Adapter und Midi Buchse habe ich schon probiert. Zwar hab ich nicht diesen Shield aber ich habe eine eigene Schaltung zusammengesetzt nach dieser Anleitung: http://www.instructables.com/id/Send-and-Receive-MIDI-with-Arduino/step10/Receive-MIDI-Messages-with-Arduino/?lang=de Funktioniert zwar aber wenn ich 16 Controlstates (drehschalter) von FL Studio gleichzeitig an Arduino schicke, so gehen einige Daten verloren bzw sie bekommen falsche Werte. Ich glaube es liegt daran dass Midi nur 4kb/s schafft, während USB auf 480 Mbit/s kommt. Ich weiss nicht ob dieses Problem mit Midi Shield beheben kann
Helmut vB schrieb: > Funktioniert zwar aber wenn ich 16 Controlstates (drehschalter) von FL > Studio gleichzeitig an Arduino schicke, so gehen einige Daten verloren nutzt du uart interrupts? sollte bei dem Tempo nix verloren gehen
Helmut vB schrieb: > Funktioniert zwar aber wenn ich 16 Controlstates (drehschalter) von FL > Studio gleichzeitig an Arduino schicke, so gehen einige Daten verloren > bzw sie bekommen falsche Werte. Ich glaube es liegt daran dass Midi nur > 4kb/s schafft, während USB auf 480 Mbit/s kommt. Dann ist das Arduino-Zeugs zu langsam bzw scheiße programmiert. Mach es in C neu oder nimm einen Arduino auf ARM-Basis (Achtung 3.3V Pegel statt 5V). fchk
> nutzt du uart interrupts? sollte bei dem Tempo nix verloren gehen
hm leider nicht. Also wenn man extra dafür programmieren muss, dann
nein, ist nicht im Code. Davon verstehe ich wenig. Ich lese mal nach,
aber ob ich das hinbekomme?
:
Bearbeitet durch User
Frank K. schrieb: > Helmut vB schrieb: > >> Funktioniert zwar aber wenn ich 16 Controlstates (drehschalter) von FL >> Studio gleichzeitig an Arduino schicke, so gehen einige Daten verloren >> bzw sie bekommen falsche Werte. Ich glaube es liegt daran dass Midi nur >> 4kb/s schafft, während USB auf 480 Mbit/s kommt. > > Dann ist das Arduino-Zeugs zu langsam bzw scheiße programmiert. Mach es > in C neu oder nimm einen Arduino auf ARM-Basis (Achtung 3.3V Pegel statt > 5V). > > fchk Interrups sind mir leider zu kompliziert. Also nehm ich das hier ? http://www.ebay.de/itm/Neu-Arduino-DUE-2012-R3-Entwicklungsboard-AT91SAM3X8EA-32-Bit-ARM-mit-USB-Kabel-/121329394493?pt=LH_DefaultDomain_77&hash=item1c3fcba33d Hab leider nur ATMega2560 rumliegen, die haben wohl keine ARM Boards
Helmut vB schrieb: > hm leider nicht. Also wenn man extra dafür programmieren muss, dann > nein, ist nicht im Code. 2x LIBs etwas einlesen ist eigentlich nicht schwer http://beaststwo.org/avr-uart/ http://agock.com/software/avr-uart-library/ Helmut vB schrieb: > aber ob ich das hinbekomme? mit Willen ja, hab ich auch geschafft aber von U.Radig müsste fast überall gleich funktionieren Seriell einstellen, IRQ Vector installieren, Interrupt setzen, schwierig könnte nur sein die Daten zeitnah zu verarbeiten das der Buffer nicht überläuft.
Helmut vB schrieb: > Funktioniert zwar aber wenn ich 16 Controlstates (drehschalter) von FL > Studio gleichzeitig an Arduino schicke, so gehen einige Daten verloren > bzw sie bekommen falsche Werte. [code] byte commandByte; byte noteByte; byte velocityByte; void setup(){ Serial.begin(31250); } void checkMIDI(){ do{ if (Serial.available()){ // das ist einfach zu einfach Helmut... // ************************************* commandByte = Serial.read();//read first byte noteByte = Serial.read();//read next byte velocityByte = Serial.read();//read final byte // das Problem ist, wenn du Command Changes bekommst oder eben // andere Commands ausser NoteOn 9x , NoteOff 8x // an x steht dann der kanal vom 1 bis 16 oder 0 bis F // Da du slider hast, wirst du nur zwei werte haben // also das CommandByte und den Value // und schon läufts durcheinander // du müsstest so wie eine case einbauen // if (StatusByte==9) || (StatusByte==8) dann NoteOn / NoteOff // dann sind deine drei Bytes richtig // andernfalls musst du mal schauhen was Dein MIDI Program sendet // MIDI-OX mal laufen lassen und die 16 Controlstates vom FL // aufzeichnen und dir anzeigen lassen // dann kannst du explizit in der Programmierung darauf reagieren // lg rudi :) } } while (Serial.available() > 2);//when at least three bytes available } void loop(){ checkMIDI(); } [/code}}
Helmut vB schrieb: > Funktioniert zwar aber wenn ich 16 Controlstates (drehschalter) von FL > Studio gleichzeitig an Arduino schicke, so gehen einige Daten verloren > bzw sie bekommen falsche Werte.
1 | byte commandByte; |
2 | byte noteByte; |
3 | byte velocityByte; |
4 | |
5 | void setup(){ |
6 | Serial.begin(31250); |
7 | } |
8 | |
9 | void checkMIDI(){ |
10 | do{ |
11 | if (Serial.available()){ |
12 | |
13 | // das ist einfach zu einfach Helmut... |
14 | // ************************************* |
15 | commandByte = Serial.read();//read first byte |
16 | noteByte = Serial.read();//read next byte |
17 | velocityByte = Serial.read();//read final byte |
18 | |
19 | // das Problem ist, wenn du Command Changes bekommst oder eben |
20 | // andere Commands ausser NoteOn 9x , NoteOff 8x |
21 | // an x steht dann der kanal vom 1 bis 16 oder 0 bis F |
22 | // Da du slider hast, wirst du nur zwei werte haben |
23 | // also das CommandByte und den Value |
24 | // und schon läufts durcheinander |
25 | // du müsstest so wie eine case einbauen |
26 | // if (StatusByte==9) || (StatusByte==8) dann NoteOn / NoteOff |
27 | // dann sind deine drei Bytes richtig |
28 | // andernfalls musst du mal schauhen was Dein MIDI Program sendet |
29 | // MIDI-OX mal laufen lassen und die 16 Controlstates vom FL |
30 | // aufzeichnen und dir anzeigen lassen |
31 | // dann kannst du explizit in der Programmierung darauf reagieren |
32 | // lg rudi :) |
33 | |
34 | } |
35 | } |
36 | while (Serial.available() > 2);//when at least three bytes available |
37 | } |
ich habe schon viele codes probiert, aber jetzt nochmal von vorne: Ich habe nochmal LoopBe1 installiert um einen virtuellen MIDI Port anzulegen. Dann habe ich midi-ox und FL Studio gestartet: Es ist mir gelungen einzelne MIDI-Signale von FL Studio in midi-ox sichtbar zu machen. Sobald ich ich jetzt meine eigene Spuren in FL-Studio abspiele, zeigt LoopBe1 ziemlich schnell "Midi feedback error". Sobald ich meine Tonspuren langsamer abspiele (von 130 BPM auf 40 BPM) dann kommen diese Fehlermeldung nicht mehr. Mir scheint, das ganze Problem liegt nicht an Arduino sondern schon Softwaremäßig auf dem PC ??? Dasselbe passiert's auch mit LoopMIDI, eine alternative zu LoopBE In Fl-Studio ist Synchronization Type auf MIDI Clock geschaltet. Sind das einfach zuviele Midi-Daten ? EDIT: ich habe jetzt LoopBe30 installiert, denn da konnte ich "midi feedback error" deaktivieren. Jetzt kann ich meine Tonspuren in midi-ox anzeigen: die Werte sind alle korrekt. Was "feedback error" soll weiss ich nicht, aber es kommt mir irgendwie parallel vor, den Arduino hatte mit dieser Geschwindigkeit auch Probleme. Also vielleicht doch weitermachen mit interrupts
:
Bearbeitet durch User
Im Moment verwende ich diesen Code: // Includes&Defines SERVO #include <Wire.h> #include <Adafruit_PWMServoDriver.h> Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); #define SERVOMIN9G 175 // this is the 'minimum' pulse length count (out of 4096) #define SERVOMAX9G 640 // this is the 'maximum' pulse length count (out of 4096) // Includes&Defines MIDI #include <MIDI.h> #if defined(ARDUINO_SAM_DUE) || defined(USBCON) // Print through USB and bench with Hardware serial MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI); #else #include <SoftwareSerial.h> SoftwareSerial midiSerial(2,3); MIDI_CREATE_INSTANCE(SoftwareSerial, midiSerial, MIDI); #endif // ------------------------------------------------------------------------ ----- uint8_t pos[7]; void handleControlChange(byte channel, byte number, byte value) { if ((number >= 1) && (number <= 16)) pwm.setPWM(number-1, 0, map(value, 0, 127, SERVOMIN9G, SERVOMAX9G)); } // ------------------------------------------------------------------------ ----- void setup() { MIDI.setHandleControlChange(handleControlChange); // Initiate MIDI communications, listen to all channels MIDI.begin(MIDI_CHANNEL_OMNI); while(!Serial); Serial.begin(115200); Serial.println("Arduino Ready"); // start setup adafruit pwm.begin(); pwm.setPWMFreq(60); // end setup adafruit } void loop() { // Call MIDI.read the fastest you can for real-time performance. MIDI.read(); // There is no need to check if there are messages incoming // if they are bound to a Callback function. // The attached method will be called automatically // when the corresponding message has been received. }
:
Bearbeitet durch User
Dieser Code mit dem ich Probleme hab verwendet SoftwareSerial, damit tx und rx freibleiben, die brauch ich für die Consolenausgabe am PC (Serial.print) http://arduino.cc/en/Reference/softwareSerial "Serial in" ist auf pin 2. Ich weiss nicht ob die interrupts da funktionieren würde? In der Anleitung steht nichts von Arduino UNO
:
Bearbeitet durch User
Ich habe für Interrupts diesen Code gefunden der für Midi ist cli();//stop interrupts //set timer2 interrupt every 128us TCCR2A = 0;// set entire TCCR2A register to 0 TCCR2B = 0;// same for TCCR2B TCNT2 = 0;//initialize counter value to 0 // set compare match register for 7.8khz increments OCR2A = 255;// = (16*10^6) / (7812.5*8) - 1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21); // Set CS11 bit for 8 prescaler TCCR2B |= (1 << CS11); // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A); sei(); aber der funktioniert nicht wenn ich den Code in setup() einbaue. Consolenausgabe zeigt gar nichts mehr an außer "Arduino ready". Der ist glaub ich nicht für den Pin 2. Ich weiss nicht was diese ganzen Schlüsselwörter wie TCCR2A machen. Ich finde keine übersichtliche Anleitung dazu
Helmut vB schrieb: > In der Anleitung steht nichts von Arduino UNO dazu muss man wissen welcher der ist -> The Arduino Uno is a microcontroller board based on the ATmega328 dann geht man auf Helmut vB schrieb: > pin 2 ich tippe mal digital 2 (es gibt ja auch A2) und mit pinmapping Arduino uno http://cdn3.raywenderlich.com/wp-content/uploads/2013/06/atmegaPinMap.jpg kommt man auf Port D Pin 2 und mit http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf Seite 3 auf den PCINT18 der müsste für echte Interrupts entsprechend aktiviert werden bei soft UART was du hier beschreibst ist ja polling per Timer sollte zwar auch klappen aber wer weiss, ein Oszi wäre hilfreich.
Linksammler schrieb: > void setup() { > Serial.begin(31250); > } mal versucht? bei meinen Arduinos gehts nicht....
Joachim B. schrieb: > Helmut vB schrieb: >> In der Anleitung steht nichts von Arduino UNO > > dazu muss man wissen welcher der ist -> > > The Arduino Uno is a microcontroller board based on the ATmega328 > > dann geht man auf > > Helmut vB schrieb: >> pin 2 > > ich tippe mal digital 2 (es gibt ja auch A2) > > und mit pinmapping Arduino uno > > http://cdn3.raywenderlich.com/wp-content/uploads/2013/06/atmegaPinMap.jpg > > kommt man auf Port D Pin 2 > > und mit > http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf > > Seite 3 auf den PCINT18 > > der müsste für echte Interrupts entsprechend aktiviert werden bei soft > UART > > was du hier beschreibst ist ja polling per Timer sollte zwar auch > klappen aber wer weiss, > > ein Oszi wäre hilfreich. ok danke für die Anleitung. Ja, ich meinte den Pin "digital 2." "(PCINT18/INT0) PD2" Bedeutet INT für interrupt? Muss ich ihn noch aktivieren ? Hmm, dann ist polling per Timer doch etwas anderes als was du beschrieben hast mit IRQ Vector etc .. ? Wo kann ich solche Beispiele finden? Wo auf u.radig ? Ich habe leider nur ein analog Oszi, der wäre wohl nicht geeignet, muss ich mir erst einen digitalen Oszi anschaffen.
Helmut vB schrieb: > "(PCINT18/INT0) PD2" Bedeutet INT für interrupt? ja PCINT heisst pin change interrupt INT0 ist der vorrangigste Interrupt egal welchen du wählst toggeln auf der Leitung wird dir so nie entgehen, muss ur noch einer beim Toggeln der Leitungen oder nicht toggeln nach dem Startbit die Bits zeitgenau einsammeln. Ich weiss nicht, gibts nichts fertiges in soft uart per Interrupt?
Joachim B. schrieb: > Ich weiss nicht, gibts nichts fertiges in soft uart per Interrupt? evtl. das hier? Beitrag "Software UART mit FIFO"
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.