diff --git a/README.md b/README.md index 90936580673032a5b030ab8c9a64e36fe7f357b3..6a0cb06bbc42f20bbf0e8a51d91c7c568fe8dcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ software: daisyy-looper hardware: daisyy-hardware language: C++ (Arduino) -version: 1.1.0 +version: 1.2.0 --- # daisyy-looper @@ -70,7 +70,7 @@ Just like with real tape the pitch of the played back sounds changes when the sp | What | Options | Description | | --------- | --------------------------------- | ------------------------------------------------------------ | -| Play Mode | Stop / <u>Loop</u> / Multi / MIDI | How the looper plays back audio:<br><b>Stop:</b> Don't play at all<br><b><u>Loop:</u></b> Play a loop with a single playhead (default)<br><b>Multi:</b> Play a loop with multiple playheads<br><b>MIDI:</b> Play only on incoming MIDI notes | +| Play Mode | Stop / <u>Loop</u> / Grain / MIDI | How the looper plays back audio:<br><b>Stop:</b> Don't play at all<br><b><u>Loop:</u></b> Play a loop with a single playhead (default)<br><b>Grain:</b> Play a loop with multiple playheads<br><b>MIDI:</b> Play only on incoming MIDI notes | | Mix Mode | <u>Active</u> / Sum / Ring | How the 5 available Buffers are mixed with each other<br><b><u>Active:</u></b> Only the currently active/visible buffer is heard (default)<br><b>Sum:</b> All buffers are heard, even if they are not visible<br><b>Ring:</b> All buffers are ring-modulated with the incoming audio (meaning only if *both* the input and our loop produce sounds we hear something) | | Restart | - | Press to jump the playhead back to the start of the loop | | Slow Down | - | Press and hold to start a vinyl-style slowdown | @@ -89,7 +89,7 @@ Just like with real tape the pitch of the played back sounds changes when the sp | <u>ALL</u> | (default) | This Option is the default. The three right-bottom knobs have the following functions:<br/><b>Volume:</b> Controls the volume of the Loop<br/><b>Reverb:</b> Controls the amount of Reverb added to the signal<br/><b>LFO:</b> Controls the amount with which the LFO modulates the position of the playhead | | REVERB | - | With this option selected, the three right-bottom knobs have the following functions:<br/><b>Reverb Decay:</b> How long the Reverb decays out<br/><b>Reverb Mix:</b> How much of the Reverb is heard<br/><b>Reverb Tone:</b> How dull or bright the Reverb sounds | | LFO | - | With this option selected, the three right-bottom knobs have the following functions:<br/><b>LFO Speed:</b> How fast the modulation happens<br/><b>LFO Amount:</b> By how much should the LFO modulate the Playhead<br/><b>LFO Kind:</b> Which LFO-style to use (`Triangle`, `Square`, `Random`, `Jump`) | -| GRAIN | - | With this option selected, the three right-bottom knobs have the following functions (Switch on Playback Mode > MULTI first):<br/><b>Grain Spread:</b> How far apart the multiple playheads should be spread out in terms of speed difference<br/><b>Grain Variation:</b> How much variation to add to the speed of individual playheads<br/><b>Grain Count:</b> How many playheads to use | +| GRAIN | - | With this option selected, the three right-bottom knobs have the following functions (this switches the Playback Mode to GRAIN, to go back change this option in the Play Menu):<br/><b>Grain Spread:</b> How far apart the multiple playheads should be spread out in terms of speed difference<br/><b>Grain Variation:</b> How much variation to add to the speed of individual playheads<br/><b>Grain Count:</b> How many playheads to use | | - | - | currently unused | diff --git a/daisyy-looper/looper.h b/daisyy-looper/looper.h index c26efd43148e42832e1d9adbc7bfe3f4d3876b9c..f45e70f666d1f3e335d5455263e265b0ee6503af 100644 --- a/daisyy-looper/looper.h +++ b/daisyy-looper/looper.h @@ -23,7 +23,7 @@ enum RecStartMode { enum PlaybackState { PLAYBACK_STATE_STOPPED, PLAYBACK_STATE_LOOP, - PLAYBACK_STATE_MULTILOOP, + PLAYBACK_STATE_GRAIN, PLAYBACK_STATE_MIDI, PLAYBACK_STATE_LAST, }; @@ -333,7 +333,7 @@ float Looper::Process() { playheads[i].deactivate(); } break; - case PLAYBACK_STATE_MULTILOOP: + case PLAYBACK_STATE_GRAIN: for (size_t i=0; i<N_PLAYHEADS; i++) { playheads[i].activate(); } @@ -437,7 +437,7 @@ void Looper::addToPlayhead(float value) { case PLAYBACK_STATE_LOOP: playheads[0].incrementBy(value); break; - case PLAYBACK_STATE_MULTILOOP: + case PLAYBACK_STATE_GRAIN: playheads[0].incrementBy(value); for (size_t i=1; i<N_PLAYHEADS; i++) { playheads[i].incrementBy(value + value/(1+i)); diff --git a/daisyy-looper/ui.h b/daisyy-looper/ui.h index 652639ba2ec9672bf86906a669583c9b1594a76e..d3ef47b222e4aa9250d9d24ec0a1a513603983e7 100644 --- a/daisyy-looper/ui.h +++ b/daisyy-looper/ui.h @@ -111,7 +111,7 @@ class Ui { GridButton("START\nLOOPST\nPLAYHD", &button_6, false, BUTTON_TYPE_MULTITOGGLE, 0), }), ButtonGrid((int) UI_MODE_PLAY_MENU, { - GridButton("STOP\nLOOP\nMULTI\nMIDI", &button_1, false, BUTTON_TYPE_MULTITOGGLE, 1), + GridButton("STOP\nLOOP\nGRAIN\nMIDI", &button_1, false, BUTTON_TYPE_MULTITOGGLE, 1), GridButton("PLAY\nMENU", &button_2, true), GridButton("ACTIVE\nSUM\nRING", &button_3, false, BUTTON_TYPE_MULTITOGGLE, 0), GridButton("RE\nSTART", &button_4, false), @@ -482,7 +482,7 @@ class Ui { pot_5.switch_positions = N_PLAYHEADS-1; pot_6.setDisplayMode("Grn. Spread", 100.0f, POT_DISPLAY_MODE_PERCENT); pot_7.setDisplayMode("Grain Var.", 100.0f, POT_DISPLAY_MODE_PERCENT); - activeLooper()->playback_state = atoav::PLAYBACK_STATE_MULTILOOP; + activeLooper()->playback_state = atoav::PLAYBACK_STATE_GRAIN; }); // Select the active Effect (FILTER) @@ -637,7 +637,7 @@ class Ui { display.drawFastVLine(x_playhead, 6, 24, SH110X_WHITE); break; } - case atoav::PLAYBACK_STATE_MULTILOOP: + case atoav::PLAYBACK_STATE_GRAIN: { float* playheads = activeLooper()->GetPlayheads(); uint8_t count = activeLooper()->GetPlayheadCount();