mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-30 08:23:01 +00:00
fix some macroInt issues with volume
This commit is contained in:
parent
69c3700ab4
commit
d58270efed
2 changed files with 8 additions and 6 deletions
|
@ -20,6 +20,7 @@
|
||||||
#include "macroInt.h"
|
#include "macroInt.h"
|
||||||
#include "instrument.h"
|
#include "instrument.h"
|
||||||
#include "engine.h"
|
#include "engine.h"
|
||||||
|
#include "../ta-log.h"
|
||||||
|
|
||||||
#define ADSR_LOW source.val[0]
|
#define ADSR_LOW source.val[0]
|
||||||
#define ADSR_HIGH source.val[1]
|
#define ADSR_HIGH source.val[1]
|
||||||
|
@ -52,6 +53,7 @@ void DivMacroStruct::doMacro(DivInstrumentMacro& source, bool released, bool tic
|
||||||
}
|
}
|
||||||
if (masked) {
|
if (masked) {
|
||||||
had=false;
|
had=false;
|
||||||
|
has=false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (delay>0) {
|
if (delay>0) {
|
||||||
|
@ -246,8 +248,10 @@ void DivMacroInt::setEngine(DivEngine* eng) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ADD_MACRO(m,s) \
|
#define ADD_MACRO(m,s) \
|
||||||
|
if (!m.masked) { \
|
||||||
macroList[macroListLen]=&m; \
|
macroList[macroListLen]=&m; \
|
||||||
macroSource[macroListLen++]=&s;
|
macroSource[macroListLen++]=&s; \
|
||||||
|
}
|
||||||
|
|
||||||
void DivMacroInt::init(DivInstrument* which) {
|
void DivMacroInt::init(DivInstrument* which) {
|
||||||
ins=which;
|
ins=which;
|
||||||
|
|
|
@ -75,16 +75,14 @@ void DivPlatformVIC20::acquire(short** buf, size_t len) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivPlatformVIC20::calcAndWriteOutVol(int ch, int env) {
|
void DivPlatformVIC20::calcAndWriteOutVol(int ch, int env) {
|
||||||
|
logV("calcAndWriteOutVol (%d, %d)",ch,env);
|
||||||
chan[ch].outVol=MIN(chan[ch].vol*env/15,15);
|
chan[ch].outVol=MIN(chan[ch].vol*env/15,15);
|
||||||
writeOutVol(ch);
|
writeOutVol(ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivPlatformVIC20::writeOutVol(int ch) {
|
void DivPlatformVIC20::writeOutVol(int ch) {
|
||||||
if (chan[ch].active) {
|
|
||||||
logV("writeOutVol (%d): %d",ch,chan[ch].outVol);
|
|
||||||
rWrite(14,chan[ch].outVol);
|
rWrite(14,chan[ch].outVol);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void DivPlatformVIC20::tick(bool sysTick) {
|
void DivPlatformVIC20::tick(bool sysTick) {
|
||||||
for (int i=0; i<4; i++) {
|
for (int i=0; i<4; i++) {
|
||||||
|
|
Loading…
Reference in a new issue