Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

can

Frischling

  • »can« ist der Autor dieses Themas

Beiträge: 7

Wohnort: Hessen

Beruf: Musiker

  • Private Nachricht senden

1

20.02.2005, 17:37

DMUS_TRANSPOSE_PMSG MidiFileTranspose

hallo zusammen

ich habe ein test programm für DirectMusic geschrieben jetz kann ich MidiFiles abspielen aberich komme mit der strucktur DMUS_TRANSPOSE_PMSG nicht so klar.

ich wollte mal versucht das MidiFile zu Transponieren
und dazu dies code geschreiben.

void CDMusicTest2Dlg:: SendTransMsg(short nTranspose,DWORD dwPChannel)
{
DMUS_TRANSPOSE_PMSG* a;
DMUS_TRANSPOSE_PMSG* b;
a->nTranspose=nTranspose;
b->wMergeIndex=dwPChannel;
}

ich bekomm ein zugriffs fehler.

Aus DirectMusic Doku..
typedef struct _DMUS_TRANSPOSE_PMSG {
DMUS_PMSG_PART
short nTranspose;
WORD wMergeIndex;
} DMUS_TRANSPOSE_PMSG;

wie kann ich hier die Transpose ändern..
was mache ich falsch..
oder wie muss ich mit diese struckt umgehen..
wenn ich das bloss wüste.

hab vieles probiert ich bekomme es nicht hin
ich brauche hilfe

Grüße can

2

20.02.2005, 19:05

C-/C++-Quelltext

1
2
3
4
5
6
7
8
void CDMusicTest2Dlg:: SendTransMsg(short nTranspose,DWORD dwPChannel)
{
     DMUS_TRANSPOSE_PMSG* a = new DMUS_TRANSPOSE_PMSG[];
     DMUS_TRANSPOSE_PMSG* b = new DMUS_TRANSPOSE_PMSG[];

     a->nTranspose=nTranspose; 
     b->wMergeIndex=dwPChannel; 
}

So sollte es klappen.

can

Frischling

  • »can« ist der Autor dieses Themas

Beiträge: 7

Wohnort: Hessen

Beruf: Musiker

  • Private Nachricht senden

3

20.02.2005, 19:25

Dankee kaid

ich habs wie du es geschreiben hast gemacht .
jetz habe ich kein zugriffs fehler aber die neue funktion zeigt kein effek
Kann leider immer noch nicht Transponieren

Muss ich das ganze etwa an das segment senden?
oder sind DMUS_TRANSPOSE_PMSG globaler variablen so das ich sie von überall neue werte zuweisen kann?

so rufe ich die neue funktion auf
void CDMusicTest2Dlg::OnBnClickedLoadmidi()
{
LoadMIDI("Battle.mid");
SendTransMsg(3,10);//Transpose
PlaySegment ();
performance->GetTime(0,0);

}

irgend eine idee was da machen kann?

Werbeanzeige