HardwareHeaven.com

HardwareHeaven.com

Looking for the skin chooser?
 
 
  • Home

  • Hardware reviews

  • Articles

  • News

  • Tools

  • Gaming at HardwareHeaven

  • Forums

 

Go Back   HardwareHeaven.com > Forums > Hardware and Related Topics > kX Project Audio Driver Support Forum > Effects and the DSP


Reply
 
Thread Tools
Old Sep 12, 2005, 01:15 AM   #1
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

Is there any metronome for Kx DSP?

Hi! Is there any effect available in the DSP that works like a metronome? This would be very cool...
JGSF is offline   Reply With Quote


Old Sep 12, 2005, 03:38 AM   #2
S-3D enthusiast
 
Tril's Avatar
 
Join Date: Sep 2004
Location: Canada
Posts: 1,676
Rep Power: 64
Tril has much to be proud ofTril has much to be proud ofTril has much to be proud ofTril has much to be proud ofTril has much to be proud ofTril has much to be proud ofTril has much to be proud ofTril has much to be proud ofTril has much to be proud ofTril has much to be proud of
System Specs

I don't think there is one. It might be possible to create one but it would be tricky. You would have to make some kind of precise timer with microcode. Creating this plugin is not totally impossible.

Please tell us in details what would be all the caracteristics of such a metronome. What are the controls, what does it display, what is the sound it outputs, etc. Is it adjusted in bpm, ms, something else and what range, what increments. How long does the beep last, what is it's frequency. Give all the details you can. I've never used a computer metronome so I don't really know how they work.

I might give writing that plugin a try if I have enough info. I like projects that are challenging.
Tril is offline   Reply With Quote
Old Sep 12, 2005, 03:41 AM   #3
HardwareHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 5,561
Rep Power: 62
Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!

I do not know of any such plugin. I do not think it would be all that difficult to make, but I am not sure what the advantage would be, using a DSP based metronome -vs- a software based one?
Russ is online now   Reply With Quote
Old Sep 12, 2005, 03:52 AM   #4
HardwareHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 5,561
Rep Power: 62
Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!

BTW: If you wanted a visual indicator on the metronome as well as the sound, then you would have to use a timer, and as such it would be a software metronome anyway. If you wanted just the sound, than you could use the speed of the chip to work out the timing, etc, but again I am not sure why this would be better than a software one. I am not saying it is a bad idea, I am just curious as to what your thinking is?
Russ is online now   Reply With Quote
Old Sep 12, 2005, 07:12 AM   #5
Tail Razer
 
Maddogg6's Avatar
 
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 0
Maddogg6 will become famous soon enoughMaddogg6 will become famous soon enough

I think the metrenome should have a BPM adjustment (in tenths increments if possible) up to at least 220 BPM.
making 2 tones (accented 1st beat by volume and pitch) generated by the DSP like ASynth does. And a seletable meter which dictates where the accent tone happens.

Now when I dream - i dream big... so here goes. lol

A tap tempo input would be nice too - tapped on pc keyboard or seltected midi input (omni or a channel) - hmm, using a midi track played to set a hardware metremnome. maybe using the KX control midi input. reading only notes and not CC's.

Something I always have thought usefull - is when setting a tempo - to show a chart of all the note divisions equivelents in ms

for instance - if a tempo is changed to 120

a chart would dynamically update upon tempo changing, based on a selected meter, as is as follows

SELECT METER = 4/4

Whole Note = (60/120) 500 ms
Half Note = (60/120)/2 = 250 ms
Quater Note = (60/120)/4 = 125 ms
Quater triplet note =

etcc...

This info is helpfull for setting delay times.

But not as helpfull as a tap tempo setable delay.. hehe

j/k

Bu would be interesting to understand the techniques to accomplish any of the above.
Maddogg6 is offline   Reply With Quote
Old Sep 12, 2005, 12:04 PM Threadstarter Thread Starter   #6
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

Cool!

Well, the metronome sound could be produced via MIDI, I guess this would make things simpler:

- select the note, channel, patch and volume for the beats (midi note duration time can be set to 480, I believe this will suit all needs).

- global volume* (applied to the choosen channel)

- tap tempo function*

- start/stop function*

- increase/decrease tempo knob (range 40-300)*

- select meter (2/4; 3/4; 4/4, etc)

*with the possibility to be controlled by kx automation.
JGSF is offline   Reply With Quote
Old Sep 12, 2005, 09:01 PM   #7
Tail Razer
 
Maddogg6's Avatar
 
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 0
Maddogg6 will become famous soon enoughMaddogg6 will become famous soon enough

I said a dsp generated tone - so its never recorded - as it could be directed to an output directly... where as a midi generated one would need to mess with the router to avoid recoding it.

But yes - either way is cool too.

got some good ideas johnny.
Maddogg6 is offline   Reply With Quote
Old Sep 12, 2005, 09:47 PM Threadstarter Thread Starter   #8
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

You are right, I didn't think about the routing issue. It might be better to use a DSP generated tone.

Maybe some code from the Wave Generator could be used then.

Then you could adjust:

-Note
-Velocity

It would be sooo cool to have a kx metronome!
JGSF is offline   Reply With Quote
Old Sep 17, 2005, 11:35 AM   #9
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

I have created one using tones generated in microcode. Here you have the code. It has a fixed measure of 3/4+2/4, and controlable tempo.

Code:
; New microcode
	name "metronome";
	copyright "Copyright (c) 2004.";
	created "09/14/2005";
	engine "kX";
	; comment "";
	guid "72db361a-0744-4411-8e18-ae19763b436a";
	; -- generated GUID
	
;Registers
	output  out

	control BPM=0
	control Tone=0.057595865
	control Decay=0.01
	control Level=.25
	
	static  sin=0
	static  cos=1
	
	static  time1=1
	static  time2=1
	
	static  compas=0
	
	temp	tmp  
	
   
;code 
	skip	ccr,ccr,0x7fffffff,compas
		macs	tmp,Tone,Tone,.25
		skip	ccr,ccr,0x7fffffff,0x7
		macsn   tmp,Tone,Tone,.25
		skip	ccr,ccr,0x7fffffff,0x5
		macsn   tmp,Tone,Tone,.25
		skip	ccr,ccr,0x7fffffff,0x3
		macs	tmp,Tone,0,0
		skip	ccr,ccr,0x7fffffff,0x1
		macsn   tmp,Tone,Tone,.25
	
	macsn   cos,cos,sin,tmp
	macs	sin,sin,cos,tmp
	
	interp  tmp,.0000138889,BPM,0.000118056
	macsn   time1,time1,tmp,1
	skip	ccr,ccr,0x180,0x6
		macs	sin,0,0,0
		macs	cos,1,0,0 
		macs	time1,1,0,0 
		macs	time2,1,0,0 
		acc3	compas,compas,0x2,0 
		limitn  compas,0x8,0x0,compas
	
	interp  tmp,.0001,Decay,.01
	interp  time2,time2,tmp,0
	
	macs	out,0,sin,time2 
	macints out,0,out,0x4
	macs	out,0,out,Level
	

end
When dll'ed, compasses could be choosed.
eyagos is offline   Reply With Quote
Old Sep 17, 2005, 12:02 PM Threadstarter Thread Starter   #10
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

Cool! Er, but how do I transform this in a DSP effect? I have no programming skills...


I have no idea of what to do with this code. Where do I paste this? Do I have to compile it or convert it or something?

Sorry.
JGSF is offline   Reply With Quote
Old Sep 17, 2005, 12:08 PM   #11
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

Right click in KX manager, and open KX Editor.
Delete all the lines, and paste the code.
Press Save Dane Source button, and assure that the mesage 'File sucessfully parsed' apears. Now, save the code to a file with .da extension in any place of your disk.
Now, double click in the archive for registering.
eyagos is offline   Reply With Quote
Old Sep 17, 2005, 12:54 PM Threadstarter Thread Starter   #12
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

"File successfully parsed" -> ok

But when I click in the *.da file I get a message saying "invalid plugin library"

I'm using 3538i

What should I do?

Thanks.
JGSF is offline   Reply With Quote
Old Sep 17, 2005, 01:51 PM   #13
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

Okey, I remember that there is a bug with the CODE tags in this forum. I have uploaded the .da file to my site. Just extract and register it.

http://ciberia.ya.com/eyagos/
eyagos is offline   Reply With Quote
Old Sep 17, 2005, 03:13 PM   #14
Long Time ***** Friend
 
thomasabarnes's Avatar
 
Join Date: Jan 2003
Location: USA
Posts: 1,375
Rep Power: 0
thomasabarnes will become famous soon enough
System Specs

Quote:
Originally Posted by Johnny1982
"File successfully parsed" -> ok

But when I click in the *.da file I get a message saying "invalid plugin library"

I'm using 3538i

What should I do?

Thanks.
Could it be that another line needs to be added after End. I did this and I get no error. I coppied and pasted the code that's above and then added another line after End, then when I registered it, it's OK.

I dont know how to use this, though.
__________________

May a song always touch you in a positive way.
SONAR X1D Expanded, Windows 7 Pro 64Bit, MOTU UltraLite MK3, 150 GB HDD, 250 GB HDD, 1 TB x2 HDD 7200 rpm

My Music Production: Top 40, Contemporary Christian, Pop/Rock, Decent Rap, Inspirationals, and Children Songs
thomasabarnes is offline   Reply With Quote
Old Sep 17, 2005, 03:34 PM Threadstarter Thread Starter   #15
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

Great!

I would suggest:

- The BPM would indicate the value of Beats per Minute (it's much more intuitive than a percentage value). It can be an approximate value.

With tap-tempo I get (approximate values):

10% -> 71 bpm

25% -> 115 bpm

50% -> 190 bpm

75% -> 265 bpm

100% is too fast to tap...


- Adding the option of selecting the meter (2/4, 2/3, 4/4) - see below

- Only the first tone is different.

for 2/4 it would be a,b,a,b,a,b,a,b...
for 3/4 it would be a,b,b, a, b, b, a, b, b...
for 4/4 it would be a,b,b,b, a, b, b,b, a, b, b, b...

- A start/stop switch. (assignable to any midi CC where 0 is off and 127 is on)

- A built-in tap tempo function.

algorithm for this:

(60 (seconds) / (difference, in seconds, between the last monitored beat* and the one before it) = bpm)

*the manual beat input could be monitored by kx automation, any assignable midi CC.
JGSF is offline   Reply With Quote
Old Sep 17, 2005, 04:25 PM   #16
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

The effect must be integrated into a dll in oerder to achieve some of those things:

a) True BPM indicator: Requires a dll. The values that you have measured are correct (good hear, xd). You can calculate the exact value with the formula

BPM = 40+300*value%

b) Option for selecting the meter: Requires a dll.

c) Only first tone is different: Okey.

d) A start/stop switch: Requires a dll.

e) Tap tempo function: Requires a dll.

f) "the manual beat input could be monitored by kx automation, any assignable midi CC"
Not sure if this can be done. In any case, can you explain this better, with a practical example?
eyagos is offline   Reply With Quote
Old Sep 17, 2005, 04:34 PM Threadstarter Thread Starter   #17
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

c) Supposing "a" is the different tone and "b" the other tone, can you add the option of having x "b" tones to sound between each "a" tone? (For example, x can have values from 1 to 3)?

f) Suppose you assign midi CC64 (hold pedal, if I'm not mistaken) to this parameter with kx automation. Every time you pressed the pedal you would transmit the value 127, wich would count as a "tap" input.

It could simply count as a tap the 127 value or any value between 1-127.

Hope I have explained better this time...
JGSF is offline   Reply With Quote
Old Sep 17, 2005, 04:42 PM   #18
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

Ok. Well, I think that it is possible. But I could not test it, because I have never used KX Automation in a real situation. Do you know any software that suports KX automation?
eyagos is offline   Reply With Quote
Old Sep 17, 2005, 05:34 PM Threadstarter Thread Starter   #19
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

Hum, I usually use my MIDI keyboard synth connected to the midi port to send midi messages, but maybe this can help routing kx midi out to kx midi in.

http://www.midiox.com/

For sending midi messages thru kx automation... well, you could use any software sequencer, like cakewalk, for example, create a midi track, put CC64 mesages to channel 1 in it, select as port "midi out"

then with midi ox route midi out to midi in

But I can test this for you, it's much more simple with physical midi hardware than doing all this.

I believe there's no need for you to worry with this, because Kx automation is automatically available with the plugins.

All you have to do is make sure that "tap on" is activated with a midi value between 1-127, but I don't know if this can be set. I have no programming skills.


edit: Just right click in your plugin and choose "assign" to see that it can already be controlled by kx automation. What I don't know is if you can change the way the sliders respond to midi messages (example: if midi value increases, slider decreases, etc).

edit 2: Idiot question: Since a DSP performs calculations, can't you just add the formula 40+300*value% to the code so the result can be displayed, for example, next to the bpm slider, in a cell?

Last edited by JGSF; Sep 17, 2005 at 05:43 PM.
JGSF is offline   Reply With Quote
Old Sep 17, 2005, 09:47 PM   #20
HardwareHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 5,561
Rep Power: 62
Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!

Quote:
Originally Posted by Johnny1982
edit 2: Idiot question: Since a DSP performs calculations, can't you just add the formula 40+300*value% to the code so the result can be displayed, for example, next to the bpm slider, in a cell?
No, you can do the calculations of course, but to change the (value) labels (i.e. custom GUI) a .dll is needed.

@eyagos
What do you mean by "compasses"?
Russ is online now   Reply With Quote
Old Sep 18, 2005, 02:26 AM   #21
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

Quote:
Originally Posted by Johnny1982
But I can test this for you, it's much more simple with physical midi hardware than doing all this.
I agree with you .

Quote:
Originally Posted by Russ
What do you mean by "compasses"
xDD. This is one of the disadvantages of not using a dictionary when writing in english. Compases (with only one 's') in spanish can be translated as measures in english.
eyagos is offline   Reply With Quote
Old Sep 18, 2005, 02:33 AM   #22
HardwareHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 5,561
Rep Power: 62
Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!

Quote:
Originally Posted by eyagos
xDD. This is one of the disadvantages of not using a dictionary when writing in english. Compases (with only one 's') in spanish can be translated as measures in english.
Ahh, got it... Your English is better than my Spanish, so...
Russ is online now   Reply With Quote
Old Sep 18, 2005, 12:00 PM   #23
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

Russ, my English is very poor, and there are so many words seemed in English and Spanish, that sometimes I invent words in English.
eyagos is offline   Reply With Quote
Old Sep 18, 2005, 12:04 PM   #24
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

Well, I have compiled it (for 3538i and 3538h) with all the things comented. Please, tell me if Automation works as expected.

http://ciberia.ya.com/eyagos/
eyagos is offline   Reply With Quote
Old Sep 18, 2005, 03:43 PM Threadstarter Thread Starter   #25
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

Super!
Totally awesome!
Automation works great!


Many thanks for your time! This is all I wished for and it will be very useful for me and (hopefully) for lots of people.




I just noticed something about the tap tempo function:

Is not very precise, but I couldn't ask for more. Try to tap an mp3 or something, and you'll see that it has huge variations in tempo. Just for example, I was tapping an mp3 and the values kept changing between 150, 171 and 200.

I do believe that it might need a more complex formula, maybe adding a -x% or +x% max. tempo variation parameter from the previous value for each transition could make it more smooth.

(example: bpm 100, tapping with 2% max tempo variation from the previous value, if the tapping speed is 120, it would increase gradually from 100 with 2% increments until reaching 120.)

Great work!
JGSF is offline   Reply With Quote
Old Sep 18, 2005, 06:59 PM   #26
DriverHeaven Addict
 
Join Date: Dec 2002
Posts: 259
Rep Power: 0
eyagos is on a distinguished road

Quote:
I just noticed something about the tap tempo function: Is not very precise, ...
Yes, I'm thinking that the timer I have used is not the best choice. I have to revise it. But I'm asking something about TAPING functions: How are you able to measure preciselly a 200BPM tempo? Which is the method?
eyagos is offline   Reply With Quote
Old Sep 18, 2005, 07:28 PM Threadstarter Thread Starter   #27
HardwareHeaven Senior Member
 
Join Date: Jul 2004
Posts: 452
Rep Power: 0
JGSF is on a distinguished road

I'm using the tap tempo function in Ableton Live (version 4.14) to measure. I tap it with the mouse button.

The metronome is precise, I get the same tempo displayed in ableton (200 in metronome, 200,56 with manual tapping displayed in Ableton - perfect).

What is not precise is the tap tempo function. Try to have two kx metronomes, one at 200 bpm playing, and tap in the other one. If I tap in Ableton or my Roland synth, ok. If I tap in the metronome, it's always at 240 (while the reference metronome is at 200).

Last edited by JGSF; Sep 18, 2005 at 07:58 PM.
JGSF is offline   Reply With Quote
Old Mar 20, 2006, 04:37 PM   #28
HardwareHeaven Lover
 
Join Date: Nov 2003
Posts: 100
Rep Power: 0
ReWired is on a distinguished road

hi there!
I am trying to make this work in 3534f...but dane editor gives me an error in this line:
limitn compas,0x8,0x0,compas
says "limitn" is invalid

EDIT: removing n (from limitn) gave me the working plugin

Last edited by ReWired; Mar 20, 2006 at 05:05 PM.
ReWired is offline   Reply With Quote
Old Mar 20, 2006, 08:17 PM   #29
HardwareHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 5,561
Rep Power: 62
Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!Russ is just super!

I think that in older versions of kX, "limitn" was "limitl".
Russ is online now   Reply With Quote
Old Mar 20, 2006, 09:50 PM   #30
HardwareHeaven Lover
 
Join Date: Nov 2003
Posts: 100
Rep Power: 0
ReWired is on a distinguished road

probably...hm, it works well with both options, strange, isn't it?
(limit or limitl)
what does exactly this do?
anyway, seems normal to me.
with "limit" all clicks are the same.
with "limitl" there are 3 different clicks.
ReWired is offline   Reply With Quote
Reply

Thread Tools