English
Source / code snippets

Play Midi Sound

 

CompileMarkSeparation
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Sound: Midi abspielen
Midi per MCI Dieter Zornow
Declare Midierror&

Proc Midi_Open

    Parameters MidiFile$

    If @NEq$(MidiFile$,)

        @MCISend$(OPEN +@Chr$(34)+MidiFile$+@Chr$(34)+ TYPE SEQUENCER ALIAS Midi_play)
        @MCISend$(set Midi_play time format ms)

    EndIf

EndProc

Proc Midi_Stop

    @MCISend$(STOP Midi_play)
    @MCISend$(CLOSE Midi_play)

EndProc

Proc Midi_Close

    @MCISend$(CLOSE Midi_play)

EndProc

proc Midi_Error

    if %mcierror

        declare tz$,mess$
        let tz$=Device Error
        let mess$=Sorry, The Player can´t play this File
        @messagebox(mess$,tz$,48)
        Midi_Stop
        Midi_Close
        let Midierror&=1
        return Midierror&

    endif

    let Midierror&=0
    return Midierror&

endproc

Proc Midi_Play

    @MCISend$(PLAY Midi_play)

EndProc

Proc Midi_PlayLoop

    @MCISend$(PLAY Midi_play LOOP)

EndProc

Proc Midi_PlayFromTO

    parameters from$,to$
    @MCISend$(PLAY Midi_play FROM +from$+ TO +To$)  Spielt von Track bis Track mit Parameter from& to&

EndProc

Proc Midi_SeekToEnd

    @MCISend$(SEEK Midi_play TO END) Sucht Vorwärts bis zum Ende

EndProc

Proc Midi_SeekToStart

    @MCISend$(SEEK Midi_play TO START) Sucht Rückwärts bis zum Anfang

EndProc

Proc Midi_SeekTO

    Parameters pos$
    @MCISend$(SEEK Midi_play TO +pos$) Sucht bis zur Position

EndProc

Proc Midi_Pause

    @MCISend$(PAUSE Midi_play)

EndProc

Proc Midi_PlayMode

    Declare Midi_Result$
    Let Midi_Result$=@MCISend$(STATUS Midi_play MODE)zeigt den Zustand (stopped, playing, paused, not ready)
    Return Midi_Result$

EndProc

Proc Midi_length LengthMidi weiter unten benutzen für Umrechnung

    Declare Midi_Result$
    Let Midi_Result$=@MCISend$(STATUS Midi_play LENGTH) Länge der Midi
    Return Midi_Result$

Endproc

Proc Midi_position posMidi weiter unten benutzen für Umrechnung

    Declare Midi_Result$
    Let Midi_Result$=@MCISend$(STATUS Midi_play POSITION) aktuelle Position
    Return Midi_Result$

Endproc

Proc MidiTempo

    parameters tempo$
    Let Midi_Result$=@MCISend$(SET Midi_play TEMPO +tempo$)
    set clavier tempo 170

endproc

Proc LengthMidi rechnet in Minuten Sekunden der String 00:00

    declare lang&,sek%,wert$,lang$,temp$
    Midi_length
    Let lang&=@Val(@&(0))
    let sek%=@div&(lang&,1000)
    let lang&=@div&(sek%,60)
    let temp$=add$(str$(lang&),:)

    If @equ(@len(temp$),2)

        let wert$=@add$(0,temp$)

    else

        let wert$=temp$

    endif

    let sek%=@sub(sek%,@mul(lang&,60))

    If @lt(sek%,10)

        let wert$=@add$(wert$,0)
        let wert$=@add$(wert$,@str$(sek%))

    else

        let wert$=@add$(wert$,@str$(sek%))

    endif

    Return wert$

EndProc

Proc PosMidi rechnet in Minuten Sekunden der String 00:00

    declare lang&,sek%,wert$,lang$,temp$
    let wert$=00:00
    Midi_position
    let lang&=@Val(@&(0))
    let sek%=@div&(lang&,1000)
    let lang&=@div&(sek%,60)
    let temp$=add$(str$(lang&),:)

    If @equ(@len(temp$),2)

        let wert$=@add$(0,temp$)

    else

        let wert$=temp$

    endif

    let sek%=@sub(sek%,@mul(lang&,60))

    If @lt(sek%,10)

        let wert$=@add$(wert$,0)
        let wert$=@add$(wert$,@str$(sek%))

    else

        let wert$=@add$(wert$,@str$(sek%))

    endif

    Return wert$

Endproc

beispiel
cls
Midi_open C:WINDOWSMEDIATOWN.MID
Midi_open MIDI_01.MID
LengthMidi
print @$(0)
Midi_PlayMode
Print Playmode:,@$(0)
Midi_Play
Midi_PlayMode
Print Playmode:,@$(0)
Print klick für Pause
waitinput
Midi_Pause
Midi_PlayMode
Print Playmode:,@$(0)
Print klick für weiter und Positon
waitinput
Midi_Play
Midi_PlayMode
Print Playmode:,@$(0)
PosMidi  In schleife abfragen
print @$(0)
../../Function-References/XProfan/waitinput/'>waitinput
Midi_Stop
Midi_Close
 
07/16/07  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

3.635 Views

Untitledvor 0 min.
H.Brill10/30/23
Sven Bader10/14/21
Frank04/16/21
Jupp Fitten07/31/13
More...

Themeninformationen

this Topic has 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie