-Add: loop quantisation
git-svn-id: http://svn.fuzzle.org/mloop/mloop/trunk@10 ba049829-c6ef-42ef-81ac-908dd8d2e907remotes/git-svn@10
parent
bfa83efd94
commit
89a8fe6101
|
@ -131,10 +131,16 @@ int Jack::ProcessCallback(jack_nframes_t nframes)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void Jack::ToggleRecording(int loop)
|
||||
void Jack::ToggleRecording(int loop, int bpm)
|
||||
{
|
||||
if (m_recording) {
|
||||
m_recording = false;
|
||||
|
||||
if (bpm > 0) {
|
||||
jack_nframes_t chunk = 60 * m_sample_rate / bpm;
|
||||
m_recording_time -= m_recording_time % chunk;
|
||||
}
|
||||
|
||||
m_loops[m_recording_loop].SetLength(m_recording_time);
|
||||
m_loops[m_recording_loop].SetState(LS_IDLE);
|
||||
m_loops[m_recording_loop].EndFromNoteCache(m_notecache);
|
||||
|
|
|
@ -49,7 +49,7 @@ public:
|
|||
void Disconnect();
|
||||
bool Run();
|
||||
|
||||
void ToggleRecording(int loop);
|
||||
void ToggleRecording(int loop, int bpm);
|
||||
void StartLoop(int loop, bool repeat);
|
||||
void StopLoop(int loop);
|
||||
void EraseLoop(int loop);
|
||||
|
|
10
src/ui.cpp
10
src/ui.cpp
|
@ -57,6 +57,7 @@ int getch()
|
|||
int bpm = 120;
|
||||
int color_map[4];
|
||||
char status[1024];
|
||||
bool quantise = false;
|
||||
|
||||
bool UI::Run(Jack &j)
|
||||
{
|
||||
|
@ -128,14 +129,12 @@ bool UI::Run(Jack &j)
|
|||
|
||||
switch (c) {
|
||||
case 3:
|
||||
case 'q': {
|
||||
endwin();
|
||||
reset_terminal_mode();
|
||||
return true;
|
||||
}
|
||||
|
||||
case 'r':
|
||||
j.ToggleRecording(m_loop);
|
||||
j.ToggleRecording(m_loop, quantise ? bpm : 0);
|
||||
if (j.Recording()) {
|
||||
snprintf(status, sizeof status, "Start recording loop %d", m_loop);
|
||||
} else {
|
||||
|
@ -173,6 +172,11 @@ bool UI::Run(Jack &j)
|
|||
j.EraseLoop(m_loop);
|
||||
break;
|
||||
|
||||
case 'q':
|
||||
quantise = !quantise;
|
||||
snprintf(status, sizeof status, "Set quantise %s", quantise ? "on" : "off");
|
||||
break;
|
||||
|
||||
case KEY_UP:
|
||||
m_loop--;
|
||||
if (m_loop == -1) m_loop = NUM_LOOPS - 1;
|
||||
|
|
Loading…
Reference in New Issue