Jump to content

1bit synthesis onboard PIC


th0mas
 Share

Recommended Posts

I've been looking at the awesome 1-bit groovebox from Noah Vawter.  He basically invented 1-bit synthesis, you can check out his website here:

http://web.media.mit.edu/~nvawter/projects/1bit/index.html

He uses an atmega32 processor.  What I'm wondering is.. could we use a CORE module instead?  I'm not caring about the groovebox aspect of the device, but more the idea of a midi-controlled 1-bit synth.

If you want to know what's making me interested, check out the sound demos on the burnkit2600 site.  This thing rocks!

http://burnkit2600.com/gear/?p=33

Link to comment
Share on other sites

Yeh that does rock! Scored instant wife approval factor too! (She loves chip synths, every time she hears me play a demo of one she goes crazy. This time she jumped up and shouted 'Oooh what're you playing can I play too!?'  ;D )

On another thread someone was talking about 1bit waveforms on the sega chips I think, and I''ve been quietly pondering the idea ever since... I don't know if I'd bother trying to make a MBHP Core module do the same as this, but I sure as heck like the idea of a Core controlling a few of these chips and some analog circuitry for mixing and filtering and modulation and such....

Obviously if you were going to do that, you wouldn't need the onboard sequencer, but I'm sure that, thanks to the maker for being a total king and sharing the source code, it would be possible to drop the seq and use the extra power to run more 'oscillators' or perhaps drive envelopes/LFOs for the filters or something.

I notice that you're familiar with the burnkit site ;) I don't suppose you'd be able to get schematics? Or are they already there and I just missed them?

Link to comment
Share on other sites

the schematics are up on Noah's site, but it's just an atmega32 processor and it's written in C.  Thats why I figure it's a suitable idea for mb sid.  The question I'm unsure about is whether or not the PIC can bitbang out a 1-bit waveform and do UART at the same time (TK saying something about "you'd have to disable interrupts" comes to mind, which equals dropped midi notes iirc).  I know the atmega can do it since he uses external interrupts to capture the tap tempo timing (or so I understand from a quick view of the source).

The other option's just to get the parts he's talking about, but I think a CORE-based solution would be amazing since we all have extra CORE modules around (or at least, I do ;) )

Link to comment
Share on other sites

It isn't a big problem to ensure that incoming MIDI data won't get lost, when you are writing an own handler which checks for new data periodically. The period must be less than 320 uS

-> see also the MBHP_TV application

Best Regards, Thorsten.

Link to comment
Share on other sites

I was pondering such synthesis some time ago too :)

You could use the PIC's very high frequency (very high compared to audio rate :) ) to do two things:

1. Time stretching is easy: one waveform "bit" = about 100-1000 cycles of the pic (really I don't know, just a guess)

2. Since you can output at supersonic frequencies, you can do the same trick DDS is using (the encoding technology of Super Audio CD): if you output a 1-bit waveform at a very high frequency and then you just low-pass-filter it you can get any sound in the world. Actually no need for LPF since our ears already do that :)

Link to comment
Share on other sites

Just listened to the demos. Mmmm... sounds specific.

I'm afraid the 1 Bit Groovebox doesn't scale pitch well. It could be a nice source of samples.. but... y'know.

Some thoughts on the possibilities of this technology:

Very easy ringmod: just an AND inside the chip? I bet an external analogue ringmod would sound nicer though ;)

For some less-digital-ness: Random jitter max +/- 10 clock cycles while outputting the waveform

Huge sweepable wavetables, even ones you could control with 4 or 5 params (the wave cycles are small after all.. remembering the 1-bit depth and all...)

multiple internal oscillators in networks of AND, OR, XOR gates and random jitter: 8 separately tunable oscillators in an 8x8 network and the output goes out the lead of the PIC. Note that, if you don't add jitter, and the oscillators are all integer multiples of one freq, each set-up network should be deterministic - so you could create a waveform, store it, and use it in a new network. Perhaps you could specify some parameters that would be checked by the app and they would be stored as wavetable dimensions. That sounds like a nice workflow :)

Some setups that could sound nice:

- 1 osc controlling the resonance and another the cutoff of a filter a third osc is going through. the (analog) filter is controlled at audio rate. should be able to get weird formant-like sounds, but the filter would have to have components that can take the frequencies (so: very good caps etc), otherwise you'd just get a meltdown ;)

- make multiple oscs (up to 8 or so) output the same thing at once but each has a different random jitter. unison! should sound nice once mixed together.

This isn't a wishlist. Just a list of ideas to feed imagination ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...