Skip to content

Instantly share code, notes, and snippets.

View jpcima's full-sized avatar

JP Cimalando jpcima

View GitHub Profile
@jpcima
jpcima / adlmidi.h
Last active May 17, 2018 18:35
Dynamic instrument API
typedef struct ADLMIDI_Bank
{
void *pointer[3];
} ADLMIDI_Bank;
typedef struct ADLMIDI_BankId
{
ADL_UInt8 msb, lsb;
ADL_UInt8 percussive;
} ADLMIDI_BankId;
#include <windows.h>
#include <stdio.h>
int main()
{
for (unsigned count = 0; count < 100; count += 10) {
CRITICAL_SECTION cs = {};
SetLastError(0);
BOOL b = InitializeCriticalSectionAndSpinCount(&cs, count);
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
static CRITICAL_SECTION cs;
DWORD WINAPI thread_run(void *user_data)
{
unsigned i = (unsigned)user_data;
#include "osc.h"
#include "utility/arithmetic.h"
#include <math.h>
#pragma message("TODO implement OSC")
namespace cws80 {
// resolution per interval of a semitone
static constexpr uint osc_phi_oversample = 8;
@jpcima
jpcima / build-opl3be.sh
Created June 16, 2018 15:19
build-opl3be
#!/bin/sh
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
#!! Optional feature summary:
#!! RtMidi: ON
#!! RtAudio: ON
#-- Checking for module 'jack'
diff -ru Minicomputer.old/editor/Memory.cpp Minicomputer/editor/Memory.cpp
--- Minicomputer.old/editor/Memory.cpp 2018-07-01 18:13:54.041739133 +0200
+++ Minicomputer/editor/Memory.cpp 2018-07-01 18:14:24.012891722 +0200
@@ -16,6 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Memory.h"
+#include <unistd.h>
/**
* constructor
struct Operator
{
uint8_t AR = 0;
uint8_t DR = 0;
uint8_t SR = 0;
uint8_t RR = 0;
uint8_t SL = 0;
uint8_t TL = 0;
uint8_t KS = 0;
uint8_t ML = 0;
@jpcima
jpcima / example.cc
Created August 7, 2018 18:49
RtAudio example using API names
#include <RtAudio.h>
#include <getopt.h>
#include <iostream>
static void print_compiled_apis()
{
std::vector<RtAudio::Api> available;
RtAudio::getCompiledApi(available);
for (RtAudio::Api api : available)
std::cout << " * " << RtAudio::getCompiledApiName(api) << "\n";
@jpcima
jpcima / example.c
Created August 7, 2018 20:17
RtAudio example using API names
#include <rtaudio_c.h>
#include <getopt.h>
#include <stdio.h>
static void print_compiled_apis()
{
const rtaudio_api_t *apis = rtaudio_compiled_api();
while (*apis != RTAUDIO_API_UNSPECIFIED) {
printf(" * %s\n", rtaudio_compiled_api_name(*apis));
++apis;
@jpcima
jpcima / test.cc
Created August 9, 2018 14:29
RtAudio #123
#include "RtAudio.h"
#include <string.h>
#include <unistd.h>
static int channels = 0;
int audio_callback(
void *outputBuffer, void *inputBuffer,
unsigned int nFrames,
double streamTime,