Image Map Image Map
Page 2 of 2 FirstFirst 12
Results 11 to 17 of 17

Thread: Hardware synthesis of CMF files?

  1. #11
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    4,060
    Blog Entries
    1

    Default

    Quote Originally Posted by Scali View Post
    I suppose what you're saying is that OPL2 is meant to use its own built-in ADSR to just play notes as 'fire-and-forget'?
    Absolutely. Look at programming info for the YM3812; it's described much more as a music synthesis processor than a generic sound chip, to the point where frequency data much be sent to the card specified in notes and octaves, KEY ON events, etc. The whole point of the ADSR stuff in general is that you can fire off a note and not babysit it.

    I don't know how AdLib trackers are designed, but if they're modeled after Amiga trackers, then they wouldn't do this.
    Adlib trackers are structured like a tracker but they work like a more traditional music program: If you play a note with a certain instrument, the "instrument" (OPL2 FM ADSR params) are sent to the channel, then the note data, then nothing as it just plays until you stop it. If you never change "instruments" then the ADSR params are never sent again. See Edlib, Adlib Tracker, HSC, etc. Of course, nothing says you have to abide by that; you can change every channel every frame if you want.

    However, the OPL2 can perform vibrato, tremolo, ADSR and such by itself, so you don't need to 'babysit' the channels every frame. You'd just need to design your music tools around this. It's much more similar to MIDI commands... send a note on/off, or modify some parameters on-the-fly for more advanced pitch bending or sound shaping.
    Exactly!

    Something tells me this goes horribly wrong on faster systems.
    I would think so too, but I don't remember it blowing up on a 386DX-40. I think the JMP may help the bus settle.
    Offering a bounty for:
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)
    - Any very old/ugly IBM joystick (such as the Franklin JS-123)

  2. #12

    Default

    Quote Originally Posted by Trixter View Post
    CALL overhead would be more significant if you were planning on firing an interrupt *every* time it is "safe" to write an OPL control/data combo. The only reason you would do this is if you had a latency- or jitter-sensitive need in your program, and unless you're writing a demo I don't think it's worth the effort.
    Probably not, at least for game/demo purposes. In my planned application (I'd eventually like to build a homebrew synthesizer keyboard around the OPL2, though it wouldn't be x86 anyway,) minimal latency is a desireable quality, so I might still go with it. We'll see, I still need to get around to building the thing first
    Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
    Synthesizers: Roland JX-10/SH-09/HS-80/MT-32/D-50, Yamaha DX7-II/V50/TX7/TG33/FB-01, Korg MS-20 Mini/ARP Odyssey/DW-8000/M1, Ensoniq SQ-80, E-mu Emax HD/Proteus-2, Casio CZ-5000, Moog Satellite, Sequential Circuits Prophet-600
    "'Legacy code' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup

  3. #13
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    4,060
    Blog Entries
    1

    Default

    If you want to go with a preassembled OPL2 keyboard: https://www.youtube.com/watch?v=QLJSdNYcdpk
    Offering a bounty for:
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)
    - Any very old/ugly IBM joystick (such as the Franklin JS-123)

  4. #14

    Default

    Oh, I love the FM-based PSRs and PSSs, don't get me wrong, but they're all various levels of toy keyboard - good toy keyboards, mind you, but toys nonetheless. Most problematically, you can't actually create your own patches (which I consider, with very few exceptions like the ARP Pro-Soloist, to be the minimum qualification for a proper synthesizer.) I understand that a couple do have those editing sliders, and I've heard that one of them (I think the PSS-480?) allows you to do voice editing over MIDI, but the sliders are ridiculously limited even in comparison to the stripped-down architecture of the OPL chips. This is especially frustrating considering that the two-operator FM chips are the only ones with a voice architecture simple enough that you could actually do a full one-control-per-parameter panel interface for it, but they never did...

    (Plus, doing a homebrew keyboard would allow some niceties like velocity sensitivity which the toy keyboards don't have.)
    Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
    Synthesizers: Roland JX-10/SH-09/HS-80/MT-32/D-50, Yamaha DX7-II/V50/TX7/TG33/FB-01, Korg MS-20 Mini/ARP Odyssey/DW-8000/M1, Ensoniq SQ-80, E-mu Emax HD/Proteus-2, Casio CZ-5000, Moog Satellite, Sequential Circuits Prophet-600
    "'Legacy code' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup

  5. #15
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    4,060
    Blog Entries
    1

    Default

    Quote Originally Posted by commodorejohn View Post
    This is especially frustrating considering that the two-operator FM chips are the only ones with a voice architecture simple enough that you could actually do a full one-control-per-parameter panel interface for it, but they never did...
    Were there ever any standalone/rackmount Yamaha MIDI modules that offered this?
    Offering a bounty for:
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)
    - Any very old/ugly IBM joystick (such as the Franklin JS-123)

  6. #16

    Default

    Not that I know of, not with the OPL series. Yamaha's professional synthesizer stuff all seems to have been 4-op with attack-decay-sustain-decay-release envelopes at the least; I imagine they thought of the cheaper 2-op chips as strictly for toys and game systems. And they never had anything like a control-per-parameter interface for the FM synths (past the 2-op chips, there's just too many parameters - a third party once made one for the DX7, and it was easily as large as the keyboard itself.)
    Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
    Synthesizers: Roland JX-10/SH-09/HS-80/MT-32/D-50, Yamaha DX7-II/V50/TX7/TG33/FB-01, Korg MS-20 Mini/ARP Odyssey/DW-8000/M1, Ensoniq SQ-80, E-mu Emax HD/Proteus-2, Casio CZ-5000, Moog Satellite, Sequential Circuits Prophet-600
    "'Legacy code' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrup

  7. #17

    Default

    Considering a CMF file is just a midi file with the OPL patch data in the header, that's a really big bullshit claim. Particularly since to PROPERLY handle the possible timing limits of a MIDI file, you're looking at a minimum timer of 1736hz -- the maximum theoretical throughput of MIDI messages; though in terms of actual timing accuracy to fully meet the specification most real sequencer software requires 28khz due to the following:

    240bpm maximum accuracy play rate * 2.5 skew adjustment * 16 (64th notes at 4/4) * 3 (triplet accuracy)

    That extra half a skew adjustment is similar to the Dolby skew, aka why we use 41.4khz or higher for 18khz max frequency audio instead of just 36khz.

    Generally for older pre 386 systems, MIDI is a piss poor choice for audio without a smart device -- and adlib sound is by no means a smart device generating its own timer interrupts or serving note on/of itself. CMF does nothing to change that because at it's core it is JUST MIDI.

    About the only thing most CMF files did was to a degree save on disk space as they were often mapped so that channels 2..10 contained GM or MT-32 mapped midi, whilst channels 11..16 contained your adlib/opl music data. While this saved on disk space it actually used more memory when running unless you filtered out the unwanted during load (adding to code and load time) -- which if you didn't took MORE time to process since you had data in the MIDI stream you weren't using!

    ... and unless you were writing for protected mode where you had more memory than brains, anything that wasted memory in that manner could hardly be considered an improvement. There's a reason I used my own format for Paku Paku instead of actual MIDI data.

    MIDI is great for composition and professional music, but for game music it leaves a LOT to be desired, particularly in real mode programming on anything that isn't ACTUALLY a MIDI device. I often wondered what the **** Creative was smoking when they made the CMF format...

    So to hear someone making such claims about it? Oh baby who put the derp in the herpaderpaderp? Who put the damn in the holy***ing***damn? Who put the dip in the dipdadipda****? Who was that man, I'd like to punch his face; his statements sound so stupid to me... WELL...

    Of course when we're talking the tone deaf tinny weak el-cheapo Yamaha AM synth rubbish, wild claims and expectations are pretty much the norm. Admittedly much of that attitude comes from having owned a Roland D20 with matching MPU 401 knockoff before I ever owned anything that had Adlib sound in it.
    From time to time the accessibility of a website must be refreshed with the blood of owners and designers. It is its natural manure.
    CUTCODEDOWN.COM

Page 2 of 2 FirstFirst 12

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •