Forum: Mikrocontroller und Digitale Elektronik Midi zu ttl und umgekehrt


von Robert M. (roberta)


Lesenswert?

Hallo ihr

Ich hab da nen kleines Problem bzw. zwei..
Und zwar will ich MIDI Signale an einen avr senden bzw anders rum am 
besten über USB wie genau ich die USB - AVR Verbindung mache bin ich mir 
noch unschlüssig vielleicht beschäftige ich mich mal mit arduino der das 
ja von sich aus können sollte oder ich Bau mir den usbasp usb-uart 
Adapter mit auf meine Platine (damit hab ich schon semi gute Erfahrungen 
gemacht).

Einmal geht es um ein recording - light, also "Aufnahme läuft l" ->LED 
rot, "Aufnahme wird abgespielt" -> LED grün, die benötigten Signale 
gibt's von der Software in midi
Und sollen als einfache ttl Signale an den avr.

Und das andere soll 3 Potis und 3 Taster vom avr via USB an den Laptop 
und dort in midi Signale umgewandelt an eine Software schicken.

Wie die Sachen am avr umgesetzt werden hab ich schon im Kopf also uart 
an Ports bzw adc und i/o' s an uart.

Was mir Kopfzerbrechen bereitet ist: gibt es eine fertige Software die 
auf dem PC (einmal windoof, einmal Linux)  das ganze "konvertieren" 
kann?

Also von ttl zu midi und andersrum?

Jetzt schon lieben Dank für eure Hilfe und wenns die Frage schon gab hab 
ich falsch Gesucht (in dem Fall bitte ich um wüste Beschimpfungen und 
einen link.)

Grüße Roberta

von Eric B. (beric)


Lesenswert?

Robert M. schrieb:
> Was mir Kopfzerbrechen bereitet ist: gibt es eine fertige Software die
> auf dem PC (einmal windoof, einmal Linux)  das ganze "konvertieren"
> kann?
>
> Also von ttl zu midi und andersrum?

Nein, gibt es nicht, da es zwei total unterschiedliche Dinge sind.
TTL (Transistor-to-Transistor-Logic) beschreibt ein elekrischen 
Signalniveau, MIDI beschreibt ein Kommunikationsprotokoll. Du 
vergleichst hier das Kopfsteinpflaster mit dem Fahrplan der Buslinien...

Dein AVR soll Taster und Potis auswerten und die Werte als MIDI Control 
Messages an dein PC schicken. Andersrum schickt dein PC MIDI Signale an 
den AVR.

Am einfachsten wird es denn wenndu dir ein USB-MIDI Adapter zulegst. 
Dann braucht der AVR nur serielle Daten schicken und empfangen können 
über seinen UART.

von Clemens L. (c_l)


Lesenswert?

Was meinst du mit "TTL"? ("Transistor-Transistor-Logik" ist es 
offensichtlich nicht.)

von Alex R. (itaxel)


Lesenswert?

Hallo Robert,

das ganze ist kein Problem. Stichwort "vUSB MIDI".
Ich habe mich da auch schon mit beschäftigt und mir ein eigener 
universal Midi-Controler (aber hauptsächlich für Ableton Live) gemacht.

Benötigt wird einfach ein Atmel µC der als USB-Schnittstelle mit vUSB 
fungiert. Dann kannst du entweder auf dem gleichen µC deine Anwendung 
weiter erstellen oder, wie ich es gemacht habe, einen 2. µC an dem ich 
meine Schaltung habe und mit dem vUSB-µC kommuniziert.

Deine Schaltung wird dann auf deinem Betriebssystem als Midi-Controler 
erkannt und du kannst es in deine MIDI-Software integrieren. 
Funktioniert auf Windows und Linux-Versionen.

von Einer (Gast)


Lesenswert?


von Robert M. (roberta)


Lesenswert?

Ich hatte möglichst viel umschrieben was ich meinte, mit ttl meinte ich 
das was über uart geht. Ich wusste nicht das das die völlig falsche 
Benennung ist.
Im Moment benutzt ich w-lan und shell's die befehle via putty senden um 
nen atmega8 zusteuern (ich kann über Internet mein Licht an machen 
thumbs up)
und da hab mich gefragt ob ich das was die Software als midi übergibt 
nicht in einfach über uart sendbare befehle wandeln kann.

@Alex
Hy ja das klingt gut, ich hatte zwar gehofft ohne neue ICs zu kaufen aus 
zukomme, aber die 90€ der kommerziellen Lösung wir das kaum 
überschreiten..

Welchen avr hast du denn genutzt?


Danke für die Antworten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Robert M. schrieb:
> @Alex
> Hy ja das klingt gut, ich hatte zwar gehofft ohne neue ICs zu kaufen aus
> zukomme, aber die 90€ der kommerziellen Lösung wir das kaum
> überschreiten..
>
> Welchen avr hast du denn genutzt?

V-USB läuft mit so gut wie jedem AVR, der ein wenig Flashspeicher hat. 
Nur die allerkleinsten wie der Tiny9/10 und 13 haben nicht genug Platz 
(und beim Tiny25 wirds sehr knapp). Ein Hinweis auf die URL des V-USB 
Projektes wäre angebracht gewesen:
https://www.obdev.at/products/vusb/index.html

Man muss dazu sagen, das V-USB zwar meistens funktioniert, in einigen 
Specs aber nicht den USB Standard erfüllt.

: Bearbeitet durch User
von The D. (thedaz)


Lesenswert?

Robert M. schrieb:
>...
> und da hab mich gefragt ob ich das was die Software als midi übergibt
> nicht in einfach über uart sendbare befehle wandeln kann.
>
 Midi ist doch basierend auf UART Kommunikation mit 32500 Baud, 1 
Startbit, 8 Datenbits und einem Stoppbit. Was willst du da noch wandeln? 
Die Signallevel auf der Leitung?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

The D. schrieb:
> 32500 Baud

Genaugenommen sind es 31250 bits/s. Aber das nur der Vollständigkeit 
halber.

The D. schrieb:
> Die Signallevel auf der Leitung?

Hmm, evtl. gibts zu dem Stromschleifenkonzept von MIDI Fragen?
Ein simples Midiinterface auf UART jedenfalls gibts sogar auf der 
offiziellen MIDI Seite:
https://www.midi.org/specifications/item/midi-din-electrical-specification

: Bearbeitet durch User
von Robert M. (roberta)


Lesenswert?

@ the daz
Naja die Signale über USB an den avr, weil PC kein MIDI Port hat und ich 
auch kein blassen von MIDI hab.

@ Alex
Cool
Hab schon was gefunden danke der vUsb Tipp war schon super.
Du hast nicht zufällig dein Projekt irgend wo vorgestellt?
Läuft USBasp auch über sie VUsb Sache?

Wenn ich wieder Zuhause bin Werd ich mich gleich mal an die Umsetzung 
setzen hab vom usbasp noch passende Dioden Zuhause B-)

Nochmals Danke

von Robert M. (roberta)


Lesenswert?

Ich glaub ich hab mich doof aus gedrückt mit MIDI
Die midi Signale existieren nur auf der Software Ebene also einmal auf 
Windows was ich im Studio nutze für meine DAW und Linux auf dem Laptop 
wo Mixxx bedient werden soll.

von The D. (thedaz)


Lesenswert?

Robert M. schrieb:
> Ich glaub ich hab mich doof aus gedrückt mit MIDI
> Die midi Signale existieren nur auf der Software Ebene also einmal auf
> Windows was ich im Studio nutze für meine DAW und Linux auf dem Laptop
> wo Mixxx bedient werden soll.

Du sprichst also von Midi command codes die du an einen Mikrocontroller 
schicken willst. Das hat nix mit Signalen zu tun. Soll das vom DAW aus 
passieren oder programmierst du gegen eine Windows API?

von Frank L. (hermastersvoice)


Lesenswert?

vielleicht könnten diese Videos für den TO interessant sein:
http://goetzmd.de/category/diy/diy-midi-controller

Da werden jedenfalls eine Menge guter Tipps gegeben.

von dasrotemopped (Gast)


Lesenswert?

Warum nicht einfach einen USB-Midi Adapter fertig kaufen.
Gibts für kleines Geld, ca 30-40 Euro, z.B. Roland UM-1G
oder Roland UM-ONE mk2. An die DIN Buchse kann man jeden
beliebigen uC anschliessen, ist ja über Optokoppler
galvanisch getrennt. Und wird am PC als Midiadapter erkannt,
sollte jede Musiksoftware mit umgehen können.

Gruß,

dasrotemopped.

von Robert M. (roberta)


Lesenswert?

dasrotemopped schrieb:
> Warum nicht einfach einen USB-Midi Adapter fertig kaufen.
> Gibts für kleines Geld, ca 30-40 Euro, z.B. Roland UM-1G
> oder Roland UM-ONE mk2. An die DIN Buchse kann man jeden
> beliebigen uC anschliessen, ist ja über Optokoppler
> galvanisch getrennt. Und wird am PC als Midiadapter erkannt,
> sollte jede Musiksoftware mit umgehen können.
>
> Gruß,
>
> dasrotemopped.

30 - 40 € sind nicht unbedingt kleines Geld

2 ICs + Kleinteile komm ich unter 10 würde ich behaupten. Zumal ich 
eigentlich alles da hab.

Und wie schon geschrieben von MIDI an sich hab ich keinen blassen 
Schimmer deswegen hatte ich drauf gehofft das es eine Software gibt die 
die midi Daten mit liest und bei meinem Wunsch MIDI Signal z.b. Ein "a" 
an putty und mein Wunsch Ziel sendet.

von The D. (thedaz)


Lesenswert?

Also, billige MIDI-USB Interfaces gibt es schon für unter 10 Euro. Mit 
nem Optokoppler und 2 Widerständen kannst du daran einen 3 Euro uC via 
UART betreiben. Oder man benutzt sowas wie dies :

http://projectgus.github.io/hairless-midiserial/

Damit hat man, wenn ich es richtig verstanden habe, ein virtuelles MIDI 
interface auf dem PC, daß unter der Decke einen Arduino über sein 
serielles USB interface betreibt. Kostet dann 3 Euro für einen Arduino 
Nano und ein USB Kabel. Natürlich muß der Arduino noch programmiert 
werden, aber das ist ein Kinderspiel (wenn man programmieren kann).

von The D. (thedaz)


Lesenswert?

Robert M. schrieb:
> ...
> Und wie schon geschrieben von MIDI an sich hab ich keinen blassen
> Schimmer deswegen hatte ich drauf gehofft das es eine Software gibt die
> die midi Daten mit liest und bei meinem Wunsch MIDI Signal z.b. Ein "a"
> an putty und mein Wunsch Ziel sendet.

Nein, gibt es nicht. Wozu auch ? Es gibt aber Frameworks und libraries, 
die die Programmierung erleichtern. Du wirst bei deinem Projekt um die 
Programmierung eines Mikrocontrollers nicht herumkommen.

Oder du schickst du MIDI commands z.B. an eine PC-Software für 
Lightshows. Dazu brauchst du dann noch ein DMX Interface und einen DMX 
Empfänger, der Steckdosen schaltet. Die Lightshow Software kann auch mit 
MIDI events umgehen. Aber bei dieser Lösung liegst du dann für eine 
triviale Aufgabe um mehrere Größenordnungen über den 10 - 40 Euro.

von Robert M. (roberta)


Lesenswert?

@thedaz
Danke nochmal aber Alex hat mir da schon nen guten Tipp gegeben

Ich dachte es ginge noch einfacher wie beim Messenger "Terminal" der mir 
via Pyhton ne Shell öffnet.

Das ich um die myC Programmierung nicht rum komme ist mir klar und auch 
gar nicht so gewollt. wo bleibt sonst der nervige Teil an 
AVRspielereien..

Ich will ja auch mit meinen Kenntnissen weiter kommen bzw die Kenntnisse 
festigen.
Nur fehlen intensive Programierer*innen Kenntnisse [zb um in Windows 
midi Infos abzufangen(dafür hab ich sonst mein IT Systeminformatiker, 
nur ist der Grade verhindert Nachwuchs im Ansturm)] und hab gehofft hier 
schnelle Hilfe zu finden {wie so oft}.

Also falls andere Menschen vor dem gleichem Problem stehen

VUsb-Midi

http://cryptomys.de/horo/V-USB-MIDI/index.html

Ich Werd wieder Posten wenn ich da weiter bin

Ansonsten bin ich offen für weitere Infos!

von dasrotemopped (Gast)


Lesenswert?

wenn umsonst das entscheidende Kriterium ist. dann ist vielleicht das 
Anvil Studio in der kostenlosen Version das richtige für den PC. 
Zusammen mit einem Midi Interface. egal ob fertig gekauft oder selbst 
gebastelt, hat das bei mir gut funktioniert.
https://youtu.be/WVj0P28P8Yg
Und ich habe gar keine Ahnung von dem Midi Protokoll, ich wollte nur die 
alten Waveblaster Karten mal wieder ans Laufen bringen

Gruß.

dasrotemopped.

von Alex R. (itaxel)


Lesenswert?

Robert M. schrieb:
> Du hast nicht zufällig dein Projekt irgend wo vorgestellt?

Leider noch nicht fertig. Hab dir eine PM geschickt

von microbug (Gast)


Lesenswert?

Du willst etwas mit MIDI bauen und hast keinen blassen Schimmer davon? 
Reichlich sportlich.

Wenn Du Deinen Wissenstand erweitern willst, dann würde ich erstmal 
vorschlagen, sich über MIDI einzulesen, zB im MIDI Kompendium auf 
zem-college.de, oder auch auf Midi.org.

Des Weiteren kannst Du das Ganze vereinfachen, indem Du einen Arduino 
nimmst, da gibt's nämlich eine sehr gute MIDI Library dafür.

Des Weiteren unbedintgt den Artikel "MIDI and the AVR" von Paul Maddox 
lesen, sollte es auf avrfreaks geben.

Wenn Du Hardware für USB über MIDI baust, solltest Du die USB-Schirmung 
der Buchse von der restlichen Masse trennen, zB mit einem keramischen 
Kondensator, denn USB ist im Gegensatz zu klassischem MIDI nicht 
galvanisch getrennt und macht auch sonst alle Vorteile von klassischem 
MIDI kaputt.

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.