Midi

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Samus Aran.

    hallo an alle,
    es ist zwar spät, aber eine Frage hätte ich noch:

    gibt es eine möglichkeit den sound über midiout aufzunehmen? (Record)

    Bin seit Tage auf der suche ohne Erfolg.
    Eine Ansatz wäre willkommen.

    Mein Projekt ist folgendes:

    ich produziere Töne in Tempo, octave und noten.

    Mochte gerne eine RECORD funktion, finde aber keine.
    Bitte um Unterstützung.
    lg
    toto

    *Topic verschoben*
    lg toto

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Über MIDI kann man keine Audiodaten aufnehmen ! Für dir mal diesen Wikipediaartikel zu gemühte.

    ...
    ich produziere Töne in Tempo, octave und noten.
    ...


    Häh ? Das ergibt keinen Sinn ! Ich denke, dir fehlt das grundsätzliche Verständnis für die Materie !?!

    Möchtest du ein Programm schreiben, mit dem du Aufnehmen kannst, oder wie, oder was ?
    Wenn ja, dann bemühe doch mal die Forensuche !
    Danke timonator für deine Antwort.

    Habe mich evtll. zu wenig ausgedruckt. (sorry aber Deutsch ist nicht meine Muttesprache)

    Also:
    ein Programm um Midi Töne zu erzeugen habe ich schon geschrieben.
    Brauche nicht mein ganzes Code hier zu schreiben.
    Hier ist die Ausgangsituation:

    VB.NET-Quellcode

    1. Public Sub PlaySequence()
    2. m.PlayMIDINote(TextBox1.Text, 127) 'Play MIDI Sounds
    3. m.PlayMIDINote(TextBox2.Text, 127) 'Play MIDI Sounds
    4. m.PlayMIDINote(TextBox3.Text, 127) 'Play MIDI Sounds
    5. m.PlayMIDINote(TextBox4.Text, 127) 'Play MIDI Sounds
    6. m.PlayMIDINote(TextBox5.Text, 127) 'Play MIDI Sounds
    7. m.PlayMIDINote(TextBox6.Text, 127) 'Play MIDI Sounds
    8. End Sub


    Es ist ein Begleitprogramm für mein Solo Gitarre der mir Akkordfolge spielt.
    Ich würde gerne diese Akkordfolgen speichern oder aufnehmen in eine midi oder wave Datei, um nicht immer vorm
    Computer sitzen zu müssen.
    Habe jetzt meine Situation besser erklärt??
    Suche Tipps in dieser Richtung.

    lg
    toto

    Häh ? Das ergibt keinen Sinn ! Ich denke, dir fehlt das grundsätzliche Verständnis für die Materie !?!


    Wenn du meinst midi speichern oder aufnehmen (record) hast du evtll. recht.
    Wenn du die Musik meinst, ich spiele seit 15 Jahre Klassische gitarre, seit 5 Jahre Jazz Gitarre und seit 8 Jahre Saxophon.
    lg toto
    Und wo willst du das dann abspielen?
    Der WindowsMediaPlayer z.B. kann MIDI-Dateien abspielen. Jedoch ob das z.B. ein IPOD kann bezweifle ich.
    Wenn du auf der sicheren Seite sein willst würde ich Wave nehmen.

    Nen bisschen mehr Infos wären gut.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Nö ist es nicht. Und nicht jeder Musikplayer kann MIDI. Außerdem wenn er sagt nicht jedes mal an den Computer zu müssen dann wird es sich kaum um einen Mediaplayer o.a. handeln.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Wenn ein Player aufm PC kein MIDI unterstützt, ist er Schrott. Ganz einfach.
    Und er möchte Noten, die er im Code bereits erzeugen kann, in eine MIDI schreiben, um diese dann irgendwo abspielen zu können. Offensichtlich wird das kein Mediaplayer.
    Also Danke ertmal für eure Antworten.
    Um das abspielen zu klähren:
    Kein PC, kein Mediaplayer.

    Habe oben geschrieben:
    Midi oder Wave.
    Ich bevorzüge Wave da sie überall abspielen lassen ( USB, CD...usw.)
    Anders mit Midi, da braucht man ein Mediaplayer oder ein Gerät der Midi abspielen kann.

    Mein Problen ist, als zweiter Schritt in meinem Programm "Speichern".

    Habe inzwischen was gefunden:

    blogs.msdn.com/b/vbteam/archiv…vb-part-2-matt-gertz.aspx

    Dabei ist ein Abschnitt in seiner Midi Classe fürs Save.
    Ich weiß nicht wie dieses Abschnitt in meiner Midi Classe integriere.

    Oder habt ihr andere Vorschläge??

    lg
    toto

    Edit: Ich will nicht jedesmal die Akkordfolgen im Programm tippen, daher ist für mich das Speichern zunächst wichtig.
    lg toto

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „toto“ ()

    Boooaaaa!!!!!

    Da ist jede Menge drin.
    Hoffe das Richtige zu finden.
    Brauche Zeit zum Lesen.
    Melde mich wieder.
    Danke an alle.
    lg
    toto
    lg toto

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „toto“ ()

    Also, für die jenige den es interessiert.
    Speichern:

    VB.NET-Quellcode

    1. Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal Command As String, _
    2. ByVal ReturnString As String, ByVal ReturnLength As Integer, ByVal Callback As Integer) As Integer
    3. Dim Path As String = "C:\Test.wav"
    4. Dim rs As String
    5. Dim cb As Integer
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. Button11.Text = "Record Sound"
    8. Button12.Text = "Play Sound"
    9. Button12.Enabled = False
    10. End Sub
    11. Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
    12. If Button11.Text = "Record Sound" Then
    13. Button11.Text = "Stop Sound"
    14. Button12.Enabled = False
    15. rs = New String(" ", 128)
    16. Call mciSendString("Open New Type waveaudio Alias capture", rs, 128, cb)
    17. Call mciSendString("record capture", rs, 128, cb)
    18. Else
    19. Button11.Text = "Record"
    20. Button12.Enabled = True
    21. Call mciSendString("Stop capture", rs, 128, cb)
    22. Call mciSendString("save capture " & Path, rs, 128, cb)
    23. Call mciSendString("Close capture", rs, 128, cb)
    24. End If
    25. End Sub
    26. Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
    27. My.Computer.Audio.Play(Path, AudioPlayMode.Background)
    28. Button11.Enabled = True
    29. End Sub




    Vorher noch in Win Lautstärkeregelung auf Option dann Eigenschaft und dort Aufnahme Haken setzen.
    Fenster geht auf und ich habe einfach auf Mono Haken gesetzt (hier kann man auch was anders einstellen).Fertig.
    So bei mir wird die wave Datei in : siehe Path ,gespeichert.

    Eine Frage:
    Die Datei wird ständig überschrieben, das möchte ich nicht.
    Habe mit:

    VB.NET-Quellcode

    1. Dim Path As String = "C:\Song\" & TextBox10.Text & ".wav"


    Geht nicht da mir den Fehler: Es ist keine Quelle verfügbar. angezeigt wird.

    Wie kann ich die Datei in einen Ordner speichern????

    Danke in Voraus
    toto
    lg toto
    Moin Toto,

    toto schrieb:

    "RESOLVED"
    musst Du allein machen, dafür hast Du den Erledigt-Button unten rechts.
    Suboptimal ist, wenn Du Deine C-Root mit Deinen Sounds vollknallst. Pack sie auf ein separates Verzeichnis, dass Du sie auch bewuem löschen kannst. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!