And also from CPU load/cycles/overhead.
I set this to 0x80
And the volume is great but sounds very distorted, could this be fixed?
How about if we modify the library so the user can set the volume parameter dynamically at any time? It could then be set based on the number of channels used, desired volume, distortion tolerance, etc.
The user should also be able to set either single ended or complimentary pin drive. Are we currently using complimentary output, or has it been tried?
Or you play only 1 channel at a time at 100% volume, like in Ölüm Savaşçısı.
It may be part of a programmers job to do sound design that keeps channel saturation and volume balanced.
However, would it be possible to watch any available channels for activity and attenuate the volume when the channel activity is high? This way the libs actively and dynamically do a little level boost when the hardware allows it?
It’s not really meant to be a sound api for a game, but rather a library to produce mixes.
It seems like this could be a solution, but even when playing individual notes with voices will not sound distorted.
Not really true, this is probably going to be the basis to become our sound API just needs some more work.
I’ve checked that just bringing the tune(4), and setting the volume back down to normal, the volume is about the same as the developer kits. It will probably get bumped up a little from some speaker holes I’m planning on drilling in the board.
Depending on the cost and complexity of adding the amplifier we are looking at adding this guy:
Which will be noted to have a digital volume control for 5, 8 and 11V RMS. The main key for this guy is making sure it fits on the damn board.
Here is a sample of some of the speakers I tried… The Piezos are all off to the left actually I realize now I took a shitty picture lol
And just for fun, showing where I buy my arduinos and such
Is that 5-10 mA draw while idle?
Jesus christ, possibly.
Will test. That’s a nail in the coffin probably if it’s that bad. Hope not.
I’m hopeful we can actually come up with a software solution like the dynamic volume allocation if the current draw is too much.
Good catch, would have seen it during testing but it’s good to keep an eye out. There is a shutdown pin, but dammit between that and volume we are in danger of running out of GPIO
You could also try to put an inductance in parallel with the piezo buzzer (booster coil):
Do not try that with a magnetic buzzer as that will destroy them.
I realize you are really busy balancing a ton of things, but if you’re thinking that this will be the core sound API, then code size really matters a lot!
Don’t forget that just about every devkit game developed so far does NOT use this technique - and a lot of those look pretty good. If you say “ok now use this or your sound won’t sound right” you’re handing a memory bump to every developer whether they like it or not. If the memory hit isn’t too bad, then … ok. But the size of that memory hit is just as important as the quality of the sound; you’re always trading one off against the other.
I didn’t catch the survey you mentioned, but I would be interested in the results. Speaking for myself only, advanced sound like this is a very nice option - as long as it’s an option. On my list of things to try, only about half of them need anything more than an occasional monotone beep. Having to load in a largish sound library to make a beep when using the space for something else is important - like a crypto and USB HID library - could almost be a deal breaker for some apps. (We would likely never know when this happens, because developers typically don’t follow through on projects that run up against that type of limitation in the early stages.)
Meanwhile, some of the other things I see on my list depended on having both an output for tonal sound along with the second output for noise effects and other non-tonal happenings. If you go single-ended – which even the original devkit didn’t do – then you might be making what some consider to be a major change from the original thinking.
(Even an early version of the sound library’s equivalent of this page - https://www.das-labor.org/wiki/AVR-Crypto-Lib/en - where every function has a flash size, ram size, and cycle count would be a valuable contribution to this discussion.)
So… what’s the conclusion…? Hardware or Software problem?
Guess the arrival of 5,000 piezo discs means… everything is… good then?
I know they are custom piezos, at least i think i heard that.
Has anyone heard from Kev for a while? the Kickstarter forums are getting a little heated, and he should probably post something to cool it down.
He just tweeted this a couple hours ago: (yikes!) Close call.
Our factory was in this district, it is safe but unfortunately others not so lucky. It is going to cause a delay http://www.telegraph.co.uk/news/worldnews/asia/china/12060939/Landslide-sweeps-through-industrial-park-in-Shenzhen-China-in-pictures.html?fb&fb_ref=Default …
Holy crap, only heard about the landslide briefly, didn’t realise it was that bad, glad KeV is safe!
Just posted an update on KS talking about the piezos.
We tested a double sided piezo that sounded amazing. Even with just 1 element connected actually its sufficiently loud.
We are mounting one element with double sided conductive adhesive tape custom die cut into the shape we need. Then there is a contact on the PCB. The other side is connected with a boring wire.
There is even a solder-bridge contact that enables/disables the PCB side contact for people if they wanted to make it quiet. Or if we ship developer kits and everyone says it’s too loud we can then remove the solder bridge too! Hooray for options!
There are also an array of holes drilled into the PCB to allow some more sound to come through.
Additionally with STG sound driver, the volume can be controlled in software as well!
Awesome! Thanks for the update.