Audio in (6)4K intros
category: general [glöplog]
Hi Guys(and Galls ofcourse),
How do you usually do audio for an intro? I have some ideas but I am not really sure what usually is done.
Greetz Jaap
How do you usually do audio for an intro? I have some ideas but I am not really sure what usually is done.
Greetz Jaap
http://www.pouet.net/topic.php?which=6415
Also: it is usually streamed from the internet. The tricky part is to code a good internet stream player in (6)4K.
Also: it is usually streamed from the internet. The tricky part is to code a good internet stream player in (6)4K.
Dude...
Donny?
stop using umlaut icon if you're not from umlaut. Thank you. It makes your question sound even more stupid.
It's sound waves! You generate sound waves. It's not complicated. Sin (freq*2*pi+t)
It's sound waves! You generate sound waves. It's not complicated. Sin (freq*2*pi+t)
For what I've done it's always been procedural. Code for the synth and everything else is there. Code typically is a lot smaller then data. I know this prod http://www.pouet.net/prod.php?which=18347 has the source code for their soft-synth separated. Might be a nice thing to look at if you're curious. You can look at one of mine here http://tmd.freeshell.org/play.c.html but it's not as easy to read as origami's.
Thanks sigflup.
I assumed it would be generated since there aint enough space to store about music(most of the time), I did come by an demo called "anruf aus sweden" and in it's source there was and header file with one huge array called music.
@CrossProduct, this better for you?
I assumed it would be generated since there aint enough space to store about music(most of the time), I did come by an demo called "anruf aus sweden" and in it's source there was and header file with one huge array called music.
@CrossProduct, this better for you?
jaapio, anruf aus sweden could of been doing that to keep all data inside their executable.
Jaapio: it wasn't me complaining about the icon :)
oops, bad copy paste...
Thanks Gargaj!
Gargaj: why do you multiply input by q in the filter routine?
high = q*input - low - q*bp
high = q*input - low - q*bp
trc_wm: it's the low/band/highpass filtering with cutoff and resonance.
The believe the formula is from book "Musical Applications of Microprocessors". At least its the oldest book where I saw it. Usually this secret formula was passed only to fellow demosceners by word of mouth...I first received it from Alien/VD.
The believe the formula is from book "Musical Applications of Microprocessors". At least its the oldest book where I saw it. Usually this secret formula was passed only to fellow demosceners by word of mouth...I first received it from Alien/VD.
Yes, its a variation of Hal Chamberlin's state-variable filter:
lp += f*bp
hp = input - lp - q*bp
bp += f*hp
The original version does not multiply 'input' by q, hence the question.
Some more info ppl may find useful:
The cutoff frequency is controlled by 'f', but it is only accurate for low values. Pre-warping using f = 2*sin(pi*freq_hz/fs) helps somewhat. Unfortunately, the filter goes into oscillation before reaching half the sampling rate, both in the pre-warped and unwarped case.
Also, 'f' and 'q' are somewhat interdependent, and the values for which the filter breaks into oscillation changes with these values.
This filter is based on an analog filter, which consists of two integrators and multiple feedback paths between them. Hal Chamberlin made a digitized version by simply replacing the analog integrators with Euler integration. The lp += .. and bp += .. lines are the integrators. This simple substitution breaks some of the nice properties of the analog filter, such as independent 'f' and 'q' controls.
There are better (with respect to stability) filters than this, but they require more computations (which usually involves tan(x) etc) to set the cutoff frequency. Search for: "digital biquad" and "audio EQ cookbook" for more info.
Sorry for the rant -- it won't happen again..
lp += f*bp
hp = input - lp - q*bp
bp += f*hp
The original version does not multiply 'input' by q, hence the question.
Some more info ppl may find useful:
The cutoff frequency is controlled by 'f', but it is only accurate for low values. Pre-warping using f = 2*sin(pi*freq_hz/fs) helps somewhat. Unfortunately, the filter goes into oscillation before reaching half the sampling rate, both in the pre-warped and unwarped case.
Also, 'f' and 'q' are somewhat interdependent, and the values for which the filter breaks into oscillation changes with these values.
This filter is based on an analog filter, which consists of two integrators and multiple feedback paths between them. Hal Chamberlin made a digitized version by simply replacing the analog integrators with Euler integration. The lp += .. and bp += .. lines are the integrators. This simple substitution breaks some of the nice properties of the analog filter, such as independent 'f' and 'q' controls.
There are better (with respect to stability) filters than this, but they require more computations (which usually involves tan(x) etc) to set the cutoff frequency. Search for: "digital biquad" and "audio EQ cookbook" for more info.
Sorry for the rant -- it won't happen again..
er, by all means, please keep ranting...
for people wanting to learn about digital filters, i can recommend this (free) book: http://www.dspguide.com/pdfbook.htm; especially chapter 33 for the impatient.
by the way, I use home-made second order filters for resonant lowpass/highpass.
by the way, I use home-made second order filters for resonant lowpass/highpass.
http://pouet.net/prod.php?which=52038
auld, nice link.
On DSP-Stuff: I can recommend this book:
http://tinyurl.com/pd8t6j
Cheers,
Nils
http://tinyurl.com/pd8t6j
Cheers,
Nils
Oh - and before I forget it:
For tiny reverbs that sound good check out the Alesis AL3201 or CoolAudio V1000 datasheet and especially the application notes.
It's written in a bizarre DSP-syntax, but since the DSP has only a hand of instructions it's not that difficult to figure out how it works. That'll give you mid 90th alesis style reverbs and pitch-shifting on a code-budget.
If you're interested and you can't find them let me know, I still have them on my harddisk somewhere.
For tiny reverbs that sound good check out the Alesis AL3201 or CoolAudio V1000 datasheet and especially the application notes.
It's written in a bizarre DSP-syntax, but since the DSP has only a hand of instructions it's not that difficult to figure out how it works. That'll give you mid 90th alesis style reverbs and pitch-shifting on a code-budget.
If you're interested and you can't find them let me know, I still have them on my harddisk somewhere.
Alesis semiconductor, who made the AL3201, is now called 'Wavefront semiconductor'. There you can find the datasheets for the AL3201, and more:
http://www.wavefrontsemi.com/index.php?id=11,14,0,0,1,0
http://www.wavefrontsemi.com/index.php?id=11,14,0,0,1,0
You can also just use minifmod for 64k intros...not as high quality but if it's a first 64k it'd be fine.
trc, thanks for pointing to the lnks, these are exactly the application notes I've talked about..
In answer to jaapio's question:
Although I've never written a 64K intro (no GFX skills), I have written my own softsynths for the exemusic compo at Breakpoint. I prefer the VSTi method, which is writing a VST compatible plugin that I can run in Cubase or similar MIDI-based sequencers. You can also write a BUZZ-compatible plugin -- whatever your musician prefers.
To write a VST plugin, you need the VST SDK from Steinberg. This is available free of charge, but you must register. You can find it at http://www.steinberg.net/en/company/3rd_party_developer.html. Stay away from VSTSDK 3.0 for the moment; use 2.4, which is more mature.
Coding your own synth in a VST plugin is very easy. You override the OnProcessReplacing (and similar) methods of the plugin base class for generating the audio and ProcessEvents for processing the note events, which are MIDI events. (see: http://www.midi.org/techspecs/index.php). There is an example synth plugin in the VST SDK.
You don't need to provide a custom GUI for your plugin. Most hosts will render a slider for each parameter. This is very restrictive but it gets you started.
For nice-looking VST plugins, you can use your own GUI toolkit, but I personally prefer VSTGUI 3.5 (don't use 3.0!), which is available at http://vstgui.sourceforge.net/. The documentation isn't particularly good, but it gets the job done. Others like to use the JUCE toolkit http://www.rawmaterialsoftware.com/juce/; the license is more restrictive, however.
As Ferris (Bueller, Bueller, Bueller...) pointed out, MiniFMOD is a quick alternative, although you won't get the flexibility of a full featured synth and your samples need to be short.
In short: do whatever floats your boat. :)
Although I've never written a 64K intro (no GFX skills), I have written my own softsynths for the exemusic compo at Breakpoint. I prefer the VSTi method, which is writing a VST compatible plugin that I can run in Cubase or similar MIDI-based sequencers. You can also write a BUZZ-compatible plugin -- whatever your musician prefers.
To write a VST plugin, you need the VST SDK from Steinberg. This is available free of charge, but you must register. You can find it at http://www.steinberg.net/en/company/3rd_party_developer.html. Stay away from VSTSDK 3.0 for the moment; use 2.4, which is more mature.
Coding your own synth in a VST plugin is very easy. You override the OnProcessReplacing (and similar) methods of the plugin base class for generating the audio and ProcessEvents for processing the note events, which are MIDI events. (see: http://www.midi.org/techspecs/index.php). There is an example synth plugin in the VST SDK.
You don't need to provide a custom GUI for your plugin. Most hosts will render a slider for each parameter. This is very restrictive but it gets you started.
For nice-looking VST plugins, you can use your own GUI toolkit, but I personally prefer VSTGUI 3.5 (don't use 3.0!), which is available at http://vstgui.sourceforge.net/. The documentation isn't particularly good, but it gets the job done. Others like to use the JUCE toolkit http://www.rawmaterialsoftware.com/juce/; the license is more restrictive, however.
As Ferris (Bueller, Bueller, Bueller...) pointed out, MiniFMOD is a quick alternative, although you won't get the flexibility of a full featured synth and your samples need to be short.
In short: do whatever floats your boat. :)