MCPcopy Create free account
hub / github.com/BambooTracker/BambooTracker / initSSG

Method initSSG

BambooTracker/opna_controller.cpp:2447–2505  ·  view source on GitHub ↗

/

Source from the content-addressed store, hash-verified

2445
2446/***********************************/
2447void OPNAController::initSSG()
2448{
2449 mixerSSG_ = 0xff;
2450 opna_->setRegister(0x07, mixerSSG_);
2451 noisePeriodSSG_ = 0;
2452 opna_->setRegister(0x06, noisePeriodSSG_);
2453 hardEnvPeriodHighSSG_ = 0;
2454 hardEnvPeriodLowSSG_ = 0;
2455
2456 for (size_t ch = 0; ch < 3; ++ch) {
2457 auto& ssg = ssg_[ch];
2458 ssg.ch = ch;
2459
2460 ssg.isKeyOn = false;
2461 ssg.hasKeyOnBefore = false;
2462 ssg.isInKeyOnProcess_ = false;
2463
2464 ssg.refInst.reset(); // Init envelope
2465
2466 ssg.echoBuf.clear();
2467
2468 ssg.neverSetBaseNote = true;
2469 ssg.baseVol = bt_defs::NSTEP_SSG_VOLUME - 1; // Init volume
2470 ssg.oneshotVol = UNUSED_VALUE;
2471 ssg.isHardEnv = false;
2472
2473 // Init sequence
2474 ssg.shouldSkip1stTickExec = false;
2475 ssg.wfItr.reset();
2476 ssg.wfChState = SSGWaveformUnit::makeOnlyDataUnit(SSGWaveformType::UNSET);
2477 ssg.envItr.reset();
2478 ssg.envState = SSGEnvelopeUnit();
2479 ssg.tnItr.reset();
2480 ssg.arpItr.reset();
2481 ssg.ptItr.reset();
2482 ssg.ptSum = 0;
2483 ssg.shouldSetEnv = false;
2484 ssg.shouldSetSqMaskFreq = false;
2485 ssg.shouldSetHardEnvFreq = false;
2486 ssg.shouldUpdateMixState = false;
2487 ssg.shouldSetTone = false;
2488
2489 // Effect
2490 ssg.isArpEff = false;
2491 ssg.prtmDepth = 0;
2492 ssg.isTonePrtm = false;
2493 ssg.vibItr.reset();
2494 ssg.treItr.reset();
2495 ssg.volSld = 0;
2496 ssg.volSldSum = 0;
2497 ssg.xVolSldItr.reset();
2498 ssg.detune = 0;
2499 ssg.fdetune = 0;
2500 ssg.nsItr.reset();
2501 ssg.nsSum = 0;
2502 ssg.transpose = 0;
2503 ssg.hasRequestedTnEffSet = false;
2504 }

Callers

nothing calls this directly

Calls 3

setRegisterMethod · 0.45
resetMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected