From 90e082d82be8a2903c1fd5802941cf0808f9ff1c Mon Sep 17 00:00:00 2001 From: petern Date: Tue, 21 Jul 2009 20:23:12 +0000 Subject: [PATCH] -Initial import git-svn-id: http://svn.fuzzle.org/mloop/mloop/trunk@1 ba049829-c6ef-42ef-81ac-908dd8d2e907 --- src/jack.cpp | 250 +++++++++++++++++++++++++++++++++++++++++++++++ src/jack.h | 48 +++++++++ src/loop.cpp | 83 ++++++++++++++++ src/loop.h | 39 ++++++++ src/mloop.cpp | 15 +++ src/ringbuffer.h | 61 ++++++++++++ src/wscript | 12 +++ waf | Bin 0 -> 84693 bytes wscript | 30 ++++++ 9 files changed, 538 insertions(+) create mode 100644 src/jack.cpp create mode 100644 src/jack.h create mode 100644 src/loop.cpp create mode 100644 src/loop.h create mode 100644 src/mloop.cpp create mode 100644 src/ringbuffer.h create mode 100644 src/wscript create mode 100755 waf create mode 100644 wscript diff --git a/src/jack.cpp b/src/jack.cpp new file mode 100644 index 0000000..bc7a465 --- /dev/null +++ b/src/jack.cpp @@ -0,0 +1,250 @@ +/* $Id$ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "jack.h" + +Jack::Jack() +{ + m_connected = false; + m_recording = false; + m_buffer = new RingBuffer(2048); +} + +Jack::~Jack() +{ + Disconnect(); + delete m_buffer; +} + +bool Jack::Connect() +{ + if (m_connected) return true; + + jack_status_t status; + m_client = jack_client_open("mloop", JackNoStartServer, &status); + if (m_client == NULL) { + if (status & JackServerFailed) { + fprintf(stderr, "JACK server not running\n"); + } else { + fprintf(stderr, "jack_client_open() failed, status = 0x%2.0x\n", status); + } + return false; + } + + m_connected = true; + + jack_on_shutdown(m_client, &ShutdownCallbackHandler, this); + jack_set_process_callback(m_client, &ProcessCallbackHandler, this); + + m_input = jack_port_register(m_client, "input", JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0); + m_output = jack_port_register(m_client, "output", JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0); + + m_control = jack_port_register(m_client, "control", JACK_DEFAULT_MIDI_TYPE, JackPortIsInput|JackPortIsTerminal, 0); + + jack_activate(m_client); + + return true; +} + +void Jack::Disconnect() +{ + if (!m_connected) return; + + m_connected = false; + + jack_deactivate(m_client); + jack_client_close(m_client); +} + +void Jack::ShutdownCallback() +{ + m_connected = false; + printf("shutdowncallback\n"); +} + +int Jack::ProcessCallback(jack_nframes_t nframes) +{ + void *input = jack_port_get_buffer(m_input, nframes); + void *output = jack_port_get_buffer(m_output, nframes); + + void *control = jack_port_get_buffer(m_control, nframes); + + jack_midi_clear_buffer(output); + + /* Copy from input to output */ + jack_nframes_t event_count = jack_midi_get_event_count(input); + jack_nframes_t event_index = 0; + + jack_midi_event_t ev; + if (event_index < event_count) { + jack_midi_event_get(&ev, input, event_index++); + } else { + ev.time = UINT_MAX; + } + + for (jack_nframes_t frame = 0; frame < nframes; frame++) { + while (ev.time == frame) { + jack_midi_event_write(output, ev.time, ev.buffer, ev.size); + + if (m_recording) { + /* Don't add the event to the buffer if it will become full. + * This includes the case where the event would actually fit, + * but would cause the buffer to be full. This prevents the + * need for extra logic to determine if the buffer is full + * or empty. + */ + if (m_buffer->Free() > sizeof ev.time + sizeof ev.size + ev.size) { + m_buffer->Write((uint8_t *)&m_recording_time, sizeof m_recording_time); + m_buffer->Write((uint8_t *)&ev.time, sizeof ev.time); + m_buffer->Write((uint8_t *)&ev.size, sizeof ev.size); + m_buffer->Write((uint8_t *)ev.buffer, ev.size); + } else { + printf("Buffer full, dropping input!\n"); + } + } + + if (event_index < event_count) { + jack_midi_event_get(&ev, input, event_index++); + } else { + ev.time = UINT_MAX; + } + } + + for (int i = 0; i < NUM_LOOPS; i++) { + m_loops[i].PlayFrame(output, frame); + } + } + + if (m_recording) { + m_recording_time += nframes; + } + + return 0; +} + +struct termios orig_termios; + +void reset_terminal_mode() +{ + tcsetattr(0, TCSANOW, &orig_termios); +} + +void set_conio_terminal_mode() +{ + struct termios new_termios; + + /* take two copies - one for now, one for later */ + tcgetattr(0, &orig_termios); + memcpy(&new_termios, &orig_termios, sizeof(new_termios)); + + /* register cleanup handler, and set the new terminal mode */ + atexit(reset_terminal_mode); + cfmakeraw(&new_termios); + tcsetattr(0, TCSANOW, &new_termios); +} + +int kbhit() +{ + struct timeval tv = { 0L, 0L }; + fd_set fds; + FD_SET(0, &fds); + return select(1, &fds, NULL, NULL, &tv); +} + +int getch() +{ + int r; + unsigned char c; + if ((r = read(0, &c, sizeof(c))) < 0) { + return r; + } else { + return c; + } +} + +void Jack::Run() +{ + set_conio_terminal_mode(); + + jack_nframes_t recording_time; + jack_midi_event_t ev; + ev.time = UINT_MAX; + + m_recording = false; + + for (;;) { + usleep(10000); + if (ev.time == UINT_MAX) { + if (m_buffer->Size() >= sizeof recording_time + sizeof ev.time + sizeof ev.size) { + m_buffer->Read((uint8_t *)&recording_time, sizeof recording_time); + m_buffer->Read((uint8_t *)&ev.time, sizeof ev.time); + m_buffer->Read((uint8_t *)&ev.size, sizeof ev.size); + } + } else { + if (m_buffer->Size() >= ev.size) { + ev.buffer = (jack_midi_data_t *)malloc(ev.size); + m_buffer->Read((uint8_t *)ev.buffer, ev.size); + } + + if (m_recording) { + printf("Recording event for loop %d\n", m_recording_loop); + m_loops[m_recording_loop].AddEvent(recording_time, &ev); + } + ev.time = UINT_MAX; + } + + if (kbhit()) { + char c = getch(); + + switch (c) { + case 3: + case 'q': return; + + case 'r': + if (m_recording) { + m_recording = false; + m_loops[m_recording_loop].SetLength(m_recording_time); + printf("Finished recording loop %d\n", m_recording_loop); + } else { + m_recording_time = 0; + m_recording = true; + printf("Started recording loop %d\n", m_recording_loop); + } + break; + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (!m_recording) { + m_recording_loop = c - '1'; + printf("Selected recording loop %d\n", m_recording_loop); + } + break; + + case 'z': + case 'x': + printf("Starting loop %d (%s)\n", m_recording_loop, c == 'x' ? "loop" : "once"); + m_loops[m_recording_loop].Start(c == 'x'); + break; + + case 'c': + printf("Stopping loop %d\n", m_recording_loop); + m_loops[m_recording_loop].Stop(); + break; + } + } + } +} diff --git a/src/jack.h b/src/jack.h new file mode 100644 index 0000000..42cd8b8 --- /dev/null +++ b/src/jack.h @@ -0,0 +1,48 @@ +/* $Id$ */ + +#ifndef JACK_H +#define JACK_H + +#include +#include "loop.h" +#include "ringbuffer.h" + +#define NUM_LOOPS 9 + +class Jack { +private: + bool m_connected; + jack_client_t *m_client; + jack_port_t *m_input; + jack_port_t *m_output; + jack_port_t *m_control; + + Loop m_loops[NUM_LOOPS]; + RingBuffer *m_buffer; + + bool m_recording; + int m_recording_loop; + jack_nframes_t m_recording_time; + + static void ShutdownCallbackHandler(void *arg) + { + ((Jack *)arg)->ShutdownCallback(); + } + static int ProcessCallbackHandler(jack_nframes_t nframes, void *arg) + { + return ((Jack *)arg)->ProcessCallback(nframes); + } + + void ShutdownCallback(); + int ProcessCallback(jack_nframes_t nframes); + +public: + Jack(); + ~Jack(); + + bool Connect(); + void Disconnect(); + void Run(); +}; + +#endif /* JACK_H */ diff --git a/src/loop.cpp b/src/loop.cpp new file mode 100644 index 0000000..9534888 --- /dev/null +++ b/src/loop.cpp @@ -0,0 +1,83 @@ +/* $Id$ */ + +#include +#include "loop.h" + +void Loop::PlayFrame(void *port_buffer, jack_nframes_t frame) +{ + if (m_state == LS_IDLE) return; + + if (m_state == LS_STOPPING) { + printf("Stopping, so send all notes off!\n"); + + uint8_t buffer[3]; + buffer[1] = 0x78; + buffer[2] = 0; + + for (int i = 0; i < 16; i++) { + buffer[0] = 0xB0 + i; + jack_midi_event_write(port_buffer, frame, buffer, sizeof buffer); + } + + m_state = LS_IDLE; + return; + } + + for (; m_iterator != m_events.end(); ++m_iterator) { + + jack_midi_event_t &event = (*m_iterator).first; + jack_nframes_t position = (*m_iterator).second; + if (event.time + position > m_position) break; + + jack_midi_event_write(port_buffer, event.time, event.buffer, event.size); + } + + m_position++; + + if (m_position == m_length) { + if (m_state == LS_PLAY_ONCE) { + m_state = LS_IDLE; + } + printf("Completed %u frames\n", m_position); + m_position = 0; + m_iterator = m_events.begin(); + } +} + +void Loop::AddEvent(jack_nframes_t position, jack_midi_event_t *event) +{ + Event e; + e.first = *event; + e.second = position; + m_events.push_back(e); +} + +void Loop::SetLength(jack_nframes_t length) +{ + if (m_state != LS_IDLE) return; + + m_length = length; +} + +void Loop::Start(bool loop) +{ + if (m_state != LS_IDLE) return; + + m_position = 0; + m_iterator = m_events.begin(); + m_state = loop ? LS_PLAY_LOOP : LS_PLAY_ONCE; +} + +void Loop::Stop() +{ + m_state = LS_STOPPING; +} + + +/* +void Loop::Reset() +{ + m_state = LS_IDLE; + m_position = 0; +} +*/ diff --git a/src/loop.h b/src/loop.h new file mode 100644 index 0000000..cc5c4e6 --- /dev/null +++ b/src/loop.h @@ -0,0 +1,39 @@ +/* $Id$ */ + +#ifndef LOOP_H +#define LOOP_H + +#include +#include +#include +#include + +enum LoopState { + LS_IDLE, + LS_PLAY_LOOP, + LS_PLAY_ONCE, + LS_STOPPING, +}; + +typedef std::pair Event; +typedef std::list EventList; + +class Loop { +private: + jack_nframes_t m_length; ///< Length of loop, in samples. + jack_nframes_t m_position; ///< Current position of loop, in samples. + LoopState m_state; + + EventList m_events; + EventList::iterator m_iterator; + +public: + void PlayFrame(void *port_buffer, jack_nframes_t frame); + void AddEvent(jack_nframes_t position, jack_midi_event_t *event); + + void SetLength(jack_nframes_t length); + void Start(bool loop); + void Stop(); +}; + +#endif /* LOOP_H */ diff --git a/src/mloop.cpp b/src/mloop.cpp new file mode 100644 index 0000000..97ab29b --- /dev/null +++ b/src/mloop.cpp @@ -0,0 +1,15 @@ +/* $Id$ */ + +#include "jack.h" + +int main(int argc, char **argv) +{ + Jack *j = new Jack(); + + j->Connect(); + j->Run(); + + delete j; + + return 0; +} diff --git a/src/ringbuffer.h b/src/ringbuffer.h new file mode 100644 index 0000000..e8775b4 --- /dev/null +++ b/src/ringbuffer.h @@ -0,0 +1,61 @@ +/* $Id$ */ + +#ifndef RINGBUFFER_H +#define RINGBUFFER_H + +class RingBuffer { +private: + uint8_t *m_buffer; + uint8_t *m_end; + uint8_t *m_write; + uint8_t *m_read; + +public: + RingBuffer(size_t length) + { + m_buffer = (uint8_t *)malloc(length); + m_end = m_buffer + length; + m_write = m_buffer; + m_read = m_buffer; + } + + ~RingBuffer() + { + free(m_buffer); + } + + void Write(uint8_t *buffer, size_t length) + { + while (length--) { + if (m_write == m_end) m_write = m_buffer; + *m_write++ = *buffer++; + } + } + + void Read(uint8_t *buffer, size_t length) + { + while (length--) { + if (m_read == m_end) m_read = m_buffer; + *buffer++ = *m_read++; + } + } + + size_t Size() const + { + if (m_write >= m_read) return m_write - m_read; + return (m_end - m_read) + (m_write - m_buffer); + } + + size_t Free() const + { + return (m_end - m_buffer) - Size(); + } + + void Reset() + { + m_write = m_buffer; + m_read = m_buffer; + } +}; + +#endif /* RINGBUFFER_H */ diff --git a/src/wscript b/src/wscript new file mode 100644 index 0000000..bdb41bb --- /dev/null +++ b/src/wscript @@ -0,0 +1,12 @@ +#! /usr/bin/env python +# encoding: utf-8 + +def configure(conf): + conf.check_cfg(package='jack', uselib_store='JACK', args='--cflags --libs', atleast_version='1.9.2') + +def build(bld): + bld.new_task_gen( + features = 'cxx cprogram', + source = 'jack.cpp loop.cpp mloop.cpp', + target = 'mloop', + uselib = 'JACK') diff --git a/waf b/waf new file mode 100755 index 0000000000000000000000000000000000000000..156a32e60b6515cc6dfaf70d5fac291dcc9af650 GIT binary patch literal 84693 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

275cimI*Q4ntyfby+@^n3mkFjb^BGJZ{Wnn=^>z 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 literal 0 HcmV?d00001 diff --git a/wscript b/wscript new file mode 100644 index 0000000..f2bb2ab --- /dev/null +++ b/wscript @@ -0,0 +1,30 @@ +#! /usr/bin/env python +# encoding: utf-8 + +VERSION='0.0.1' +APPNAME='mloop' + +srcdir = '.' +blddir = 'build' + +def init(): + pass + +def set_options(opt): + opt.tool_options('compiler_cxx') + +def configure(conf): + conf.check_tool('compiler_cxx') + conf.sub_config('src') + + env = conf.env.copy() + env.set_variant('debug') + conf.set_env_name('debug', env) + conf.setenv('debug') + conf.env.CXXFLAGS = ['-Wall', '-g'] + +def build(bld): + bld.add_subdirs('src') + + for obj in bld.all_task_gen[:]: + new_obj = obj.clone('debug')