Csound Csound-dev Csound-tekno Search About

[Csnd] Porting Guitarix tube preamp models to Csound?

Date2014-04-07 18:07
From"vallste@libero.it"
Subject[Csnd] Porting Guitarix tube preamp models to Csound?
AttachmentsGuitarixTubestage.udo  12ax7_250k.inc  12ax7_68k.inc  12at7_250k.inc  12at7_68k.inc  tubetest.csd  

Hello,

I'm trying to port Gutarix tubes emulations to Csound ( I know that is possible to export as csound plugins but want to try the long way).

Under Faust sources there are the examples

http://sourceforge.net/p/faudiostream/code/ci/master/tree/examples/faust-tubes/

and data used for transfer functions for each tube model (files valve.h, tube.lib, preamp.dsp, and .cc files for tubes).


Attached here is my tentative udo (plus a couple tube emulations transfer funcions used by gen23) and a file to test it but everything I can obtain is a nice noise generator with only one stage of amplification, go figure what happen if you add more than one...Suspect that there is a problem on how I implemented recursion with delayw/r.


Anyone would like to give a look to the code to see what I'm doing wrong?

I've put output to disk in the tubetest.csd to avoid bad surpises to the speakers.


Bye

Stefano

 

Date2014-04-07 20:04
FromVictor Lazzarini
SubjectRe: [Csnd] Porting Guitarix tube preamp models to Csound?
why the delay line? If it's a 1-sample delay you want to do, it's a bit cumbersome to use it for that.
It's simpler to do this (ksmps = 1), for example for a 1st order filter

adel init 0
ay = ain*ia + adel*ib
adel = ay

adel is a 1-sample feedback delay.


On 7 Apr 2014, at 18:07, vallste@libero.it wrote:

> Hello,
> I'm trying to port Gutarix tubes emulations to Csound ( I know that is possible to export as csound plugins but want to try the long way).
> Under Faust sources there are the examples
> http://sourceforge.net/p/faudiostream/code/ci/master/tree/examples/faust-tubes/
> and data used for transfer functions for each tube model (files valve.h, tube.lib, preamp.dsp, and .cc files for tubes).
> 
> Attached here is my tentative udo (plus a couple tube emulations transfer funcions used by gen23) and a file to test it but everything I can obtain is a nice noise generator with only one stage of amplification, go figure what happen if you add more than one...Suspect that there is a problem on how I implemented recursion with delayw/r. 
> 
> Anyone would like to give a look to the code to see what I'm doing wrong?
> I've put output to disk in the tubetest.csd to avoid bad surpises to the speakers.
> 
> Bye
> Stefano
>  <12ax7_250k.inc><12ax7_68k.inc><12at7_250k.inc><12at7_68k.inc>

Dr Victor Lazzarini
Senior Lecturer
Dept. of Music
NUI Maynooth Ireland
tel.: +353 1 708 3545
Victor dot Lazzarini AT nuim dot ie





Date2014-04-07 20:10
FromVictor Lazzarini
SubjectRe: [Csnd] Porting Guitarix tube preamp models to Csound?
In other words, removing the delayr/w,  we can have

			aFtubeOld init 0
			aIn_Ftube = aFtubeOld + aIn_tube - kVk0 
				;
				;itableValve;see table .cc
				;ktablow see table .cc for the valve type
				;ktabhigh see table .cc for the valve type
				;ktabistep see table .cc for the valve type
				;itabsize len of the table see table .cc for the valve type
				aVgk = aIn_Ftube
				af = (aVgk - ktablow) * ktabistep
				ki = int(af)
				if ki < 0 then
					aFtube tab 0, itableValve
				elseif ki >= itabsize then
					aFtube tab itabsize - 1, itableValve
				else
					af = af - ki
					kreadT1 tab ki, itableValve
					kreadT2 tab ki + 1, itableValve
					aFtube = kreadT1 * (1 - af) + kreadT2 * af
				endif
				;
			aFtubeOut = (aFtube + aVkC - kvplus)
			aFtubeOld butlp aFtubeOut * kRk/kRp, kfck


On 7 Apr 2014, at 20:04, Victor Lazzarini wrote:

> why the delay line? If it's a 1-sample delay you want to do, it's a bit cumbersome to use it for that.
> It's simpler to do this (ksmps = 1), for example for a 1st order filter
> 
> adel init 0
> ay = ain*ia + adel*ib
> adel = ay
> 
> adel is a 1-sample feedback delay.
> 
> 
> On 7 Apr 2014, at 18:07, vallste@libero.it wrote:
> 
>> Hello,
>> I'm trying to port Gutarix tubes emulations to Csound ( I know that is possible to export as csound plugins but want to try the long way).
>> Under Faust sources there are the examples
>> http://sourceforge.net/p/faudiostream/code/ci/master/tree/examples/faust-tubes/
>> and data used for transfer functions for each tube model (files valve.h, tube.lib, preamp.dsp, and .cc files for tubes).
>> 
>> Attached here is my tentative udo (plus a couple tube emulations transfer funcions used by gen23) and a file to test it but everything I can obtain is a nice noise generator with only one stage of amplification, go figure what happen if you add more than one...Suspect that there is a problem on how I implemented recursion with delayw/r. 
>> 
>> Anyone would like to give a look to the code to see what I'm doing wrong?
>> I've put output to disk in the tubetest.csd to avoid bad surpises to the speakers.
>> 
>> Bye
>> Stefano
>> <12ax7_250k.inc><12ax7_68k.inc><12at7_250k.inc><12at7_68k.inc>
> 
> Dr Victor Lazzarini
> Senior Lecturer
> Dept. of Music
> NUI Maynooth Ireland
> tel.: +353 1 708 3545
> Victor dot Lazzarini AT nuim dot ie
> 
> 
> 
> 
> 
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"
> 
> 
> 

Dr Victor Lazzarini
Senior Lecturer
Dept. of Music
NUI Maynooth Ireland
tel.: +353 1 708 3545
Victor dot Lazzarini AT nuim dot ie