49 lines
2.0 KiB
C++

#include "Test.h"
#include "Midi/MifiFile.h"
#include "Singleton/MidiSequencer.h"
#include "Singleton/PluginHostList.h"
#include "Singleton/PortAudioAPI.h"
void AronaTest()
{
TArray<FAudioDeviceInfo> AudioDeviceInfos = FPortAudioAPI::Get().GetDevices();
for (const FAudioDeviceInfo& AudioDeviceInfo : AudioDeviceInfos)
{
UE_LOG(LogTemp, Log, TEXT("Audio Device%d: %s"), AudioDeviceInfo.DeviceIndex, *AudioDeviceInfo.Name);
}
// const FString& MidiFilePath = TEXT("E:\\Projects\\Arona\\脑浆炸裂女孩 - 初音ミク.mid");
// const FString& PluginFilePath = TEXT("D:\\Projects\\Rolling\\4Front Piano x64.dll");
// const FString& PluginFilePath = TEXT("F:\\VST\\VST64\\4Front Piano x64.dll");
// FMidiFile Midi;
// Midi.readFrom(MidiFilePath);
// FMidiSequencer& MidiSequencer = FMidiSequencer::Get();
// MidiSequencer.SetTicksPerQuarter(Midi.getTimeFormat());
// FMidiPattern* MidiPattern = MidiSequencer.NewMidiPattern();
// MidiPattern->Name = TEXT("脑浆炸裂女孩 - 初音ミク");
// for (int i = 0; i < Midi.getNumTracks(); ++i)
// {
// FPluginHost* Plugin = FPluginHostList::Get().TryLoadPlugin(PluginFilePath);
// FPluginHostList::Get().RegisterInstrument(Plugin);
//
// const FMidiMessageSequence* Track = Midi.getTrack(i);
// FMidiMessageSequence& Sequence = MidiPattern->GetSequence(Plugin);
// Sequence.addSequence(*Track, 0);
// Sequence.updateMatchedPairs();
// }
// FPluginHost* Kontakt = FPluginHostList::Get().TryLoadPlugin(TEXT("I:\\VST\\VST64\\Kontakt.dll"));
// FPluginHostList::Get().RegisterInstrument(Kontakt);
// MidiPattern->RequestCreateInstance(0, 0, 0, 0, MidiPattern->GetMidiLength(), 0, MidiPattern->GetSampleLength());
// MidiSequencer.PatternSelector.SelectPattern(MidiPattern);
// MidiSequencer.Playing = true;
FPluginHostList::Get().TryLoadSampler(TEXT("F:\\FL垃圾桶\\Kawaii Anokoga Kiniiranai.mp3"));
FPluginHostList::Get().TryLoadSampler(TEXT("F:\\Sample\\Cymatics - Empire Hip Hop Sample Pack\\Melody Loops\\Cymatics - Empire Melody Loop 1 - 100 BPM G Min.wav"));
}