Path_To_Core_Engine

Player Step-1: initialize PDJE core engine

auto engine = new PDJE("database/path");
PDJE engine = new PDJE("database/path");
import pdje_POLYGLOT as pypdje
engine = pypdje.PDJE("database/path")
var engine:PDJE_Wrapper = PDJE_Wrapper.new()
engine.InitEngine("res://database/path")

Player Step-2: Search Music & Track

trackdata td = engine->SearchTrack("Track name").front();
musdata md = engine->SearchMusic("music title", "composer name", -1.0).front();
//-1.0 means ignore bpm
TRACK_VEC tdvec = engine.SearchTrack("Track name");
MUS_VEC mdvec = engine.SearchMusic("music title", "composer name", -1.0);
//-1.0 means ignore bpm
import pdje_POLYGLOT as pypdje
from pdje_POLYGLOT import TRACK_VEC
from pdje_POLYGLOT import MUS_VEC

tdvec:TRACK_VEC = engine.SearchTrack("track name")
mdvec:MUS_VEC = engine.SearchMusic("music title", "composer name", -1.0)
#-1.0 means ignore bpm
var tdlist = engine.SearchTrack("track name")
var mdlist = engine.SearchMusic("music name", "composer name", -1.0)
#-1.0 means ignore bpm

Player Step-3: Init, Activate & Deactivate Audio Player

bool player_OK = engine->InitPlayer(PLAY_MODE::HYBRID_RENDER, td, 48);
//render mode, trackdata, sample buffer

engine->ResetPlayer();
//reset player

bool activate_OK = engine->player->Activate();
//start playback

bool deactivate_OK = engine->player->Deactivate();
//stop playback
bool player_OK = engine.InitPlayer(PLAY_MODE::HYBRID_RENDER, tdvec[0], 48);
//render mode, trackdata, sample buffer

var AudioP = engine.GetPlayer();
//get player object

engine.ResetPlayer();
//reset player object.
//WARNING: after reset, AudioP becomes unavailable.

bool activate_OK = AudioP.Activate();
//start playback

bool deactivate_OK = AudioP.Deactivate();
//stop playback
from pdje_POLYGLOT import audioPlayer

player_OK = engine.InitPlayer(PLAY_MODE::HYBRID_RENDER, tdvec.front(), 48)
#render mode, trackdata, sample buffer

AudioP:audioPlayer = engine.GetPlayer()
#get player object

engine.ResetPlayer();
#reset player object.
#WARNING: after reset, AudioP becomes unavailable.

activate_OK = AudioP.Activate()
#start playback

deactivate_OK = AudioP.Deactivate()
#stop playback
var player_OK = engine.InitPlayer(PDJE_Wrapper::HYBRID_RENDER, tdlist[0], 48)
#render mode, trackdata, sample buffer

var AudioP:PlayerWrapper = engine.GetPlayer()
#get player object

engine.ResetPlayer();
#reset player object.
#WARNING: after reset, AudioP becomes unavailable.

var activate_OK = AudioP.Activate()
#start playback

var deactivate_OK = AudioP.Deactivate()
#stop playback

Player Step-4: Get & Use Music Controller Pannel

auto musPannel = engine->player->GetMusicControlPannel();

bool musicFound = engine->SearchMusic("title", "composer");
//find music to playback manually

bool load_OK = musPannel->LoadMusic(*(engine->DBROOT), musicFound.front());
// load found music to deck. music won't playback in here

bool unload_OK = musPannel->UnloadMusic("title");
// unload music from deck. don't forget for the memory space.
// the deck always contains loaded music before calling musPannel.UnloadMusic or engine.ResetPlayer

bool onoff_OK = musPannel->SetMusic("title", true);
// turn on the music. now music playbacks

unsigned long long second = 15;
unsigned long long PCMFrame_position = 15 * 48000;
//PCMFrame_position = second X SampleRate

bool cue_OK = musPannel->CueMusic("title", PCMFrame_position);
//set playback position of the music.

std::vector<std::string> loaded_list = musPannel->GetLoadedMusicList();
//get loaded music list.
PDJE engine = new PDJE("database/path");
import pdje_POLYGLOT as pypdje
engine = pypdje.PDJE("database/path")
var engine:PDJE_Wrapper = PDJE_Wrapper.new()
engine.InitEngine("res://database/path")