If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Last Poly Voice Extractor
21 posts
• Page 1 of 3 • 1, 2, 3
Last Poly Voice Extractor
Here's another of my "I have no idea what you'd want one of those for" modules that's fallen out of a current project (I'll describe why you might in a moment!)
This little combination of two modules allows you to extract the most recently started voice from a poly stream and output it as a mono stream. A single "master" module wired up inside the MIDI-to-Poly does most of the work, and can be shared by as many "voice extractors" as you like (even wirelessly if you prefer). The example in the schematic shows how to wire it up - it's only a couple of links...
Buy why?!!!
1) When you're debugging poly streams, the way that they all add together on a poly readout can be really annoying sometimes!
2) It can help to make GUI animations for things like the progress of an envelope or phase of an LFO clearer when there less crosstalk between voices.
A couple of caveats...
1) It's rather hacky, so prefer to use it purely for cosmetic features. I can't guarantee reliability if you use hundreds of them in critical audio parts of a schematic!
2) There's an unavoidable single-sample delay to the channel mask signal, so you can't reliably pick up first-sample-only signals such as initial triggers and stage(0) computations.
3) The voice is selected strictly by the starting order of new voices. If you release this voice, the output does not "fall back" to an earlier voice, it just goes silent until another new voice is started.
This little combination of two modules allows you to extract the most recently started voice from a poly stream and output it as a mono stream. A single "master" module wired up inside the MIDI-to-Poly does most of the work, and can be shared by as many "voice extractors" as you like (even wirelessly if you prefer). The example in the schematic shows how to wire it up - it's only a couple of links...
Buy why?!!!
1) When you're debugging poly streams, the way that they all add together on a poly readout can be really annoying sometimes!
2) It can help to make GUI animations for things like the progress of an envelope or phase of an LFO clearer when there less crosstalk between voices.
A couple of caveats...
1) It's rather hacky, so prefer to use it purely for cosmetic features. I can't guarantee reliability if you use hundreds of them in critical audio parts of a schematic!
2) There's an unavoidable single-sample delay to the channel mask signal, so you can't reliably pick up first-sample-only signals such as initial triggers and stage(0) computations.
3) The voice is selected strictly by the starting order of new voices. If you release this voice, the output does not "fall back" to an earlier voice, it just goes silent until another new voice is started.
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: Last Poly Voice Extractor
Very interesting, Trog! And - yes, quite a hack!
I don't think that the one-sample-delay is an issue: just delay the signal that you want to catch the first sample of by the same amount.
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
I don't think that the one-sample-delay is an issue: just delay the signal that you want to catch the first sample of by the same amount.
-
martinvicanek - Posts: 1319
- Joined: Sat Jun 22, 2013 8:28 pm
Re: Last Poly Voice Extractor
This is brilliant trog!
Previously I’ve used a highest note system for displays. The limitation is that when the highest note is dropped, the display will drop back to the next highest note which can be in a different phase of activity, so the display will “jump”.
Without testing it I suspect your system will be better, since the display will correspond with the content of the last note played, which is what I would want as a user.
Thank you!
Spogg
![Surprised :o](./images/smilies/icon_e_surprised.gif)
![Uber Geek :ugeek:](./images/smilies/icon_e_ugeek.gif)
Previously I’ve used a highest note system for displays. The limitation is that when the highest note is dropped, the display will drop back to the next highest note which can be in a different phase of activity, so the display will “jump”.
Without testing it I suspect your system will be better, since the display will correspond with the content of the last note played, which is what I would want as a user.
Thank you!
Spogg
-
Spogg - Posts: 3324
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Last Poly Voice Extractor
Cool, I also have something similar but I use the global ID instead in the floswtone alpha version. By the way, if you use midi to multi voice your method gets kinda broken ![Razz :P](./images/smilies/icon_razz.gif)
![Razz :P](./images/smilies/icon_razz.gif)
- adamszabo
- Posts: 657
- Joined: Sun Jul 11, 2010 7:21 am
Re: Last Poly Voice Extractor
Spogg wrote:Previously I’ve used a highest note system for displays. The limitation is that when the highest note is dropped, the display will drop back to the next highest note which can be in a different phase of activity, so the display will “jump”.
That's exactly why I built it - for my wave-table oscillator and the spline-envelope code that I'm working on for tulamide. At first, I just thought of it as a handy way of debugging my code; but being able to see a real-time playback cursor makes it much easier to see how the loop-points and note-release options interact, so I wanted a more robust version that wouldn't confuse players.
adamszabo wrote:By the way, if you use midi to multi voice your method gets kinda broken
Yes, I should have pointed out that caveat too - it doesn't work when two voices start at exactly the same sample; you'll get the sum of all the voices which started at the same time!
![Embarrassed :oops:](./images/smilies/icon_redface.gif)
I haven't played with the properly working voice IDs in the Alphas yet, but I have a feeling that they'll make quite a few interesting little gadgets possible.
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: Last Poly Voice Extractor
I've just replaced the download in the top-post with a new, much improved version. The "master" unit inside the MIDI-to-Poly module is now just a single ASM block without all the nasty conversions between poly and mono, and in the case that multiple voices start at exactly the same time, it will choose whichever has the highest channel ID, so that you still get a coherent single-channel output.
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: Last Poly Voice Extractor
I love the update with the buffer, very clever! However I was pressing "T" on my keyboard so it output Pitch 67, and I started pressing that key faster and eventually the mono readout showed 134, which is double of the single 67, so I guess somehow the second key got leaked and added the pitches together? Should it be like that?
- adamszabo
- Posts: 657
- Joined: Sun Jul 11, 2010 7:21 am
Re: Last Poly Voice Extractor
I’ve had a quick play with the new version and it’s very impressive trog.
I was also impressed by your how-it-works module for those who know assembler.
You always add lots of info in your schematics which is always appreciated.
I also really appreciate you putting the stuff you make into a working example.
Cheers
Spogg
![Uber Geek :ugeek:](./images/smilies/icon_e_ugeek.gif)
I was also impressed by your how-it-works module for those who know assembler.
You always add lots of info in your schematics which is always appreciated.
I also really appreciate you putting the stuff you make into a working example.
Cheers
Spogg
-
Spogg - Posts: 3324
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Last Poly Voice Extractor
adamszabo wrote:I guess somehow the second key got leaked and added the pitches together? Should it be like that?
Hmmm; no, it's not supposed to do that! The buffer only has one slot to store a channel ID, and there are no adds in the code anywhere! So my hunch is that it may be something to do with zeros - the first voice has a channel ID of zero, which is a bit of a PITA, as zero will compare equal to unset or completely bitmasked floats. I'll have to dig a little deeper, but I wonder whether something is upsetting it when polyphony is exceeded and voices have to be stolen.
Spogg wrote:You always add lots of info in your schematics which is always appreciated.
I also really appreciate you putting the stuff you make into a working example.
Oh; my "developer notes" and "unit-testing fixtures", you mean?
![Wink ;)](./images/smilies/icon_e_wink.gif)
Seriously, though, a lot of the notes and code-snippets get pasted in from the "examples and techniques" folder that I've been keeping for years. I never trust myself to remember how to use a new technique after a few months of playing with other things, or even to remember that I ever saw it before (even when it's something I spent weeks deducing for myself!). So I'm a great believer in meticulous documentation.
It seems quite common that the proverbial "like riding a bicycle" requires the "training wheels" to be bolted back on again occasionally for us autistic folks. It can be remarkably similar to dementia at times - I've even seen some research which suggests that autistic people cope better with the onset of dementia, because they've grown up devising workarounds their whole lives without realising it ("Write. It. Down. !!")
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: Last Poly Voice Extractor
Great stuff there Trog, boy I wish I had learned coding years ago.
Later then, BobF.....
Later then, BobF.....
- BobF
- Posts: 598
- Joined: Mon Apr 20, 2015 9:54 pm
21 posts
• Page 1 of 3 • 1, 2, 3
Who is online
Users browsing this forum: No registered users and 41 guests