Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Fast Convoler
Avatar
Bill
Member
Members
November 4, 2019 - 9:46 am
Member Since: October 11, 2018
Forum Posts: 11
sp_UserOfflineSmall Offline

Hello there

i'm trying to make an fft fast convoler so i can load an IR to a signal and make a simple filter with a recorded IR (no professional goals for selling etc i'm a student)

my programming skills are basic.

i bought both of the fx books primarily for that reason and they helped me a lot in understanding the plugins way of working overall and i'm pretty happy about this!!

 

but i can't quite get it ( i guess my bad)

 

so can you help me understand the code?

i mean it's gonna be easier for me to understand exactly the code of your fx book project regarding the fast convoler if i can see the connections

my problem is that as i see the code  it depends on other fx object of the vocoder. and i don't understand why.

isn't the fast convoler a smipler version of the vocoder?(in simple terms)

 

what parts are exactly those? i want to make an autonomus one.

i see the proggraming notes in the book but i get confused a lot with this cross object thing.

i know this is a part of the homework in the book but i can't just get it so i can't do it :/

 

also is the filters.h necessary?

to summ it up (because i know i can get confusing since english is not my native language, trying my best to express my mind :p)

i want to make a new project with fast fft convoler with no cross object dependancies so i can study it better and understand it. 

Avatar
W Pirkle
Admin
November 5, 2019 - 11:44 am
Member Since: January 29, 2017
Forum Posts: 467
sp_UserOfflineSmall Offline

OK, well thanks for buying the books! Do you have someone at your school that can help you with these intermediate questions? They are not bad questions (I am a teacher so no questions are bad) but you may be better off with someone there to go through the code. 

my problem is that as i see the code  it depends on other fx object of the vocoder. and i don't understand why.

isn't the fast convoler a smipler version of the vocoder?(in simple terms)

The reason the convolver uses the vocoder (which is more complex) is that 90% of the code is already there. If I created a convolver object, I would be cutting and pasting massive amounts of C++ code. Whenever I do that, I stop myself, because any bugs found, or changes made later, will need to be copied over to the other stuff. So, it uses the vocoder to do its work for it. 

If you want to make a pure-convolver without the vocoder, but without knowing much about the vocoder, I would place breakpoints in the code (as is) and watch the convolver object do its stuff, using the vocoder object for the FFT-based manipulation. Once you've stepped through the code in the debugger, you will see exactly how everything fits together. Then, you could form a new object that pulls in bits and pieces of the vocoder as needed. After making this object, you will understand why I didn't do that, and just used the vocoder. But that would be a good exercise for you (or anyone). If you have not set breakpoints and debugged live audio signal processing code before, then this will only make you more confused. If that is the case, you should find some help with debugging C++ code. 

also is the filters.h necessary?

It is necessary for sample rate conversion and is just a .h file with data tables. There are no objects or functions in it. So, you can ignore it if you want, but it doesn't matter. 

Hope that helps get you going.

Will

Avatar
Bill
Member
Members
November 29, 2019 - 8:46 am
Member Since: October 11, 2018
Forum Posts: 11
sp_UserOfflineSmall Offline

hello and thanks for you reply and time !

 

with some help i kinda found the dependencies by "right ckick" and "peek the definition" from the convoler class. so as i see it in the chapter 8 of the book all i have to do is call the fast convoler class? then set breakpoints to the convoler function and see what happens?

 

also do i delete all the vocoder calls from plugincore.cpp?

 

last question. you have an example in the book for making IR data but i wanna import my audio IR so... i made an on off button. but i don't know the code needed to  import the data from my audio and save it to the IR buffer... i remember from the last book something lke a cmake object but i don't understand it at all... can u post that code?

Avatar
Bill
Member
Members
December 2, 2019 - 11:38 am
Member Since: October 11, 2018
Forum Posts: 11
sp_UserOfflineSmall Offline

one more question.... i saw in the book that you refer to the two stage fftw convoler for long IRs.... i want to load my own captured IR so... is this code not able to do it?

Avatar
W Pirkle
Admin
December 4, 2019 - 11:29 am
Member Since: January 29, 2017
Forum Posts: 467
sp_UserOfflineSmall Offline

You will need to make the decisions about deleting the vocoder and replacing with your own convolver after stepping through the code and creating your own thinner version. 

You may use any IR you like. The FastConvolver object has two functions you use:

1) call the iniitialize( ) function and pass in the convolution length. 

2) supply the IR with a function call to setFilterIR( ) and pass it a pointer to your IR array. The array must be identical in size the the convolution length you set in the initialize( ) function. 

There is an old video from the now outdated RAFX1 API where I launch a File Find Window and let the user browse for a WAV file and then extract the contents as a floating point buffer. But that only worked in Windows. When I moved to ASPiK, I removed that object and if you want to do something similar, then you would need to code that yourself. I do not have sample code for that at this time.

Hope that helps,

Will Pirkle 

 

Avatar
Bill
Member
Members
December 6, 2019 - 7:02 am
Member Since: October 11, 2018
Forum Posts: 11
sp_UserOfflineSmall Offline

thank you for the help!!

Forum Timezone: America/New_York

Most Users Ever Online: 152

Currently Online: jim
2 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Skyler: 48

Derek: 46

Frodson: 45

Peter: 43

TheSmile: 43

clau_ste: 39

JimmyM: 33

Gwen: 32

EZB: 24

lppier: 23

Member Stats:

Guest Posters: 1

Members: 632

Moderators: 1

Admins: 4

Forum Stats:

Groups: 13

Forums: 40

Topics: 669

Posts: 2610

Newest Members:

VariableCook, Henry, Adekoya Adams, WillAMR, weedshop, Gennaro Schiano, HOA, sanketVxT, sem1307, djd_oz

Moderators: W Pirkle: 467

Administrators: Tom: 74, JD Young: 80, Will Pirkle: 0, W Pirkle: 467