Please try this link:
https://www.dropbox.com/s/4xpxeoh9wrr07 … e.exe?dl=1
You are not logged in. Please login or register.
Please try this link:
https://www.dropbox.com/s/4xpxeoh9wrr07 … e.exe?dl=1
Thanks, now it worked!
Really, can achieve very interesting results. See what I got in the link below:
http://dl.dropboxusercontent.com/s/nu7z … t.wav?dl=1
Just bgt and a bit of editing on the soundforge.
I used soundtrack to generate the carrier and in the edition I took some of the bass and increased the treble so that the wheezing appeared and, at least for me, it was a very intelligible and very pleasant vocoder.
One question: Why should the carrier be mono and not stereo? I ask this because the result generated by the synth in bgt is usually in stereo, I had to convert to mono.
Another thing: Is it possible, programmatically, to make the carrier size the same as the modulator? If yes, how?
Very nice result! Just two suggestions:
1. You may want to lower the volume of the carrier a little, as there is currently some clipping going on.
2. Perhaps use an envelope in the tone generator to make the changes less abrupt? It sounds a bit jumpy now.
As for the length of the carrier, yes you can make files that are exactly the same length. You can do it by generating a carrier that has exactly the same number of samples as the modulator, or by cutting it later in your editor. The vocoder will do it for you though, the message that appears is just so that the user knows what the vocoder is doing.
It would be possible to process a stereo carrier. In fact, you can do this by hand already by doing the following:
1. Generate a stereo carrier.
2. Split your stereo carrier into two mono files, one for the left and one for the right channel.
3. Run both the left and the right carrier files through the vocoder with the same modulator, telling the vocoder to save the results as two separate files.
4. Go into your editor an dmake a stereo project.
5. Paste the vocoder result from the left carrier file onto the left channel of your new project.
6. Do the same thing with the right channel.
You now have a vocoder which sings in stereo, with the same stereo image as the original carrier.
I might add support for this to the vocoder itself at some point.
Glad you liked it and thanks for the suggestions!
Maybe I could have left the attack a little slower during the chord change, since the carrier was generated using the bgt soundtrack.
On the separation of stereo channels into mono files, it makes sense.
I'm going to do experiments with my Yamaha S910 keyboard and possibly a roland DX-1 I have here, but I imagine the results will be even better and it makes me very excited!
Go for it. I'd be really curious to hear the results! Hearing what other people do with it is the whole reason why I enjoy making stuff like this open source.
Sincerely, the results can be found in other existing vocoder solutions, including commercial ones. I've tried 3 vocoder plug-ins, including Robe Predator, Robotronic and klang labs Vokko, the latter was the best I've ever used yet is not marketed.
I really liked Reason's vocoder possibilities, but I do not think it's accessible to move.
You can be sure that I'll show you the next results, yes, I'm seriously thinking about using it in future productions.
I hope we can exchange experiences in this area of music and audio production that fascinates me a lot. Who knows, to be able to show some of my work and talk about virtual instruments and their accessibility?
Sounds good to me.
Are there any features that you think would be useful to add to the vocoder?
Has anyone tested my C++ implementation? I personally haven't tested it yet so...
Then there's another experiment with the vocoder, this time using the patches of my yamaha s910 keyboard.
There are three examples: the first audio is my voice (modulator), the second is the carrier and the third is the result processed by the vocoder.
The first carrier is stereo, but it is mono because I ended up losing the original recording while separating the channels on file, but the vocoder result is in stereo.
In the last example, both the carrier and the vocoder are with the stereo image.
I particularly liked the second result, where I put a tone with a bit of vibrato (keyboard modulation), leaving the most expressive result.
Do not look at my poor English, please.
http://dl.dropboxusercontent.com/s/rsnx … o.mp3?dl=0
For now, the very suggestion would be to implement the possibility of accepting carrier in stereo, since it gave a little work.
It seems like it lost the S's, or you have a De Esser on your modulator/carrier. Just something I noticed. Only happened on the first one.
It was probably time to tape the carrier.
I should have stretched out the notes a little more, or else I did not pauses.
Then, when that happened, he cut the wheezing a little. But the modulator is ok.
@Gabriel Awesome! I really like what you did with it. Just two quick comments:
1. The carrier is still too loud; we're getting clipping. Lower the volume of it by about 4 or 5 dB. You can always normalize/compress it again afterwards.
2. As Ethin said, some of the phrases are cut off. That is because the carrier signal goes from full volume to total silence immediately, and it does so before the phrases are completely finished. As you said, stretching out the carrier notes a little will do the trick.
And yes, processing stereo carriers is on my list of things to do. It's really annoying to have to go through all those steps, I know.
I discovered something curious, I do not know if it could be a bug:
If the modulator file is in stereo and the carrier in mono, when trying to process the vocshell crashes.
I did little with files recorded on my daw (Sonar) and only now that I have noticed this detail.
One thing I forgot to say is that when I separate the channels from the carrier into a file, when I'm going to mount the stereo image already processed by the vocoder, I have to convert back the generated mono files to stereo to work fine.
It would be interesting if the vocoder already generated the file in stereo, regardless of whether the carrier is stereo or not.
This is another job that I just have to do
That is odd. When I try what you describe, I get the following message as expected:
Error: The carrier has 2 channels.
The maximum allowed number of channels is 1.
This restriction may be lifted in a future version.
Do you get something else?
As for channel conversions, that's something I can easily do if I implement proper multichannel support in the vocoder.
This is truely a cool project. Ever since your old PB Vocoder program, which I did like, I've been waiting to see if you'd ever do something else along the lines of a vocoder. This is one of the best vocoders I've heard, and I've tried a lot of vocoders, free and paid. Whenever someone makes a vst for it, that will be sweet!
Thank you! I'm really glad you like it! A VST will come, never fear. It's just a matter of time.
Did you test with the carrier in mono? Here the expected message only appears when the carrier is actually in stereo, whether the modulator is stereo or mono.
But if the modulator is in stereo and the carrier in mono, at least here the vocoder crashes and the windows message appears that the program has stopped working.
Actually, I did it the other way around - I used a stereo carrier and a mono modulator. With the reverse configuration, I got the crash and it has now been fixed. You can download the shell from the following link:
I have updated post 1 with this new link, and the code fix has been pushed to GitHub.
Thanks for the report!
Will I need to modify my C++ adaptation of the shell as well? I'd rather not get too far out of date for this one. Either way, making a VST for this shouldn't be overly difficult to do -- the WDL toolkit provides ways of doing this with VST3. The problem is that that way passes audio samples as double* and not float*. The vocoder expects float*, so there is the possibility of losing data -- possibly important data too. The other issues, of course, are getting a carrier and modulator. I'd love to help make VSTs like this though -- I've always been interested in making VSTs, but it always seems difficult to do. Perhaps I'm learning it wrong or following the wrong tutorial.
@Ethin There are two ways you could go with the VST, I would say:
1. The simple approach where you do it entirely based on audio. You have one channel be the carrier and the other the modulator, like a stereo stream.
2. Have the option of generating a carrier on the fly based on MIDI input, or possibly by way of pitch detection of the modulator.
Obviously the second approach is way more involved as you then need to integrate a synthesis layer and you would want to give the user plenty of options like different kinds of sound sources, vibrato, monophonic and polyphonic input modes, etc etc. So I will probably start with option 1.
As for the conversion from float to double, you would not really lose any data. 32 bit audio gives you a *huge* dynamic range. The only reason to use doubles is if you want an enormous dynamic range (hundreds of dB), or if you are running a long DSP chain. We are doing neither, so floats are absolutely fine. It simply requires that you convert between the two as needed, which will still give you 32 bit precision at all times.
Finally, to keep up to date with the shell, the easiest way would probably be to just run a diff. I only changed a single line, so it's a trivial change.
@70, ah. I understand now. Thanks for that explanation. I would love to help work on the VST -- I might learn something new!
I just released version 1.1 of the vocoder library and shell. The new version has support for stereo carriers, which means that the vocoder can now output stereo audio natively. I also made the shell automatically normalize the output file so that it matches the peak amplitude in the carrier.
Note for anyone using the voclib.h library; this is a breaking change due to the introduction of an argument called carrier_channels in the voclib_initialize function.
The link for the new version is:
https://www.dropbox.com/s/3a8hr9rbe5ghe … 1.exe?dl=1
As always, the source can be found on GitHub at:
Let me know what you think!
Great! Now it's going to make a lot easier here, with stereo carrier support. Thank you! Everything working.
Ooh nice, one of the only vocoders I know that accepts stereo input. Nice job!
so, i have to update the python library, which i will do.
Generated in 0.056 seconds (79% PHP - 21% DB) with 9 queries