Español
Foro

MIDI-Expediente escribir XProfan/FreeProfan

 

RGH
Lo war zwar no bastante simplemente, el benötigten Informationen para encontrar, aber ahora klappt lo: Das Programa schreibt una Midi-Expediente con zwei Kanälen: Orgel links y Schlagzeug rechts.
Yo habe lo intenta una wenig a kommentieren, así propio Experimente posible son.

Saludo
Roland
KompilierenMarcaSeparación
// Globale Variablen
Declare Integer Kanal, Anschlag, Oktave, String Musik
// Noten-Konstanten
Def %C- -1
Def %C 0
Def %C# 1
Def %D- 1
Def %D 2
Def %D# 3
Def %E- 3
Def %E 4
Def %E# 5
Def %F- 4
Def %F 5
Def %F# 6
Def %G- 6
Def %G 7
Def %G# 8
Def %A- 8
Def %A 9
Def %A# 10
Def %B- 10
Def %B 11
Def %B# 12
// Deutsche Schreibweise
Def %H- 10
Def %H 11
Def %H# 12
// Pause
Def %P $FF

Proc writeHex

    Parameters String sHex
    Declare Integer iLen, iByte
    iLen = len(sHex)/2

    WhileLoop 1, iLen

        iByte = val("$" + left$(sHex,2))
        PutByte #1, iByte
        sHex = Del$(sHex,1,2)

    EndWhile

EndProc

Proc writeByte

    Parameters Integer iByte
    PutByte #1, iByte

EndProc

Proc writeWord

    Parameters Integer iWord
    PutByte #1, iWord \ 256
    PutByte #1, iWord mod 256

EndProc

Proc writeLong

    Parameters Integer iLong
    writeWord(HiWord(iLong))
    writeWord(LoWord(iLong))

EndProc

Proc writeChars

    Parameters String sChars
    PutChar #1, sChars

EndProc

Proc Header

    Parameters Integer iTracks, iTempo
    writeChars("MThd")
    writeLong(6)
    writeWord(1)
    writeWord(iTracks)
    writeWord(iTempo)

EndProc

Proc TrackHeader

    Declare Pointer pAnzahl
    writeChars("MTrk")
    pAnzahl = FilePos(#1)
    writeLong(0)
    writeByte(0)
    Return pAnzahl

EndProc

Proc writeDauer

    Parameters Integer D
    // Deltatime in variable Bitlänge (1 oder 2) umwandeln
    // in dieser Fassung bis max. 0 .. 16383

    if D > 127' Deltatime = 2 Bytes

        writeByte(128 + D \ 128)
        writeByte(D mod 128)

    else' Deltatime = 1 Byte

        writeByte(D)

    endif

EndProc

Proc Note

    Parameters Integer Note, Dauer
    Declare Integer Ton, TonDauer, StummDauer
    Ton = 12 * Oktave + Note

    Select Musik

        CaseOf "N" : TonDauer = Dauer * 7 \ 8

        CaseOf "S" : TonDauer = Dauer * 4 \ 8

        CaseOf "L" : TonDauer = Dauer

    EndSelect

    Case Note = %P : TonDauer = 0
    StummDauer = Dauer - TonDauer

    If TonDauer > 0

        writeByte($90 + Kanal)' Note an auf Kanal
        writeByte(Ton)
        writeByte(Anschlag)' Anschlag
        writeDauer(TonDauer)

    EndIf

    writeByte($80 + Kanal)' Note aus auf Kanal
    writeByte(Ton)
    writeByte(0)' Anschlag 0 = stumm
    writeDauer(Stummdauer)' Zeit bis zur nächsten Note

EndProc

Proc Volume

    Parameters Integer Vol
    writeByte($B0 + Kanal)
    writeByte(7)
    writeByte(Vol)
    writeByte(0)

EndProc

Proc Stereo

    Parameters Integer Pos
    writeByte($B0 + Kanal)
    writeByte(10)
    writeByte(Pos)
    writeByte(0)

EndProc

Proc Instrument

    Parameters Integer Instrument
    writeByte($C0 + Kanal)
    writeByte(Instrument)
    writeByte(0)

EndProc

Proc TrackEnd

    Declare Longint TrackEndPos
    WriteHex("FF2F00")
    TrackEndPos = FilePos(#1)
    Return TrackEndPos

EndProc

// Hauptprogramm
// =============
Declare Longint pAnz, lAnzahl, lTrackStart, lTrackEnd
// Globale Einstellungen, die immer für alle folgenden Noten (Note, Pause)
// bis zur nächsten Änderung gelten
Kanal = 0
Anschlag = 127
Oktave = 4
Musik = "N"' Möglich sind "L"egato, "N"ormal, "S"taccato
// Datei anlegen bzw. öffnen, ggf. vorher löschen
Assign #1, "test.mid"
Erase #1
OpenRW #1
// Header schreiben; Parameter Tracks, Tempo (Viertelnoten/Minute)
Header(2,120)
// Track 1
// Trackheader schreiben; Rückgabe Position für Tracklänge in Bytes
pAnz = TrackHeader()
lTrackStart = FilePos(#1)
// Einstellungen
Volume(127)' Lautstärke 127
Stereo(0)' links
Instrument(16)' Orgel
// Hier kommt die Musik
// Parameter Note, Dauer (in Ticks: 120 = Viertel, 60 = Achtel, etc.)
Musik = "L"
Oktave = 5
Note(%A,120)
Note(%B,120)
Oktave = 6
Note(%C#,60)
Note(%D,60)
Note(%P,120)
Note(%E,120)
Note(%F#,120)
Note(%G#,120)
Note(%A,120)
TrackEnd
lTrackEnd = FilePos(#1)
lAnzahl = lTrackEnd - lTrackStart + 1
Print lAnzahl
Seek #1, pAnz
writeLong(lAnzahl)
// Track 2
// Schreibposition wieder ans Ende setzen
Seek #1, getFileSize(#1)
// Trackheader schreiben; Rückgabe Position für Tracklänge in Bytes
pAnz = TrackHeader()
lTrackStart = FilePos(#1)
// Einstellungen
Kanal = 9' Schlagzeug
Volume(127)' Lautstärke 127
Stereo(127)' rechts
Instrument(25)
Oktave = 3

WhileLoop 4

    Note(%C,30)
    Note(%F#,30)
    Note(%A#,30)
    Note(%F#,30)
    Note(%D,30)
    Note(%F#,30)
    Note(%A#,30)
    Note(%F#,30)

EndWhile

TrackEnd
lTrackEnd = FilePos(#1)
lAnzahl = lTrackEnd - lTrackStart + 1
Print lAnzahl
Seek #1, pAnz
writeLong(lAnzahl)
Close #1
MCISend$("OPEN test.mid TYPE SEQUENCER ALIAS MIDI")
MCISend$("PLAY MIDI WAIT")
MCISend$("CLOSE MIDI"pan>
Imprimir "Fertig!"
WaitInput
End
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
15.03.2013  
 





Auf cada Fall muy fresco,

auch el Operatoren-Signo en el Konstantenbezeichnung toppen igual
otra vez alles en el Faktor infinite!

Müsste Yo fast igual veces media älteren Computer a el Midikeyb anschließen
y una bisschen XProfan-Ver código fuente einspielen -

veces Jörgs Midi-IN raussuchen.
 
15.03.2013  
 



Nu hob i ka Lust mehr,

debería una Fur Elise voluntad -

a freien Verwendung! ^ ^
KompilierenMarcaSeparación
proc note2

    Parameters Integer Note, Okt,Dauer
    Oktave=okt
    Note(Note,Dauer)

endproc

Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%B,5,40)
Note2(%D,6,40)
Note2(%C,6,40)
Note2(%A,3,5)
Note2(%A,5,45)
Note2(%E,4,35)
Note2(%A,4,50)
Note2(%C,5,25)
Note2(%E,5,45)
Note2(%A,5,35)
Note2(%E,3,5)
Note2(%B,5,45)
Note2(%E,4,35)
Note2(%G#,4,50)
Note2(%E,5,25)
Note2(%G#,5,45)
Note2(%B,5,35)
Note2(%A,3,5)
Note2(%C,6,45)
Note2(%E,4,35)
Note2(%A,4,50)
Note2(%E,5,25)
Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%B,5,40)
Note2(%D,6,40)
Note2(%C,6,45)
Note2(%A,3,5)
Note2(%A,5,45)
Note2(%E,4,35)
Note2(%A,4,50)
Note2(%C,5,25)
Note2(%E,5,45)
Note2(%A,5,35)
Note2(%E,3,5)
Note2(%B,5,45)
Note2(%E,4,35)
Note2(%G#,4,50)
Note2(%E,5,25)
Note2(%C,6,45)
Note2(%B,5,35)
Note2(%A,5,5)
Note2(%A,3,45)
Note2(%E,4,45)
Note2(%A,4,65)
Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%B,5,40)
Note2(%D,6,40)
Note2(%C,6,40)
Note2(%A,3,5)
Note2(%A,5,45)
Note2(%E,4,35)
Note2(%A,4,50)
Note2(%C,5,40)
Note2(%E,5,25)
Note2(%A,5,40)
Note2(%E,3,5)
Note2(%B,5,45)
Note2(%E,4,40)
Note2(%G#,4,50)
Note2(%E,5,40)
Note2(%G#,5,25)
Note2(%B,5,40)
Note2(%A,3,5)
Note2(%C,6,45)
Note2(%E,4,35)
Note2(%A,4,50)
Note2(%E,5,25)
Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%D#,6,40)
Note2(%E,6,40)
Note2(%B,5,40)
Note2(%D,6,40)
Note2(%C,6,40)
Note2(%A,3,15)
Note2(%A,5,30)
Note2(%E,4,50)
Note2(%A,4,35)
Note2(%C,5,40)
Note2(%E,5,45)
Note2(%A,5,25)
Note2(%E,3,5)
Note2(%B,5,45)
Note2(%E,4,35)
Note2(%G#,4,50)
Note2(%E,5,35)
Note2(%C,6,45)
Note2(%B,5,25)
Note2(%A,3,5)
Note2(%A,5,45)
Note2(%E,4,45)
Note2(%A,4,25)
Note2(%B,5,45)
Note2(%C,6,40)
Note2(%D,6,40)
Note2(%C,4,10)
Note2(%E,6,45)
Note2(%G,4,30)
Note2(%C,5,45)
Note2(%G,5,35)
Note2(%F,6,45)
Note2(%E,6,30)
Note2(%G,3,5)
Note2(%D,6,50)
Note2(%G,4,35)
Note2(%B,4,35)
Note2(%F,5,40)
Note2(%E,6,45)
Note2(%D,6,30)
Note2(%A,3,5)
Note2(%C,6,50)
Note2(%E,4,35)
Note2(%A,4,35)
Note2(%E,5,40)
Note2(%D,6,45)
Note2(%C,6,30)
Note2(%E,3,5)
Note2(%B,5,50)
Note2(%E,4,30)
Note2(%E,5,40)
Note2(%E,5,45)
Note2(%E,6,30)
Note2(%E,5,45)
Note2(%E,6,35)
Note2(%E,6,40)
Note2(%E,7,40)
Note2(%D#,6,40)
Note2(%E,6,40)

Viel Spaß!
 
15.03.2013  
 




RGH
Ooooch .... gerade wenn's spannend se, es Schluß!

Saludo
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
16.03.2013  
 



Ok, tippe morgen todavía unos pocos mehr Noten a una.
 
16.03.2013  
 




Jörg
Sellmeyer
Super!!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
16.03.2013  
 



Como versprochen:
KompilierenMarcaSeparación
'{$cleq}
// Globale Variablen
Declare Integer Kanal, Anschlag, Oktave, String Musik
// Noten-Konstanten
Def %C- -1
Def %C 0
Def %C# 1
Def %D- 1
Def %D 2
Def %D# 3
Def %E- 3
Def %E 4
Def %E# 5
Def %F- 4
Def %F 5
Def %F# 6
Def %G- 6
Def %G 7
Def %G# 8
Def %A- 8
Def %A 9
Def %A# 10
Def %B- 10
Def %B 11
Def %B# 12
// Deutsche Schreibweise
Def %H- 10
Def %H 11
Def %H# 12
// Pause
Def %P $FF

Proc writeHex

    Parameters String sHex
    Declare Integer iLen, iByte
    iLen = len(sHex)/2

    WhileLoop 1, iLen

        iByte = val("$" + left$(sHex,2))
        PutByte #1, iByte
        sHex = Del$(sHex,1,2)

    EndWhile

EndProc

Proc writeByte

    Parameters Integer iByte
    PutByte #1, iByte

EndProc

Proc writeWord

    Parameters Integer iWord
    PutByte #1, iWord \ 256
    PutByte #1, iWord mod 256

EndProc

Proc writeLong

    Parameters Integer iLong
    writeWord(HiWord(iLong))
    writeWord(LoWord(iLong))

EndProc

Proc writeChars

    Parameters String sChars
    PutChar #1, sChars

EndProc

Proc Header

    Parameters Integer iTracks, iTempo
    writeChars("MThd")
    writeLong(6)
    writeWord(1)
    writeWord(iTracks)
    writeWord(iTempo)

EndProc

Proc TrackHeader

    Declare Pointer pAnzahl
    writeChars("MTrk")
    pAnzahl = FilePos(#1)
    writeLong(0)
    writeByte(0)
    Return pAnzahl

EndProc

Proc writeDauer

    Parameters Integer D
    // Deltatime in variable Bitlänge (1 oder 2) umwandeln
    // in dieser Fassung bis max. 0 .. 16383

    if D > 127' Deltatime = 2 Bytes

        writeByte(128 + D \ 128)
        writeByte(D mod 128)

    else' Deltatime = 1 Byte

        writeByte(D)

    endif

EndProc

proc note2

    Parameters Integer Note, Okt,Dauer
    Oktave=okt
    Note(Note,Dauer)

endproc

Proc Note

    Parameters Integer Note, Dauer
    Declare Integer Ton, TonDauer, StummDauer
    Ton = 12 * Oktave + Note

    Select Musik

        CaseOf "N" : TonDauer = Dauer * 7 \ 8

        CaseOf "S" : TonDauer = Dauer * 4 \ 8

        CaseOf "L" : TonDauer = Dauer

    EndSelect

    Case Note = %P : TonDauer = 0
    StummDauer = Dauer - TonDauer

    If TonDauer > 0

        writeByte($90 + Kanal)' Note an auf Kanal
        writeByte(Ton)
        writeByte(Anschlag)' Anschlag
        writeDauer(TonDauer)

    EndIf

    writeByte($80 + Kanal)' Note aus auf Kanal
    writeByte(Ton)
    writeByte(0)' Anschlag 0 = stumm
    writeDauer(Stummdauer)' Zeit bis zur nächsten Note

EndProc

Proc Volume

    Parameters Integer Vol
    writeByte($B0 + Kanal)
    writeByte(7)
    writeByte(Vol)
    writeByte(0)

EndProc

Proc Stereo

    Parameters Integer Pos
    writeByte($B0 + Kanal)
    writeByte(10)
    writeByte(Pos)
    writeByte(0)

EndProc

Proc Instrument

    Parameters Integer Instrument
    writeByte($C0 + Kanal)
    writeByte(Instrument)
    writeByte(0)

EndProc

Proc TrackEnd

    Declare Longint TrackEndPos
    WriteHex("FF2F00")
    TrackEndPos = FilePos(#1)
    Return TrackEndPos

EndProc

// Hauptprogramm
// =============
Declare Longint pAnz, lAnzahl, lTrackStart, lTrackEnd
// Globale Einstellungen, die immer für alle folgenden Noten (Note, Pause)
// bis zur nächsten Änderung gelten
Kanal = 0
Anschlag = 127
Oktave = 4
Musik = "N"' Möglich sind "L"egato, "N"ormal, "S"taccato
// Datei anlegen bzw. öffnen, ggf. vorher löschen
Assign #1, "test.mid"
Erase #1
OpenRW #1
// Header schreiben; Parameter Tracks, Tempo (Viertelnoten/Minute)
Header(2,100)
// Track 1
// Trackheader schreiben; Rückgabe Position für Tracklänge in Bytes
pAnz = TrackHeader()
lTrackStart = FilePos(#1)
// Einstellungen
Volume(127)' Lautstärke 127
Stereo(0)' links
Instrument(0)' Piano
// Hier kommt die Musik
// Parameter Note, Dauer (in Ticks: 120 = Viertel, 60 = Achtel, etc.)
Musik = "N"

whileloop 4

    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%B,5,40)
    Note2(%D,6,40)
    Note2(%C,6,40)
    Note2(%A,3,10)
    Note2(%A,5,45)
    Note2(%E,4,35)
    Note2(%A,4,35)
    Note2(%C,5,40)
    Note2(%E,5,45)
    Note2(%A,5,30)
    Note2(%E,3,5)
    Note2(%B,5,50)
    Note2(%E,4,30)
    Note2(%G#,4,45)
    Note2(%E,5,35)
    Note2(%G#,5,45)
    Note2(%B,5,30)
    Note2(%A,3,5)
    Note2(%C,6,50)
    Note2(%E,4,30)
    Note2(%A,4,35)
    Note2(%E,5,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,45)
    Note2(%E,6,40)
    Note2(%B,5,40)
    Note2(%D,6,40)
    Note2(%C,6,40)
    Note2(%A,3,5)
    Note2(%A,5,45)
    Note2(%E,4,35)
    Note2(%A,4,50)
    Note2(%C,5,40)
    Note2(%E,5,25)
    Note2(%A,5,40)
    Note2(%E,3,5)
    Note2(%B,5,45)
    Note2(%E,4,35)
    Note2(%G#,4,50)
    Note2(%E,5,40)
    Note2(%C,6,25)
    Note2(%B,5,40)
    Note2(%A,3,5)
    Note2(%A,5,45)
    Note2(%E,4,35)
    Note2(%A,4,35)
    Note2(%B,5,40)
    Note2(%C,6,40)
    Note2(%D,6,40)
    Note2(%C,4,10)
    Note2(%E,6,45)
    Note2(%G,4,30)
    Note2(%C,5,45)
    Note2(%G,5,35)
    Note2(%F,6,45)
    Note2(%E,6,30)
    Note2(%G,3,5)
    Note2(%D,6,50)
    Note2(%G,4,35)
    Note2(%B,4,35)
    Note2(%F,5,45)
    Note2(%E,6,45)
    Note2(%D,6,30)
    Note2(%A,3,5)
    Note2(%C,6,50)
    Note2(%E,4,30)
    Note2(%A,4,45)
    Note2(%E,5,35)
    Note2(%D,6,45)
    Note2(%C,6,30)
    Note2(%E,3,5)
    Note2(%B,5,50)
    Note2(%E,4,25)
    Note2(%E,5,40)
    Note2(%E,5,45)
    Note2(%E,6,35)
    Note2(%E,5,45)
    Note2(%E,6,35)
    Note2(%E,6,40)
    Note2(%E,7,50)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,45)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%B,5,40)
    Note2(%D,6,40)
    Note2(%C,6,30)
    Note2(%A,5,15)
    Note2(%A,3,30)
    Note2(%E,4,35)
    Note2(%A,4,50)
    Note2(%C,5,45)
    Note2(%E,5,25)
    Note2(%A,5,40)
    Note2(%E,3,5)
    Note2(%B,5,45)
    Note2(%E,4,35)
    Note2(%G#,4,50)
    Note2(%E,5,40)
    Note2(%G#,5,25)
    Note2(%B,5,40)
    Note2(%A,3,5)
    Note2(%C,6,45)
    Note2(%E,4,35)
    Note2(%A,4,35)
    Note2(%E,5,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,40)
    Note2(%B,5,40)
    Note2(%D,6,40)
    Note2(%C,6,40)
    Note2(%A,3,10)
    Note2(%A,5,45)
    Note2(%E,4,35)
    Note2(%A,4,35)
    Note2(%C,5,40)
    Note2(%E,5,45)
    Note2(%A,5,30)
    Note2(%E,3,5)
    Note2(%B,5,50)
    Note2(%E,4,35)
    Note2(%G#,4,45)
    Note2(%E,5,35)
    Note2(%C,6,45)
    Note2(%B,5,30)
    Note2(%A,3,5)
    Note2(%A,5,50)
    Note2(%E,4,30)
    Note2(%A,4,40)
    Note2(%C,5,5)
    Note2(%A#,4,5)
    Note2(%C,6,35)
    Note2(%F,5,5)
    Note2(%C,6,25)
    Note2(%G,4,5)
    Note2(%F,5,5)
    Note2(%C,6,5)
    Note2(%G,5,10)
    Note2(%A,5,15)
    Note2(%F,4,5)
    Note2(%C,6,45)
    Note2(%A,4,45)
    Note2(%C,5,70)
    Note2(%F,6,60)
    Note2(%E,6,15)
    Note2(%F,4,5)
    Note2(%E,6,45)
    Note2(%A#,4,35)
    Note2(%D,6,10)
    Note2(%D,5,70)
    Note2(%D,5,5)
    Note2(%A#,6,60)
    Note2(%A,6,10)
    Note2(%F,4,5)
    Note2(%A,6,45)
    Note2(%E,5,5)
    Note2(%G,6,25)
    Note2(%F,6,5)
    Note2(%F,4,5)
    Note2(%G,4,5)
    Note2(%A#,4,25)
    Note2(%E,6,5)
    Note2(%E,5,35)
    Note2(%A#,4,5)
    Note2(%F,4,5)
    Note2(%G,4,5)
    Note2(%D,6,35)
    Note2(%C,6,5)
    Note2(%E,5,35)
    Note2(%A#,5,30)
    Note2(%A,4,40)
    Note2(%A,5,5)
    Note2(%C,5,40)
    Note2(%A,4,30)
    Note2(%A#,5,10)
    Note2(%C,5,5)
    Note2(%A,5,20)
    Note2(%G,5,15)
    Note2(%A,4,5)
    Note2(%A,5,20)
    Note2(%A#,5,15)
    Note2(%F,4,5)
    Note2(%C,6,50)
    Note2(%A,4,40)
    Note2(%C,5,70)
    Note2(%D,6,40)
    Note2(%D#,6,35)
    Note2(%E,4,5)
    Note2(%E,6,50)
    Note2(%A,4,30)
    Note2(%C,5,75)
    Note2(%D,5,5)
    Note2(%D,4,10)
    Note2(%F,6,35)
    Note2(%A,5,5)
    Note2(%F,4,25)
    Note2(%G,4,5)
    Note2(%C,6,50)
    Note2(%E,5,65)
    Note2(%D,6,20)
    Note2(%B,5,5)
    Note2(%C,6,15)
    Note2(%G,4,5)
    Note2(%D,6,10)
    Note2(%C,6,35)
    Note2(%F,5,15)
    Note2(%B,5,15)
    Note2(%C,6,5)
    Note2(%C,5,5)
    Note2(%E,5,25)
    Note2(%G,6,20)
    Note2(%G,5,25)
    Note2(%A,5,20)
    Note2(%G,6,20)
    Note2(%F,5,5)
    Note2(%G,5,5)
    Note2(%B,5,20)
    Note2(%G,6,10)
    Note2(%E,5,5)
    Note2(%G,5,5)
    Note2(%C,6,20)
    Note2(%G,6,10)
    Note2(%D,5,5)
    Note2(%F,5,5)
    Note2(%G,5,5)
    Note2(%D,6,20)
    Note2(%G,6,5)
    Note2(%E,6,35)
    Note2(%G,6,10)
    Note2(%C,7,25)
    Note2(%B,6,10)
    Note2(%F,4,5)
    Note2(%A,4,5)
    Note2(%A,6,20)
    Note2(%G,6,20)
    Note2(%F,6,20)
    Note2(%E,6,10)
    Note2(%G,4,5)
    Note2(%B,4,5)
    Note2(%D,6,20)
    Note2(%G,6,20)
    Note2(%F,6,20)
    Note2(%D,6,15)
    Note2(%C,6,5)
    Note2(%C,5,25)
    Note2(%G,6,20)
    Note2(%G,5,25)
    Note2(%G,6,10)
    Note2(%A,5,30)
    Note2(%G,6,10)
    Note2(%F,5,10)
    Note2(%B,5,15)
    Note2(%G,6,15)
    Note2(%E,5,25)
    Note2(%G,6,10)
    Note2(%D,5,5)
    Note2(%D,6,5)
    Note2(%F,5,15)
    Note2(%G,6,15)
    Note2(%E,6,5)
    Note2(%C,5,5)
    Note2(%E,5,5)
    Note2(%G,5,15)
    Note2(%G,6,25)
    Note2(%C,7,5)
    Note2(%B,6,20)
    Note2(%F,4,5)
    Note2(%A,4,5)
    Note2(%A,6,20)
    Note2(%G,6,20)
    Note2(%F,6,20)
    Note2(%E,6,10)
    Note2(%G,4,5)
    Note2(%B,4,5)
    Note2(%D,6,20)
    Note2(%G,6,20)
    Note2(%F,6,20)
    Note2(%D,6,10)
    Note2(%E,6,5)
    Note2(%B,4,5)
    Note2(%G#,4,25)
    Note2(%F,6,35)
    Note2(%D#,6,35)
    Note2(%B,5,130)
    Note2(%D#,6,20)
    Note2(%E,6,120)
    Note2(%B,5,40)
    Note2(%E,6,40)
    Note2(%D#,6,40)
    Note2(%E,6,120)
    Note2(%B,5,25)
    Note2(%E,6,45)
    Note2(%D#,6,75)

wend

/*
Oktave = 5
Note(%A,120)
Note(%B,120)
Oktave = 6
Note(%C#,60)
Note(%D,60)
Note(%P,120)
Note(%E,120)
Note(%F#,120)
Note(%G#,120)
Note(%A,120)
*/
TrackEnd
lTrackEnd = FilePos(#1)
lAnzahl = lTrackEnd - lTrackStart + 1
Print lAnzahl
Seek #1, pAnz
writeLong(lAnzahl)
// Track 2
// Schreibposition wieder ans Ende setzen
Seek #1, getFileSize(#1)
// Trackheader schreiben; Rückgabe Position für Tracklänge in Bytes
pAnz = TrackHeader()
lTrackStart = FilePos(#1)
// Einstellungen
Kanal = 9' Schlagzeug
Volume(127)' Lautstärke 127
Stereo(127)' rechts
Instrument(25)
Oktave = 3
/*
WhileLoop 4
Note2(%C,3,30)
Note2(%F#,4,30)
Note2(%A#,3,30)
Note2(%F#,4,30)
Note2(%D,3,30)
Note2(%F#,4,30)
Note2(%A#,3,30)
Note2(%F#,4,30)
EndWhile
*/
TrackEnd
lTrackEnd = FilePos(#1)
lAnzahl = lTrackEnd - lTrackStart + 1
Print lAnzahl
Seek #1, pAnz
writeLong(lAnzahl)
Close #1
MCISend$("OPEN test.mid TYPE SEQUENCER ALIAS MIDI")class=s4 href='./../../funktionsreferenzen/XProfan/mcisend/'>MCISend$("PLAY MIDI WAIT")
MCISend$("CLOSE MIDI")
Imprimir "Fertig!"
WaitInput
End
 
16.03.2013  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.005 Views

Untitledvor 0 min.
Jörg Sellmeyer15.05.2018
Rainer Hoefs04.02.2016
RGH28.05.2015
iF12.04.2015
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

iF (4x)
RGH (2x)
Jörg Sellmeyer (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie