It’s midi again…

As a rest from debugging sequence sending code I wrote two simple programs with text interface which demonstrate implemented functions of my MIDI library.

midiTest

First one is midiTest and it is used for external midi device control with computer keyboard (I don’t have MIDI keyboard :(. What for anyway ? :) ).
midi_test
To play around with it you will need 16/32 bit Atari connected with midi cable to synthetiser (best is Roland MT-32/CM-32L/CM-500 family, but any should do) or emulator (with properly configured midi output redirected to synthetiser on PC sound card for example). As a remainder I have to mention that computer’s MIDI OUT has to be connected to MIDI IN of the synth.

If we have a second Atari machine we can connect it as a synthetiser: launch maxYmizer Live, load instrument patches and assign midi channels to instruments. Theoretically we can connect nearly anything, even vacuum-cleaner or elevator, as long as it has MIDI interface, recognizes MIDI protocol and generates sounds.

Constraints: one active channel at time, instrument names for synths GS sources aren’t displayed correctly yet (copying tables from documentation drives me mad), there’s no possibility for setting global synth parameters, effects and patch loading from files.

ym2149

Second one is ym2149 and it’s for playing around with Atari ym2149 sound chip. It’s not the same league as MaxYMizer Live, but rather little demonstration of general use and functioning of this chip (maybe when I will have some more time I will write something about getting grip with ym2149).
ym2149_test

Constraints: sound with the same period/pitch is generated on all 3 channels (it’s user interface fault – I didn’t want to spend too much time on this program).

Programs were tested under STEEM emulator and on Atari Mega STE, but they should run with all Atari 16/32 bit computers, 512kb of RAM should be sufficient.
Sources are available in project’s repository AMIDILIB.

Now is the question, what connects ym2149 and MIDI?

It’s about potential direction of my project development. If we could expand ym2149 sound engine eg. add patch loading with instrument settings (3 channels + 2 x digidrums ), add midi channel to instrument assignment configuration (it’s already done in maxYmizer, but we don’t need an editor, because we can use sequencer software or data can be read from midi file) then we could receive cool sound module, below there are examples of sound from MaxYMizer Live ( dance! :-) ):

Second interesting opportunity would be analogous functionality, but instead of ym2149 we could use DSP56001 for sound synthesis (it sits since 1992 in all Falcon’s 030) or as a effects generator for ym2149 (but it would be boring, because external, dedicated effects could do this better). I mean here similar functionality as in ACE tracker and ACE MIDI (in the example below no samples were used, sound is real-time generated in software on 5 channels, this machine has 16mhz CPU (!) ):

For those interested in DSP I reccomend Steve Smith “DSP Guide” (thanks to Sqward for a link). All the individual chapters of the book are free to download in pdf format.

What if we could put ym2149 and DSP sound sythesis into one box ? :) It’s, no doubt, very interesting option for future if july sweltering heat will not finish me off outright.

And, for the end, a song dedicated for all IT managers in the world, “FYMW, rooaaaaaaa” :D


About this entry