Exemple #1
0
void pouu(track_t *t, int pos, int length, int freq, float vol){
	track_t *n = trackNew(110 + 2*length);
	float hi_vol  = 0.125	*vol;
	float med_vol = 0.25	*vol;
	float low_vol = 0.5	*vol;
	int   hi_sust = 0.25	*length;
	int med_sust  = 0.5	*length;
	int low_sust  = 1.0	*length;
	fun_t *nte;
	fun_t *hi_note = note(0,10,100,hi_sust,med_sust,med_vol,hi_vol);
	fun_t *med_note = note(0,10,100,med_sust,low_sust,low_vol,med_vol);
	fun_t *low_note = note(0,10,100,low_sust,low_sust,low_vol,low_vol);
	fun_t *vhi_note = note(0,10,100,hi_sust,hi_sust,med_vol/2,hi_vol/2);
	freq/=2;
	
	
	nte = 	
			add( 	mult(low_note, sine(trapeze(0,low_sust*2,freq,freq),0,1.0)),
			add( 	mult(med_note, sine(trapeze(0,low_sust*2,freq*2,freq*2),0,1.0)),
			add(	mult(hi_note, sine(trapeze(0,low_sust*2,freq*4,freq*4),0,0.3)),
				mult(vhi_note,sine(c(freq*8),0,0.05)) )));
	nte = mult(nte,add(c(0.9),sine(c(5),100,0.1)));
	nte = mult(unit(0,0.0,1.0),mult(unit(low_sust*2,1.0,0.0),nte));
	trackAdd(n,nte,nte);
	trackMix(t,n,pos,1.0);
}
Exemple #2
0
void beatloop_self_mix(beatloop_t *bl, float bpm){
	int i;
	track_t *tmp ;
	tmp = trackNew(beat_to_msec(bpm,bl->beatCount));
	bl->bpm = bpm;
	/* removing cache data */
	i = bl->subtrackCount;
	while(i--){
		if(bl->subtrack[i] != NULL){
			trackZero(bl->subtrack[i]);
		}else{
			bl->subtrack[i] = trackNew(2*beat_to_msec(bpm,bl->beatCount));
		}
	}
	if(bl->track){
		trackZero(bl->track);
	}else{
		bl->track = trackNew(2*beat_to_msec(bpm,bl->beatCount));
	}
	/* mixing drums on subtracks */
	i = bl->drumCount;
	while(i--){
		trackZero(tmp);
		bl->drums[i](tmp,bl->drumVol[i]);	
		if(bl->mixmode[bl->drumSubtrack[i]] == MIXMODE_MIX){
			trackMix( bl->subtrack[bl->drumSubtrack[i]],
				  tmp,
				  beat_to_msec(bpm,bl->drumTime[i]),
				  1.0);
		}else{
			trackPaste(bl->subtrack[bl->drumSubtrack[i]],
				   tmp,
				   beat_to_msec(bpm,bl->drumTime[i]),
				   1.0);
		}
	}
	/* mixing subtracks together on track */
	i = bl->subtrackCount;
	while(i--){
		trackMix(bl->track,
			 bl->subtrack[i],
			 0,
			 bl->subtrackVol[i]	);
	}
}
Exemple #3
0
void song(track_t*t){
	track_t *s = trackNew(8000);
	track_t *b = trackNew(8000);
	fun_t *f;
	fun_t *f2;
	bassloop(t,0,200);
	bassloop(t,8*200,200);
	bassloop(t,16*200,200);
	bassloop(t,24*200,200);
	bassloop(t,32*200,200);
	bassloop(t,46*200,200);
	bassloop(t,54*200,200);
	bassloop(t,62*200,200);
	f = min(c(1.0),max(ramp(4000,8400,0,1),sine(ramp(2000,8400,5,8),0,10)));
	f2 =max(unit(2400,0.2,0),unit(2400,0,1.0));
		
	trackMult(t,f,f);
	f = max(unit(5000,1,0),max(unit(8500,0,1),
		min(c(1.0),max(ramp(5000,8500,1,0),sine(ramp(5000,8000,20,200),0,10)))
		));
	trackMult(t,f,f);
	//trackMult(t,f2,f2);
	//fx_reverb(t);
	fx_disto(t,WAVE_BOTH);

	tshhloop(s,0*200,200);
	tshhloop(s,8*200,200);
	tshhloop(s,16*200,200);
	tshhloop(s,24*200,200);
	tshhloop(s,32*200,200);
	tshhloop(s,40*200,200);
	tshhloop(s,46*200,200);
	tshhloop(s,54*200,200);
	tshhloop(s,56*200,200);
	tshhloop(s,62*200,200);
	f = ramp(0,8000,0.2,0.7);
	trackMult(s,f,f);
	trackMix(t,s,0,1);
		
	//fx_reverb(b);
	//fx_disto(b);
	//trackMix(t,b,0,0.5);	
}
Exemple #4
0
void tshh(track_t *t, int pos, int length,int echo, float vol){
	track_t *n = trackNew(20+20+length+echo+60);
	fun_t * f = noise(note(0,1,20,20,length,vol,vol/2));
	f = 	add( f, 
		add( delay(echo,mult(c(0.2),f)),
		add( delay(echo + 10,mult(c(0.2),f)),
		add( delay(echo + 20,mult(c(0.2),f)),
		add( delay(echo + 30,mult(c(0.1),f)),
		add( delay(echo + 40,mult(c(0.1),f)),
		add( delay(echo + 50,mult(c(0.05),f)),
		     delay(echo + 60,mult(c(0.05),f))	)))))));

	trackAdd(n,f,f);
	trackMix(t,n,pos,1.0);
}
Exemple #5
0
void addWikiTrack(struct track **pGroupList)
/* Add wiki track and append to group list. */
{
if (wikiTrackEnabled(database, NULL))
    {
    struct track *tg = trackNew();
    static char longLabel[80];
    struct trackDb *tdb;
    struct sqlConnection *wikiConn = wikiConnect();
    if (! sqlTableExists(wikiConn,WIKI_TRACK_TABLE))
	errAbort("loadWikiTrack configuration error, set wikiTrack.URL in hg.conf");

    linkedFeaturesMethods(tg);
    AllocVar(tdb);
    tg->track = WIKI_TRACK_TABLE;
    tg->table = WIKI_TRACK_TABLE;
    tg->canPack = TRUE;
    tg->visibility = tvHide;
    tg->hasUi = TRUE;
    tg->shortLabel = cloneString(WIKI_TRACK_LABEL);
    safef(longLabel, sizeof(longLabel), WIKI_TRACK_LONGLABEL);
    tg->longLabel = longLabel;
    tg->loadItems = wikiTrackLoadItems;
    tg->itemName = linkedFeaturesName;
    tg->mapItemName = wikiTrackMapItemName;
    tg->mapItem = wikiTrackMapItem;
    tg->priority = WIKI_TRACK_PRIORITY;
    tg->defaultPriority = WIKI_TRACK_PRIORITY;
    tg->groupName = cloneString("map");
    tg->defaultGroupName = cloneString("map");
    tg->exonArrows = TRUE;
    tg->nextItemButtonable = TRUE;
    tdb->track = cloneString(tg->track);
    tdb->canPack = tg->canPack;
    tdb->table = cloneString(tg->table);
    tdb->shortLabel = cloneString(tg->shortLabel);
    tdb->longLabel = cloneString(tg->longLabel);
    tdb->useScore = 1;
    tdb->grp = cloneString(tg->groupName);
    tdb->priority = tg->priority;
    trackDbPolish(tdb);
    tg->tdb = tdb;

    slAddHead(pGroupList, tg);
    wikiDisconnect(&wikiConn);
    }
}