45 minutes MZX as a winamp plugin
#1
Posted 17 August 2005 - 11:38 PM
videogame-influenced-electronica+ambience (whatever that means...)
And I'd like to have some sort of visual presentation.
Question 1:
So I can just have a totally separate machine generating/displaying visuals with no influence from the music...
But how could I get MZX to interact with the music?
- use the file input functionality to read from the sound device (in linux) or something similar?
- manually punch in a beat using the computer keyboard (DJ mixer beatcounter style) to sync up MZX to the music and preprogramme some visual sequences?
- hack in MIDI functionality to MZX? (http://www.sreal.com...ties-for-unix/)
Question 2:
Do I get you digimzx goons to make the presentation for me (NO TIME FOR LIPID) and donate proceeds (in addition to that $30 I owe Exo already) to the MZX dev team?
#3
Posted 18 August 2005 - 02:00 AM
- Exo
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#4
Posted 18 August 2005 - 02:21 AM
The sample position may be helpful, but understand that I'm not intending to generate any sound from MZX.
Let's not go crazy just yet. I'm looking for some discussion!
---
Visualise the "sound data" in three forms.
1. Pure PCM
2. Amplitude Frequency Spectrum ( Fast Fourier Transforms in MZX? )
3. Note data.
Usefulness:
The Fourier transform could trigger some visualisation sequence based on rate of change of bass volume, absolute volume of middle section, etc.
The pure PCM data (oscilloscope) coupled with Fourier transform seems to be what drives most winamp vis. plugins, WMP visualisations, etc.
Note data (from a MIDI port, or via whatever method) could be used as triggers for some sort of sequence. Highly customisable, as it ties directly to what's being played live.
---
GPL link:
http://www.gnu.org/c...t/gpl.html#SEC3
It seems that the definition of _distribution_ is the key here.
Can MZX read from a joystick? (game port device?)
#5
Posted 18 August 2005 - 02:22 AM
#6
Posted 18 August 2005 - 03:03 AM
#7
Posted 18 August 2005 - 03:17 AM
lipid, on Aug 17 2005, 09:21 PM, said:
Yes, it can.
http://www.digitalmz...es/joysetup.zip
This is in the utilities section as joystick mapper.
#8
Posted 18 August 2005 - 03:51 AM
Nedemai, on Aug 18 2005, 03:17 AM, said:
lipid, on Aug 17 2005, 09:21 PM, said:
Yes, it can.
http://www.digitalmz...es/joysetup.zip
This is in the utilities section as joystick mapper.
So the next question is,
where does it read and parse the input from the joystick?
at the SDL layer? (Simple DirectMedia Layer Layer?)
directly from the game port?
Windows something something?
A typical MIDI cable plugs into the game port... (to transmit note data)
Perhaps the interface to the hardware is already there... it just needs to be parsed and passed to MZX?
djtiesto, on Aug 18 2005, 03:03 AM, said:
Is there another one (PS1 game?) where the music is the white line and you're a little guy trying to stay on the music, or something like that?
#9
Posted 18 August 2005 - 05:26 AM
- Exo
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#10
Posted 18 August 2005 - 07:03 AM
http://www.gephex.org/
I did some extra research, really only yielding:
http://www.libsdl.or...une/046711.html
Indicating maybe there IS some support, just not officially?
#11
Posted 18 August 2005 - 07:36 AM
http://audiality.org/download.html
#12
Posted 18 August 2005 - 04:55 PM
An alternative, slow, moderately evil way would be to output the results of your FFT from a standalone C program (I could write one pretty quickly to do ALSA->audio in->FFT->write out) and just poll a file on disc. This wouldn't require modifications to MZX.
On Windows, obviously the same things are possible. SDL itself doesn't support MIDI. SDL_mixer can play MIDI using timidity, but that just renders MIDIs, it can't read in MIDI data. If whatever you use involves MIDI, it's unlikely you could write it in a clean, moderately acceptable way (if the changes were ever to be integrated into MZX), but PCM/FFT stuff would be easy to do and cheap to add (but will require knowledge of MZX's source code regarding updating counters and making them available to robotic.. but this can't be too hard).
Cheers,
ajs.
#13
Posted 18 August 2005 - 11:00 PM
lipid, on Aug 18 2005, 03:51 AM, said:
Yeah, it's called Vib Ribbon and never came out in the States... you put in a CD and it generates levels (with monochrome, vector graphics) based on the rhythm of the song... sounds unique and it used to get a lot of hype back in the day, but I've never played it myself.
#14
Posted 18 August 2005 - 11:40 PM
So if you have an external midi player(the majority of midi instruments have a playback feature that feeds notes to the computer to be recorded into the file format), it'd be perfect for this project... cause all mzx would then be reacting to was joypad/stick input.
However, this is a quick fix... I presonally would love to make games react to music, I'd love mzx to have more music interactivity than just the current mod order playing...
Things I'd really like to see
mod order position.
mod position's note given the track.
General volume
Exact volume
And why not also allow robots to have an affect on the music, the speed, tempo, maybe a note shift or something...
And anything else that might be possible...
Does modplug have structures to read this data from? Can we get these functionalities in mzx?
I'm sure it'd open a few doors to game genera's not only limited to ddr clones.
This post has been edited by Koji: 18 August 2005 - 11:47 PM
#15
Posted 18 August 2005 - 11:42 PM
#16
Posted 19 August 2005 - 01:28 AM
Koji, on Aug 18 2005, 11:40 PM, said:
Yeah, it would be cool. But I think we established
(Exo, correct me if I'm wrong...)
that MZX implements a joystick through the SDL and DirectMedia layers.
It sounds like these two layers have transformed any "raw data" entering the game port into joystick events, ignoring any "non-standard joystick data" (i.e. MIDI data) through the game port.
#18
Posted 19 August 2005 - 02:00 AM
lipid, on Aug 18 2005, 08:28 PM, said:
Koji, on Aug 18 2005, 11:40 PM, said:
Yeah, it would be cool. But I think we established
(Exo, correct me if I'm wrong...)
that MZX implements a joystick through the SDL and DirectMedia layers.
It sounds like these two layers have transformed any "raw data" entering the game port into joystick events, ignoring any "non-standard joystick data" (i.e. MIDI data) through the game port.
Most joysticks don't even use gameport, and modern OS's don't really have direct gameport support built in. A device driver can of course facilitate this. In theory a driver could make MIDI look like a gamepad to Windows (or Linux) but that's just too much work...
- Exo
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#19
Posted 28 August 2005 - 01:33 PM
MWUAHAHA
It's a dirty Windows hack at the moment...
I'll tidy it up and look a bit at how to make linux work (through ALSA).
Essentially so far,
MZX app updates MIDITYPE, MIDICH, MIDIVAL1, MIDIVAL2 counters according to whatever's being read off the midi device.
It kinda sucks (interface feature-wise) at the moment.
I'll expand the functionality a bit to map the counters:
"MIDITYPE<device><channel>", "MIDIVAL1<device><channel>","MIDIVAL2<device><channel>"
This seems to be the most flexible way to expose the information to the MZX environment.
---
Alternatively, a robot could request the MZX app to write to it's local counters for a specific device and channel...
#20
Posted 28 August 2005 - 03:30 PM
- Bertrand Potato
#22
Posted 28 August 2005 - 08:58 PM
Now if you're able to get a glimpse of exactly where you are when playing OGGs, it's possible that you could rig something up that actually took advantage of DWI/SM files. The BPM calculations might be a bit of a pain, though.