72 inc = state_ == State::EMPTY || state_ == State::REC_FIRST
75 win_ = WindowVal(win_idx_ * kWindowFactor);
83 case State::REC_FIRST:
85 Write(pos_, input * win_);
86 if(win_idx_ < kWindowSamps - 1)
90 if(pos_ > buffer_size_ - 1)
92 state_ = State::PLAYING;
102 if(win_idx_ < kWindowSamps - 1)
104 Write(pos_, sig + input * (1.f - win_));
109 if(pos_ > recsize_ - 1)
122 if(rec_queue_ && mode_ == Mode::ONETIME_DUB)
125 state_ = State::REC_DUB;
134 case Mode::REPLACE: Write(pos_, input * win_);
break;
135 case Mode::FRIPPERTRONICS:
136 Write(pos_, (input * win_) + (sig * kFripDecayVal));
139 case Mode::ONETIME_DUB:
140 default: Write(pos_, (input * win_) + sig);
break;
142 if(win_idx_ < kWindowSamps - 1)
145 if(pos_ > recsize_ - 1)
155 if(hitloop && mode_ == Mode::ONETIME_DUB)
157 state_ = State::PLAYING;
164 near_beginning_ = state_ != State::EMPTY && !
Recording() && pos_ < 4800