From 77f12fd001930eb5c96c0a8e035fa967b4c9bf15 Mon Sep 17 00:00:00 2001 From: asb2m10 Date: Fri, 5 Sep 2014 00:31:49 -0400 Subject: [PATCH] Version 0.7a --- .../UserInterfaceState.xcuserstate | Bin 134902 -> 135830 bytes README.md | 6 +- Source/EngineMkI.cpp | 161 +++++++++++------- Source/EngineMkI.h | 33 ++-- Source/EngineOpl.cpp | 2 +- Source/PluginEditor.cpp | 2 +- Source/PluginProcessor.cpp | 5 +- Source/msfa/dx7note.cc | 18 +- Source/msfa/env.cc | 4 +- Source/msfa/env.h | 2 +- 10 files changed, 134 insertions(+), 99 deletions(-) diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate index 7ee7cd193d61acc7943169c2438d21ac57d42b09..daf8a9b25916e357cfaeac1ebd90c7137bb903ae 100644 GIT binary patch literal 135830 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

yE;p&$eXDHa0g=X4tz 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ⅇ;W7K+ru1hj4hPkLA_&) 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 z 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 b-&BEE3y6V>enEhR2|_DrLTD(-*k%L(hi*33 diff --git a/README.md b/README.md index 74104a3..a0bc218 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,13 @@ Changelog #### Version 0.7.0 (current sprint) * Preliminary Algo 4 & 6 feedback support * DX Engine 'Dirty DX' emulation, including one based on OPL chips -* DX Engine LFO amplitude. This still needs some tunings :( +* DX Engine LFO amplitude. This still needs tuning. * Monophonic mode * Added the 'INIT' button to re-initialize a program * Fixed stucked notes when programs where changed * Fixed engine envelopes wrong timing if it was not 44100Khz * Fixed only .syx are shown when we are using the Dexed_cart.zip cartridges collection +* The DX7 Sysex port are now only used for sysex messages. This is to avoid any midi note feedback. #### Version 0.6.1 * Mouse over + LFO type fix + pitch eg values @@ -146,4 +147,5 @@ TODO - Dexed TODO - msfa ----------- * Portamento implementation -* Feedback tuning \ No newline at end of file +* Better Amplitude Modulation +* Test maximum delay lfo values that seems to be reset \ No newline at end of file diff --git a/Source/EngineMkI.cpp b/Source/EngineMkI.cpp index c24020a..fba1f17 100644 --- a/Source/EngineMkI.cpp +++ b/Source/EngineMkI.cpp @@ -1,21 +1,18 @@ -/** - * - * Copyright (c) 2014 Pascal Gauthier. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. +/* + * Copyright 2014 Pascal Gauthier. + * Copyright 2012 Google Inc. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * http://www.apache.org/licenses/LICENSE-2.0 * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #include "EngineMkI.h" @@ -26,6 +23,41 @@ #include "msfa/sin.h" #include "msfa/exp2.h" +const FmAlgorithm EngineMkI::algo2[32] = { + { { 0xc1, 0x11, 0x11, 0x14, 0x01, 0x14 } }, // 1 + { { 0x01, 0x11, 0x11, 0x14, 0xc1, 0x14 } }, // 2 + { { 0xc1, 0x11, 0x14, 0x01, 0x11, 0x14 } }, // 3 + { { 0xc4, 0x00, 0x00, 0x01, 0x11, 0x14 } }, // 4 ** EXCEPTION VIA CODE + { { 0xc1, 0x14, 0x01, 0x14, 0x01, 0x14 } }, // 5 + { { 0xc4, 0x00, 0x01, 0x14, 0x01, 0x14 } }, // 6 ** EXCEPTION VIA CODE + { { 0xc1, 0x11, 0x05, 0x14, 0x01, 0x14 } }, // 7 + { { 0x01, 0x11, 0xc5, 0x14, 0x01, 0x14 } }, // 8 + { { 0x01, 0x11, 0x05, 0x14, 0xc1, 0x14 } }, // 9 + { { 0x01, 0x05, 0x14, 0xc1, 0x11, 0x14 } }, // 10 + { { 0xc1, 0x05, 0x14, 0x01, 0x11, 0x14 } }, // 11 + { { 0x01, 0x05, 0x05, 0x14, 0xc1, 0x14 } }, // 12 + { { 0xc1, 0x05, 0x05, 0x14, 0x01, 0x14 } }, // 13 + { { 0xc1, 0x05, 0x11, 0x14, 0x01, 0x14 } }, // 14 + { { 0x01, 0x05, 0x11, 0x14, 0xc1, 0x14 } }, // 15 + { { 0xc1, 0x11, 0x02, 0x25, 0x05, 0x14 } }, // 16 + { { 0x01, 0x11, 0x02, 0x25, 0xc5, 0x14 } }, // 17 + { { 0x01, 0x11, 0x11, 0xc5, 0x05, 0x14 } }, // 18 + { { 0xc1, 0x14, 0x14, 0x01, 0x11, 0x14 } }, // 19 + { { 0x01, 0x05, 0x14, 0xc1, 0x14, 0x14 } }, // 20 + { { 0x01, 0x14, 0x14, 0xc1, 0x14, 0x14 } }, // 21 + { { 0xc1, 0x14, 0x14, 0x14, 0x01, 0x14 } }, // 22 + { { 0xc1, 0x14, 0x14, 0x01, 0x14, 0x04 } }, // 23 + { { 0xc1, 0x14, 0x14, 0x14, 0x04, 0x04 } }, // 24 + { { 0xc1, 0x14, 0x14, 0x04, 0x04, 0x04 } }, // 25 + { { 0xc1, 0x05, 0x14, 0x01, 0x14, 0x04 } }, // 26 + { { 0x01, 0x05, 0x14, 0xc1, 0x14, 0x04 } }, // 27 + { { 0x04, 0xc1, 0x11, 0x14, 0x01, 0x14 } }, // 28 + { { 0xc1, 0x14, 0x01, 0x14, 0x04, 0x04 } }, // 29 + { { 0x04, 0xc1, 0x11, 0x14, 0x04, 0x04 } }, // 30 + { { 0xc1, 0x14, 0x04, 0x04, 0x04, 0x04 } }, // 31 + { { 0xc4, 0x04, 0x04, 0x04, 0x04, 0x04 } }, // 32 +}; + void EngineMkI::compute(int32_t *output, const int32_t *input, int32_t phase0, int32_t freq, int32_t gain1, int32_t gain2, bool add, const Controllers *controllers) { @@ -115,9 +147,9 @@ void EngineMkI::compute_fb(int32_t *output, int32_t phase0, int32_t freq, fb_buf[1] = y; } -/* + // exclusively used for ALGO 6 with feedback -void EngineMkI::compute_fb2(int32_t *output, FmOpParams *parms, int32_t *fb_buf, int fb_shift, const Controllers *cont) { +void EngineMkI::compute_fb2(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift, const Controllers *cont) { int32_t dgain[2]; int32_t gain[2]; int32_t phase[2]; @@ -127,27 +159,29 @@ void EngineMkI::compute_fb2(int32_t *output, FmOpParams *parms, int32_t *fb_buf, phase[0] = parms[0].phase; phase[1] = parms[1].phase; - dgain[0] = (parms[0].gain[1] - parms[0].gain[0] + (N >> 1)) >> LG_N; - dgain[1] = (parms[1].gain[1] - parms[1].gain[0] + (N >> 1)) >> LG_N; + gain[0] = gain01; + gain[1] = parms[1].gain_out; - gain[0] = parms[0].gain[0]; - gain[1] = parms[1].gain[1]; + dgain[0] = (gain02 - gain01 + (N >> 1)) >> LG_N; + parms[1].gain_out = Exp2::lookup(parms[1].level_in - (14 * (1 << 24))); + dgain[1] = (parms[1].gain_out - gain[1] + (N >> 1)) >> LG_N; + for (int i = 0; i < N; i++) { // op 0 gain[0] += dgain[0]; - int32_t scaled_fb = (y0 + y) >> (fb_shift + 1); + int32_t scaled_fb = (y0 + y) >> (fb_shift + 2); // tsk tsk tsk: this needs some tuning y0 = y; y = Sin::lookup(phase[0] + scaled_fb); - y = ((int64_t)y * (int64_t)gain) >> 24; + y &= cont->sinBitFilter; + y = ((int64_t)y * (int64_t)gain[0]) >> 24; phase[0] += parms[0].freq; // op 1 gain[1] += dgain[1]; - scaled_fb = (y0 + y) >> (fb_shift + 1); - y0 = y; - y = Sin::lookup(phase[1] + scaled_fb + y); - y = ((int64_t)y * (int64_t)gain) >> 24; + y = Sin::lookup(phase[1] + y); + y &= cont->sinBitFilter; + y = ((int64_t)y * (int64_t)gain[1]) >> 24; output[i] = y; phase[1] += parms[1].freq; } @@ -156,7 +190,7 @@ void EngineMkI::compute_fb2(int32_t *output, FmOpParams *parms, int32_t *fb_buf, } // exclusively used for ALGO 4 with feedback -void EngineMkI::compute_fb3(int32_t *output, FmOpParams *parms, int32_t *fb_buf, int fb_shift, const Controllers *conts) { +void EngineMkI::compute_fb3(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift, const Controllers *cont) { int32_t dgain[3]; int32_t gain[3]; int32_t phase[3]; @@ -166,50 +200,52 @@ void EngineMkI::compute_fb3(int32_t *output, FmOpParams *parms, int32_t *fb_buf, phase[0] = parms[0].phase; phase[1] = parms[1].phase; phase[2] = parms[2].phase; + + gain[0] = gain01; + gain[1] = parms[1].gain_out; + gain[2] = parms[2].gain_out; - dgain[0] = (parms[0].gain[1] - parms[0].gain[0] + (N >> 1)) >> LG_N; - dgain[1] = (parms[1].gain[1] - parms[1].gain[0] + (N >> 1)) >> LG_N; - dgain[2] = (parms[2].gain[1] - parms[2].gain[0] + (N >> 1)) >> LG_N; + dgain[0] = (gain02 - gain01 + (N >> 1)) >> LG_N; - gain[0] = parms[0].gain[0]; - gain[1] = parms[1].gain[0]; - gain[2] = parms[2].gain[0]; + parms[1].gain_out = Exp2::lookup(parms[1].level_in - (14 * (1 << 24))); + dgain[1] = (parms[1].gain_out - gain[1] + (N >> 1)) >> LG_N; + parms[2].gain_out = Exp2::lookup(parms[2].level_in - (14 * (1 << 24))); + dgain[2] = (parms[1].gain_out - gain[2] + (N >> 1)) >> LG_N; for (int i = 0; i < N; i++) { // op 0 gain[0] += dgain[0]; - int32_t scaled_fb = (y0 + y) >> (fb_shift + 1); + int32_t scaled_fb = (y0 + y) >> (fb_shift + 6); // tsk tsk tsk: this needs some tuning y0 = y; y = Sin::lookup(phase[0] + scaled_fb); - y = ((int64_t)y * (int64_t)gain) >> 24; + y &= cont->sinBitFilter; + y = ((int64_t)y * (int64_t)gain[0]) >> 24; phase[0] += parms[0].freq; // op 1 gain[1] += dgain[1]; - scaled_fb = (y0 + y) >> (fb_shift + 1); - y0 = y; - y = Sin::lookup(phase[1] + scaled_fb + y); - y = ((int64_t)y * (int64_t)gain) >> 24; + y = Sin::lookup(phase[1] + y); + y &= cont->sinBitFilter; + y = ((int64_t)y * (int64_t)gain[1]) >> 24; phase[1] += parms[1].freq; // op 2 gain[2] += dgain[2]; - scaled_fb = (y0 + y) >> (fb_shift + 1); - y0 = y; - y = Sin::lookup(phase[2] + scaled_fb + y); - y = ((int64_t)y * (int64_t)gain) >> 24; + y = Sin::lookup(phase[2] + y); + y &= cont->sinBitFilter; + y = ((int64_t)y * (int64_t)gain[2]) >> 24; output[i] = y; phase[2] += parms[2].freq; } fb_buf[0] = y0; fb_buf[1] = y; } -*/ + void EngineMkI::render(int32_t *output, FmOpParams *params, int algorithm, int32_t *fb_buf, int feedback_shift, const Controllers *controllers) { const int kLevelThresh = 1120; - const FmAlgorithm alg = algorithms[algorithm]; + const FmAlgorithm alg = algo2[algorithm]; bool has_contents[3] = { true, false, false }; for (int op = 0; op < 6; op++) { @@ -234,35 +270,29 @@ void EngineMkI::render(int32_t *output, FmOpParams *params, int algorithm, // still needs some tuning... if ((flags & 0xc0) == 0xc0 && feedback_shift < 16) { switch ( algorithm ) { - /* // two operator feedback, process exception for ALGO 6 - case 5 : - EngineMkI::compute_fb2(outptr, params, fb_buf, feedback_shift); - param.phase += param.freq << LG_N; - params[1].phase += param.freq + params[1].freq << LG_N; // yuk, hack, we already processed op-5 - op++; // ignore next operator; - break; - // three operator feedback, process exception for ALGO 4 - case 3 : - FmOpKernel::compute_fb3(outptr, params, fb_buf, feedback_shift); - param.phase += param.freq << LG_N; - params[1].phase += param.freq + params[1].freq << LG_N; // hack, we already processed op-5 - op-4 - params[2].phase += param.freq + params[1].freq + params[2].freq << LG_N; // yuk yuk - op += 2; // ignore the 2 other operators - break;*/ + // two operator feedback, process exception for ALGO 6 + case 5 : + compute_fb2(outptr, params, gain1, gain2, fb_buf, feedback_shift, controllers); + params[1].phase += params[1].freq << LG_N; // yuk, hack, we already processed op-5 + op++; // ignore next operator; + break; + // three operator feedback, process exception for ALGO 4 + case 3 : + compute_fb3(outptr, params, gain1, gain2, fb_buf, feedback_shift, controllers); + params[1].phase += params[1].freq << LG_N; // hack, we already processed op-5 - op-4 + params[2].phase += params[2].freq << LG_N; // yuk yuk + op += 2; // ignore the 2 other operators + break; default: // one operator feedback, normal proces //cout << "\t" << op << " fb " << inbus << outbus << add << endl; compute_fb(outptr, param.phase, param.freq,gain1, gain2, fb_buf, feedback_shift, add, controllers); - param.phase += param.freq << LG_N; break; } - has_contents[outbus] = true; - continue; } else { // cout << op << " pure " << inbus << outbus << add << endl; compute_pure(outptr, param.phase, param.freq, gain1, gain2, add, controllers); } - } else { // cout << op << " normal " << inbus << outbus << " " << param.freq << add << endl; @@ -274,7 +304,6 @@ void EngineMkI::render(int32_t *output, FmOpParams *params, int algorithm, } else if (!add) { has_contents[outbus] = false; - } param.phase += param.freq << LG_N; } diff --git a/Source/EngineMkI.h b/Source/EngineMkI.h index 67ee67e..6f9be3a 100644 --- a/Source/EngineMkI.h +++ b/Source/EngineMkI.h @@ -1,21 +1,18 @@ -/** +/* + * Copyright 2014 Pascal Gauthier. + * Copyright 2012 Google Inc. * - * Copyright (c) 2014 Pascal Gauthier. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * http://www.apache.org/licenses/LICENSE-2.0 * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #ifndef ENGINEMKI_H_INCLUDED @@ -29,6 +26,8 @@ class EngineMkI : public FmCore { + //refacter this when it is working + const static FmAlgorithm algo2[32]; public: virtual void render(int32_t *output, FmOpParams *params, int algorithm, int32_t *fb_buf, int feedback_shift, const Controllers *controllers); @@ -42,9 +41,9 @@ public: void compute_fb(int32_t *output, int32_t phase0, int32_t freq, int32_t gain1, int32_t gain2, int32_t *fb_buf, int fb_gain, bool add, const Controllers *controllers); - void compute_fb2(int32_t *output, FmOpParams *params, int32_t *fb_buf, int fb_shift, const Controllers *controllers); + void compute_fb2(int32_t *output, FmOpParams *params, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift, const Controllers *controllers); - void compute_fb3(int32_t *output, FmOpParams *params, int32_t *fb_buf, int fb_shift, const Controllers *controllers); + void compute_fb3(int32_t *output, FmOpParams *params, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift, const Controllers *controllers); }; diff --git a/Source/EngineOpl.cpp b/Source/EngineOpl.cpp index 4443c61..3b3dee8 100644 --- a/Source/EngineOpl.cpp +++ b/Source/EngineOpl.cpp @@ -154,7 +154,7 @@ void EngineOpl::compute_fb(int32_t *output, int32_t phase0, int32_t freq, gain += dgain; int32_t scaled_fb = (y0 + y) >> (fb_shift + 1); y0 = y; - int32_t y = oplSin( (phase+scaled_fb) >> 14, gain) << 14; + y = oplSin( (phase+scaled_fb) >> 14, gain) << 14; output[i] = y + adder[i]; phase += freq; } diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index d8ea555..5c2eb38 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -361,7 +361,7 @@ void DexedAudioProcessorEditor::buttonClicked(Button *buttonThatWasClicked) { } if (buttonThatWasClicked == monoButton ) { - processor->setMonoMode(!processor->isMonoMode()); + processor->setMonoMode(monoButton->getToggleState()); monoButton->setState(processor->isMonoMode() ? Button::ButtonState::buttonDown : Button::ButtonState::buttonNormal); return; } diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 13dbc9a..20f424c 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -185,6 +185,7 @@ void DexedAudioProcessor::processBlock(AudioSampleBuffer& buffer, MidiBuffer& mi } int32_t lfovalue = lfo.getsample(); int32_t lfodelay = lfo.getdelay(); + for (int note = 0; note < MAX_ACTIVE_NOTES; ++note) { if (voices[note].live) { voices[note].dx7_note->compute(audiobuf.get(), lfovalue, lfodelay, &controllers); @@ -372,7 +373,7 @@ void DexedAudioProcessor::keyup(uint8_t pitch) { } // note not found ? - if ( note == 16 ) { + if ( note >= MAX_ACTIVE_NOTES ) { TRACE("note-off not found???"); return; } @@ -381,7 +382,7 @@ void DexedAudioProcessor::keyup(uint8_t pitch) { int highNote = -1; int target = 0; for (int i=0; i highNote ) { + if ( voices[i].keydown && voices[i].midi_note > highNote ) { target = i; highNote = voices[i].midi_note; } diff --git a/Source/msfa/dx7note.cc b/Source/msfa/dx7note.cc index e62c903..59b9698 100644 --- a/Source/msfa/dx7note.cc +++ b/Source/msfa/dx7note.cc @@ -192,8 +192,10 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co // TODO(PG) : make this integer friendly uint32_t pwmd = (ctrls->values_[kControllerModWheel] * 0.7874) * (1 << 24); int32_t senslfo = pitchmodsens_ * (lfo_val - (1 << 23)); + uint32_t amd = ((int64_t) ampmoddepth_ * (int64_t) lfo_delay) >> 8; // Q24 :D - + amd = ((int64_t) amd * (int64_t) lfo_val) >> 24; + pitchmod += (((int64_t) pwmd) * (int64_t) senslfo) >> 39; pitchmod += (((int64_t) pmd) * (int64_t) senslfo) >> 39; @@ -217,10 +219,12 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co int32_t level = env_[op].getsample(); if (ampmodsens_[op] != 0) { - /*uint32_t sensamp = ((int64_t) ampmodsens_[op]) * ((int64_t) gain) >> 24; - sensamp = ((int64_t) sensamp) * ((int64_t) lfo_val) >> 24; - uint32_t amd_level = (((int64_t) amd) * (int64_t) sensamp) >> 24; - gain -= amd_level;*/ + uint32_t sensamp = ((uint64_t) amd) * ((uint64_t) ampmodsens_[op]) >> 24; + + // TODO: mehhh.. this needs some real tuning. + uint32_t pt = exp(((float)sensamp)/262144 * 0.07 + 12.2); + uint32_t ldiff = ((uint64_t)level) * (((uint64_t)pt<<4)) >> 28; + level -= ldiff; } params_[op].level_in = level; } @@ -265,7 +269,9 @@ void Dx7Note::peekVoiceStatus(VoiceStatus &status) { */ void Dx7Note::transfertState(Dx7Note &src) { for (int i=0;i<6;i++) { - env_[i] = src.env_[i]; + env_[i].transfert(src.env_[i]); + params_[i].gain_out = src.params_[i].gain_out; } + } diff --git a/Source/msfa/env.cc b/Source/msfa/env.cc index 2960096..52871e6 100755 --- a/Source/msfa/env.cc +++ b/Source/msfa/env.cc @@ -115,7 +115,7 @@ void Env::getPosition(char *step) { *step = ix_; } -Env& Env::operator=(Env &src) { +void Env::transfert(Env &src) { for(int i=0;i<4;i++) { rates_[i] = src.rates_[i]; levels_[i] = src.levels_[i]; @@ -128,7 +128,5 @@ Env& Env::operator=(Env &src) { ix_ = src.ix_; inc_ = src.inc_; down_ = src.down_; - - return *this; } diff --git a/Source/msfa/env.h b/Source/msfa/env.h index a57109e..ec641fe 100755 --- a/Source/msfa/env.h +++ b/Source/msfa/env.h @@ -45,7 +45,7 @@ class Env { void getPosition(char *step); static void init_sr(double sample_rate); - Env& operator=(Env &src); + void transfert(Env &src); private: // PG: This code is normalized to 44100, need to put a multiplier