bill Posted February 6, 2007 Report Share Posted February 6, 2007 generating waveforms in real time on a PIC is... well, challenging to say the least. Especially if you want ones with rich harmonics and timbres in them. There's a good reason that wavetables are used.Who said real time ?Generating waveforms in realtime is just stupid, because there's no need of it.I thought of generating the wavetable, when you load the patch, and a patch is just a few parameters need to generate the waveforms.Do you think store hundreds of waveforms is a clever idea and adapted to the pic's ? Quote Link to comment Share on other sites More sharing options...
mess Posted February 7, 2007 Author Report Share Posted February 7, 2007 Feature update: I'm adapting parts of the MB_SID engine for modulationprogress so far:*one envelope hardwired to volume (I threw out extra features like the envelope bend)*one lfo hardwired to envelope select, this signal is combined with a manual parameter*the cc input routines are modified for controlling the coresound parametersI first wanted to get this to work so there are some modulation sources for the dco...@AndrewFirst of all thank you for the wavetables, I forgot the PM you backI will try the 'alternate cycle' thing tomorrow...the interpolation will optional in case this doesn't sound goodI already do this when playing with the formant bank, the 'speakjet wannabe' sounds :-)@Bill: I like the generator idea but I don't know if there will be enough ram availablethe wavetables I'm using right now have 16 waves of 256 bytes eachthis is not such a big problem in rom because the actual code is not so big...maybe this is possible with a pic18f4620there are so many things I want to try but the resources of the pic are running out fast...maybe there should be a pic generating the sounds and another one for modulation/csjust like all of the other projects around hereI would love to use the whole (modified) SID software for controlling this thingIf someone wants the code to try out some ideas PM, I don't want to post the code until it is cleaned up a bitplease note that you can also use the standard R2R resistor dac for a quick experiment ;-) Quote Link to comment Share on other sites More sharing options...
AndrewMartens Posted February 7, 2007 Report Share Posted February 7, 2007 there are so many things I want to try but the resources of the pic are running out fast...maybe there should be a pic generating the sounds and another one for modulation/csjust like all of the other projects around hereI would love to use the whole (modified) SID software for controlling this thingI'm impressed that you have it working as well as you do while running on the same PIC as the modulation/CS!If you moved the sound generation to its own PIC, that would free up a lot of resources on both sides. The downside, of course, is requiring an additional PIC and PCB. Communication could be over a parallel bus, '595-style shift registers (a la SID), or possibly I2C, since that has already been implemented on MIOS. If you went with a monodirectional (ie Core->Voice only) connection over I2C, you could probably get a whole bunch of boards running at the same time (though that probably wouldn't be cost-effective). Quote Link to comment Share on other sites More sharing options...
mess Posted February 8, 2007 Author Report Share Posted February 8, 2007 If you moved the sound generation to its own PIC, that would free up a lot of resources on both sidesThat is exactly what I'm going to do next, TK suggested using the new MBNET (CAN network)so right now I'm adapting the MBNET driver for use with coresound...I've made a WIKI page so that all information can be added there:http://www.midibox.org/dokuwiki/doku.php?id=coresoundthere's not much info right now, I will update the page as the code progressesMichaël Quote Link to comment Share on other sites More sharing options...
FREON Posted February 9, 2007 Report Share Posted February 9, 2007 Hi Guys,I was browsing the forum today (it's been a while) and found your thread. That's kind of funny as I'm currently working (slowly) on a similar idea except that I'm using the propeller and I, indeed, considered as well that it would be better to dedicate the CPU purely as an audio engine and rely on the MidiBox to control the various sounds.As you may know, the propeller has 8 CPU built-in. My current implementatioin requires 1 CPU per voices (so I can manage up to 7 voices + a controller/interface). One voice is a combination of 8 waveforms, with various modulation and a resonant filter. If some of you are interested, check on http://www.digital-art.rd-logic.com/Projects/ProperSound/news.htmlI published a diagram of the engine.If anybody is interested working on the application to be developped on top of MIOS that would be great. I was planning to make the communication interface compliant with the current SiD interface.Let me know,Richard Quote Link to comment Share on other sites More sharing options...
stryd_one Posted February 10, 2007 Report Share Posted February 10, 2007 Freon that's a very interesting project. Seeing as you are going to control it with a midibox front-end, might I suggest that you create a thread in the user projects section of the forum?I would imagine that you've been very busy working on this, have you noticed that the 'new' 'current' sid interface is now the CAN bus (MBNET)?I'd certainly be interested in helping with the midibox side of this, until you make the new thread I will suggest in here, that you drop to 16-bit depth and stay at 44100 instead of 32 bit at 22050. I also think that it would be more useful to have less oscillators and use the cycles to have a 2nd filter/mixer/more modulation.But yeh, back on topic :) Quote Link to comment Share on other sites More sharing options...
FREON Posted February 10, 2007 Report Share Posted February 10, 2007 Hy Strid,Not sure it deserves a thread. Just found funny that mess was working on a similar idea.Tks,RichardPS: 32 bits is for the math as I'm not using floating points, I agree a 32bits DAC is pointless, but well, it's available for free. 22050 is because the CPU is "lacking mutiplication" so a lot of CPU cycles are wasted there. Propellerv2 should have it.Regarding the interface, I meant from the core to the 6581. So yes, if the core support CAN, let it be with CAN. Quote Link to comment Share on other sites More sharing options...
mess Posted February 10, 2007 Author Report Share Posted February 10, 2007 Hi Freon,it just had a look at your site, I agree with Stryd, very nice interesting project...do you write your code in Spin or ASM?about the Sid Control Engine:in the current implementation CAN is only used for the CS and patch loadingI was planning to make the communication interface compliant with the current SiD interface.I don't think this will be very useful considering the different synth architecture...also the SID code has a lot of specific code to handle the low resolution sid registersMaybe a more generic control engine based on thr SID would be nice, as there is a lot of intrest for controlling all kinds of soundchipsRight now I'm working on the MBNET code to copy the variables from the control chipto the sound engine. Hopefully I can show some results monday...If you want a very simple way to get rid of most of the attack clickyou could try smoothing the gate signal, I just used an averaging filter running at 1khz (control update freq)and it helped a lot...keep us informed about your project :)Michaël Quote Link to comment Share on other sites More sharing options...
FREON Posted February 10, 2007 Report Share Posted February 10, 2007 Hi Michael,To manage 22kz, I had to implement the engine in asm. The basic sequencer is in Spin. Current ADSR is a dummy 80%, 100%, 70%, 30%, 0% with tempo. Yep, it's currently clicking badly, but I'm planning to have this controlled by a core module, I'm sure I'm better of re-using some of the work you're doing ;) MBNET will be manage by the core right ? So I just need to find a simple communication between the core and my Propersound. Looking at the current CORE schematic, I thought that using the same interface as for the SID module was good enough. I'm going to expose my engine's register, just like the 6581 is doing. What alternative would you recommend besides J10 ?Tks,Richard Quote Link to comment Share on other sites More sharing options...
mess Posted February 10, 2007 Author Report Share Posted February 10, 2007 There is a difference between the standard use for MBNET like in the sid applicationand the usage for my projectI'm using MBNET to transfer all the parameters from the control chip to the soundchipso every parameter is buffered in the control chip, and every time the control routine is executedthe parameters are updated via MBNET (RAM WRITE) to the sound engine so both chips need the CAN interfacethe standard mbsid v1 MBNET usage exchanges parameters between control enginesfor the control surfaceIf the propellor doesn't support can you might indeed be better off with another communication method Quote Link to comment Share on other sites More sharing options...
MyCo Posted February 14, 2007 Report Share Posted February 14, 2007 Sorry, that I answer so late. Why I don't get a mail when something's posted here...@mess: At the moment the R2R-Ladder-Network DAC performs best. You don't need any filtering at the end, but a buffer OpAmp. To be 100% correct you need to shift the voltage from the range 0 to 5V down to -2.5 to 2.5V. If you only use speakers or headphones, this is no problem...but if you want to record itFor the IC-DACs I use a simple LP-Filter (Capacicator to ground and an OpAmp to raise the level again) Quote Link to comment Share on other sites More sharing options...
audiocommander Posted April 7, 2007 Report Share Posted April 7, 2007 thnx to Smash for moving this one to the userProjects section :)This is one of the most promising projects to me and I'm really looking forward to build my first "messy" soundcore ;D hehe...Cheers! Quote Link to comment Share on other sites More sharing options...
stryd_one Posted April 7, 2007 Report Share Posted April 7, 2007 Yeh this one is good to watch for sure :D Quote Link to comment Share on other sites More sharing options...
DrBunsen Posted April 27, 2007 Report Share Posted April 27, 2007 There's a VC LFO and ADSR here which are implemented on PICs - might be some useful code to gank. Quote Link to comment Share on other sites More sharing options...
mess Posted May 6, 2007 Author Report Share Posted May 6, 2007 Hi,it will take a while before I can finish this project,school is taking a lot of my time right now...if anyone is interested in the source PM me :)Michael Quote Link to comment Share on other sites More sharing options...
/tilted/ Posted August 31, 2007 Report Share Posted August 31, 2007 This is very interesting to me.I've been looking for a way to drive a click track for live drumming with a sequence. I have been using a headphone amp, connected to outputs from a USB/FW soundcard, via VLC (very loong cable) :P The trouble with this is it takes an output from the soundcard. THAT means that the sequence is in mono! One channel to me, one to front-of-house mixer. One solution is to get a soundcard with more outputs, but since most external boxes have MIDI anyway... this is ideal! I'll keep the headphone amp, but jam a core into it. Sweet! Quote Link to comment Share on other sites More sharing options...
Jaicen Posted September 23, 2007 Report Share Posted September 23, 2007 Sorry to be resurrecting an old thread, but has anyone made any progress on this? Quote Link to comment Share on other sites More sharing options...
bill Posted March 3, 2008 Report Share Posted March 3, 2008 Hehe, i know this topic is getting pretty old, but i wanted to show you that cool video i found :)http://fr.youtube.com/watch?v=_uU4BzSQQmY Quote Link to comment Share on other sites More sharing options...
nILS Posted March 3, 2008 Report Share Posted March 3, 2008 Old ;-)http://www.midibox.org/forum/index.php/topic,10601.0.html Quote Link to comment Share on other sites More sharing options...
rinXai Posted April 12, 2008 Report Share Posted April 12, 2008 ...generating waveforms in real time on a PIC is... well, challenging to say the least. Especially if you want ones with rich harmonics and timbres in them. Howdee, sounds like someone has managed to rise to that challenge. I just listened to a sample demo of a minimal component PIC based project that sounds most interesting. The 8 knob device is known as Catweazles Fraktal Cellular Automata Synth.Quoted from the thread over at CircuitBenders.co.uk:- 8bit/1Bit: Sound is calculated with 8Bit resolution, the PIC-microcontroller works internally with 8bit wide data/registers. Sound is outputed via pulsewidth modulation (PWM), which is 1Bit output but 8x oversampled. At the moment, you get 4 different synthesizers/noisemakers in one microcontroller/box. - Two fractal based "music" generators ("predictive digital music synthesizer", it's not random!) - Step-sequencer (8 steps) with FM(frequency modulation) tone generation - Cellular Automata (1 dimensional, see "game of life", "critterandguitari") :) Quote Link to comment Share on other sites More sharing options...
JMS Posted January 17, 2009 Report Share Posted January 17, 2009 anyone know where to get the code for this app? i tried the links and browsed the wiki and didn't see it... these links are dead :( ... and i almost got my core finished... just gotta program the pic! (and find an lcd) w00t! Quote Link to comment Share on other sites More sharing options...
stryd_one Posted January 18, 2009 Report Share Posted January 18, 2009 Offsite documentation sucks.</broken record> Quote Link to comment Share on other sites More sharing options...
nILS Posted January 18, 2009 Report Share Posted January 18, 2009 This may be an old version and I might even have messed around with the source, but anyways here's what I had on my hdd.coresound_v0_2.zipcoresound_v0_2.zip Quote Link to comment Share on other sites More sharing options...
JMS Posted January 18, 2009 Report Share Posted January 18, 2009 ty, nils, will have a look! Quote Link to comment Share on other sites More sharing options...
bill Posted August 20, 2012 Report Share Posted August 20, 2012 Are they any active forum users, who worked on this project ? I'm interested in resurrecting it, but i need a little help to start with :) Can anyone inform me about the right DAC to use ? Cheers Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.