Skip to content

Commit

Permalink
Working on ttl
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremysalwen committed May 25, 2012
1 parent 31d32fb commit 39a8b5a
Show file tree
Hide file tree
Showing 6 changed files with 246 additions and 94 deletions.
28 changes: 28 additions & 0 deletions src/Makefile
@@ -0,0 +1,28 @@
OBJECTS = minicomputer.o
LIBRARY = libminicomputer.so
TTLS = minicomputer manifest.ttl
CC = gcc
CFLAGS += -std=c99 -Wall -Wextra -fPIC
INSTALLDIR = $(DESTDIR)/usr/lib/lv2/
INSTALLNAME = minicomputer.lv2/
$(LIBRARY) : $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -shared -o $@

.SUFFIXES : .c .o

.c.o:
$(CC) $(CFLAGS) -c $<

minicomputer.o: minicomputer.c
.PHONY : clean install uninstall

clean :
rm -f $(LIBRARY) $(OBJECTS)

install :
mkdir -p $(INSTALLDIR)$(INSTALLNAME)
install $(LIBRARY) $(INSTALLDIR)$(INSTALLNAME)
install -m 644 $(TTLS) $(INSTALLDIR)$(INSTALLNAME)

uninstall :
rm -rf $(INSTALLDIR)$(INSTALLNAME)
2 changes: 1 addition & 1 deletion src/manifest.ttl
@@ -1,6 +1,6 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<urn:malte.steiner:plugins:minicomputer> a lv2:Plugin;
<urn:malte.steiner:plugins:minicomputer.1> a lv2:Plugin;
lv2:binary <libminicomputer.so> ;
rdfs:seeAlso <minicomputer.ttl> .
22 changes: 10 additions & 12 deletions src/minicomputer.c
Expand Up @@ -262,7 +262,6 @@ static inline void handlemidi(minicomputer* mini, unsigned int maxindex) {
{
engine* use=use_note_minicomputer(mini,evt[1]);
if(use) {
use->lastnote=evt[1];
use->midif=midi2freq[evt[1]];// lookup the frequency
use->mod_midi_note=evt[1]*0.007874f;// fill the value in as normalized modulator
use->mod_midi_velocity=(float)1.f-(evt[2]*0.007874f);// fill in the velocity as modulator
Expand Down Expand Up @@ -444,10 +443,19 @@ void clear_filters(minicomputer* mini) {
voice->phase1 = 0.f;
voice->phase2 = 0.f;
memset(voice->delayBuffer,0,sizeof(voice->delayBuffer));

for (int i=0;i<7;i++) // i is the number of envelope
{
voice->envelope_generator[i].EGtrigger=0;
voice->envelope_generator[i].EGstate=4; // released
}
}
mini->mod_osc_phase = 0.f;
}

void activateMinicomputer (LV2_Handle instance) {
clear_filters((minicomputer*)instance);
}
static void run_minicomputer(LV2_Handle instance, uint32_t nframes) {
minicomputer* mini= (minicomputer*)instance;

Expand Down Expand Up @@ -638,17 +646,7 @@ static void run_minicomputer(LV2_Handle instance, uint32_t nframes) {

static void initEngine(engine* voice,int delayBufferSize) {
voice->delayBuffer=malloc(delayBufferSize);
for (int i=0;i<7;i++) // i is the number of envelope
{
voice->envelope_generator[i].EGtrigger=0;
voice->envelope_generator[i].EGstate=4; // released
}
for (unsigned int i=0;i<3;++i)
{
voice->filt[i].low=0;
voice->filt[i].high=0;
voice->filt[i].band=0;
}

}

static void initEngines(minicomputer* mini) {
Expand Down
7 changes: 2 additions & 5 deletions src/minicomputer.h
Expand Up @@ -146,8 +146,6 @@ typedef struct _engine {
float midif __attribute__((aligned (16)));

float *port; // _multitemp * ports + 2 mix and 2 aux

unsigned int lastnote;

} engine;

Expand Down Expand Up @@ -228,14 +226,13 @@ static void connect_port_minicomputer(LV2_Handle instance, uint32_t port, void *
static LV2_Handle instantiateMinicomputer(const LV2_Descriptor *descriptor, double s_rate, const char *path, const LV2_Feature * const* features);
static void run_minicomputer(LV2_Handle instance, uint32_t nframes);
static void cleanupMinicomputer(LV2_Handle instance);

static void activateMinicomputer(LV2_Handle instance);
const LV2_Descriptor miniDescriptor ={
.URI=MINICOMPUTER_URI,
.activate=NULL,
.cleanup=cleanupMinicomputer,
.connect_port=connect_port_minicomputer,
.activate=activateMinicomputer,
.deactivate=NULL,
.activate=NULL,
.instantiate=instantiateMinicomputer,
.run=run_minicomputer,
.extension_data=NULL
Expand Down
104 changes: 28 additions & 76 deletions src/minicomputer.ttl
Expand Up @@ -9,7 +9,7 @@
doap:developer [
foaf:name "Malte Steiner";
] ;
doap maintainer [
doap:maintainer [
foaf:name "Jeremy Salwen";
foaf:mbox <mailto:jeremysalwen@gmail.com>;
] ;
Expand All @@ -20,106 +20,58 @@
a lv2:AudioPort ;
a lv2:OutputPort ;
lv2:index 0 ;
lv2:symbol "lmix" ;
lv2:name "Mix Left" ;
], [
a lv2:AudioPort ;
a lv2:OutputPort ;
lv2:index 1 ;
lv2:symbol "rmix" ;
lv2:name "Mix Right" ;
],[
a lv2:AudioPort ;
a lv2:OutputPort ;
lv2:index 2 ;
lv2:symbol "laux" ;
lv2:name "Aux Left" ;
],[
a lv2:AudioPort ;
a lv2:OutputPort ;
lv2:index 3 ;
lv2:symbol "raux" ;
lv2:name "Aux Right" ;
lv2:symbol "out" ;
lv2:name "Audio Out" ;
],[
a lv2:InputPort;
a ev:EventPort;
lv2:index 4 ;
lv2:index 1 ;
ev:supportsEvent <http://lv2plug.in/ns/ext/midi#MidiEvent>;
lv2:symbol "midi";
lv2:name "MIDI Input";
],[
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 3;
lv2:symbol "controlmode";
lv2:name "Control Mode";
lv2:portProperty lv2:toggled;
lv2:portProperty lv2:enumeration;
lv2:default 0;
lv2:scalePoint [ rdfs:label "Control Ports"; rdf:value 1 ];
lv2:scalePoint [ rdfs:label "OSC"; rdf:value 0 ];
lv2:index 2;
lv2:symbol "volume";
lv2:name "Volume";
lv2:default 1;
lv2:minimum 0;
lv2:maximum 2;
],[
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 3;
lv2:symbol "volume";
lv2:name "Volume";
lv2:default 100;
lv2:minimum 0;
lv2:maximum 127;
lv2:symbol "osc1_fix_freq";
lv2:name "Fix Osc1 frequency";
lv2:portProperty lv2:toggled;
lv2:default 0;
],[
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 4;
lv2:symbol "cutoff";
lv2:name "Filter Cutoff";
lv2:default 50;
lv2:symbol "osc1_fixed_freq";
lv2:name "Osc 1 Fixed Frequency";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 127;
lv2:maximum 1000;
],[
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 5;
lv2:symbol "resonance";
lv2:name "Filter Resonance";
lv2:default 100;
lv2:symbol "osc1_tuned_freq";
lv2:name "Osc 1 Transposition";
lv2:default 1;
lv2:minimum 0;
lv2:maximum 127;
lv2:maximum 17;
],[
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 6;
lv2:symbol "envelope";
lv2:name "Filter Envelope";
lv2:default 80;
lv2:minimum 0;
lv2:maximum 127;
],[
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 7;
lv2:symbol "portamento";
lv2:name "Portamento Time";
lv2:default 64;
lv2:minimum 0;
lv2:maximum 127;
], [
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 8;
lv2:symbol "release";
lv2:name "Release Time";
lv2:default 100;
lv2:symbol "osc1_tuned_freq";
lv2:name "Osc 1 Transposition";
lv2:default 1;
lv2:minimum 0;
lv2:maximum 127;
],[
a lv2:InputPort;
a lv2:ControlPort;
lv2:index 9;
lv2:symbol "polyphony";
lv2:name "Polyphony";
lv2:portProperty lv2:integer;
lv2:default 8;
lv2:minimum 1;
lv2:maximum 48;
].
lv2:maximum 17;
]
.

0 comments on commit 39a8b5a

Please sign in to comment.