Jump to content
IGNORED

New Project: IMT Player


Recommended Posts

I thought to share my new project with everyone:  I am working on a music player program for the Intellivision Music Tracker.  The idea is to offer a neat visual display while listening to IMT tracks, sort of like the classic "SidPlayer," except with a unique Intellivision flair.

 

My original thoughts on what to include are:

  • Support more than one track and include a simple menu for selection.
  • Display a keyboard and highlight which notes are playing in each channel.
  • Display an old-school amplitude meter that tracks the volume of each channel.
  • Display a simple "drum pad" that lights up as percussion instruments are played.
  • Have the Intellivision Running Man running on the screen chasing notes as they scroll by.

 

That last one is a bit tricky:  I want to use GRAM cycling to show a simple scrolling scenery -- in my head I see it as one of those "endless runner" games, with buildings or trees scrolling by.

 

It's still in early stages.  Here's a draft of the initial layout:

 

IMTPlayer.thumb.png.10acc13cad02290f9039b8a252fb314f.png

 

I know right now it doesn't look like much.  I am first focusing on the core functionality -- I can always add some additional detail later, provided there is enough GRAM left over.

 

Anyway, any feedback is welcome.  Also, please feel free to offer any suggestions on how to make it more visually interesting or how to give it more pizazz.  😃

 

     -dZ.

  • Like 6
Link to comment
Share on other sites

Here are some technical details of the design so far:

  • Six sprites allocated for the note keys -- one per channel.  I am considering using two and multiplexing them across three each, but for the moment I'm not worrying about that.
  • I'm using Color Stack mode.
  • 21 GRAM cards are allocated for the keyboard.
  • One sprite allocated for the Running Man.
  • One sprite (or more if I multiplex the ones for the keys) for some additional flair, like scrolling notes or whatever for the Running Man to chase.
  • Allocating at least 6 GRAM slots for cycling background cards to simulate a scrolling background.
  • Only 8 drum pads are available, but the tracker supports any number of drums, so they will all have to share the pads.  I don't think this is a problem because tracks do not typically use that many anyway.
  • The user can use the keypad to play, pause, and stop playback, or return to the song menu.
  • The big black box at the top is for the song's details such as title, artist, etc.  I don't know right now what else to do with it.

 

The progress so far:

  • IMT 2.0 tracker is ready for use.
  • Sample track ("The NeverEnding Story") is done.
  • Basic music player layout is done.
  • Core state machine is done.

Next up, I will work on the key overlays to show the active note on each channel.

 

     -dZ.

  • Like 2
Link to comment
Share on other sites

5 minutes ago, RayXambeR said:

will the intellivision music keyboard be used with this program

As far as I can tell, this is a playback program for music created using the new IMT tracker program. While it supports the ECS extra sound channels, I doubt there will be any live playing with the music keyboard.

Link to comment
Share on other sites

7 minutes ago, RayXambeR said:

Seems really interesting! Every music program is interesting in my opinion :)

If you need some testing, contact me.
 

 

Thank you, will let you know once there it is ready for testing. :)

 

7 minutes ago, RayXambeR said:

A question: will the intellivision music keyboard be used with this program or not necessarily?

 

No, sorry.  This is only a passive music player -- like a "jukebox" sort of thing:  You select a song from a menu, and it will play it and give you a nice visual while doing so.

  

1 minute ago, carlsson said:

As far as I can tell, this is a playback program for music created using the new IMT tracker program. While it supports the ECS extra sound channels, I doubt there will be any live playing with the music keyboard.

 

Exactly.

 

I do have an idea of making an actual Intellivision "tracker" program -- to compose music for the IMT -- someday.  However, that is a much, much larger project, so it has to compete with all the other games and random projects I already have in my "To-Do" list.

 

That said, depending on how this project goes, I may take it up.

 

     -dZ.

 

  • Like 1
Link to comment
Share on other sites

First test of the note playback on the keyboard.  I created a short test song in IMT format that plays a 12 semitone scale over and over on every channel.  Here are the results:

 

 

 

The code is sort of messy and sub-optimal.  I may need to re-implement it in assembly language, but I will leave that for some other day.

 

Thoughts?

 

     -dZ.

Link to comment
Share on other sites

1 hour ago, carlsson said:

Shouldn't the lower octave be in the bottom manual, and the top octave in the upper? Or well, I've never played a church organ so I don't know for sure but I assumed that is how it works.


I don't know, I think you are right.  I guess I could flip them.  It just didn't occur to me before.

 

    dZ.

  • Like 1
Link to comment
Share on other sites

You know … I don’t like the upside down arrangement of octaves on the keyboard.  It may be good for a church organ, but it feels more natural to display it the notes in the way we read:  left to right, top to bottom.

 

     dZ. 

Link to comment
Share on other sites

46 minutes ago, carlsson said:

Ok. In terms of sheet music though, brighter notes are placed higher than low notes. Perhaps that reflects my thinking.


That is a very good point.  I’m convinced.  :)

 

    dZ.

Link to comment
Share on other sites

On the other hand, I realize that you have knobs, stops or other forms of register settings on an organ which will affect each manual separately. It seems most organs are configured so the melody is on the lower (!) manual and the chords on the upper, though I suppose it can be configured opposite. So in this respect, you may have been correct from the beginning. I don't know about synthesizers with multiple manuals though, if they have one sound setting per manual.

 

Also don't forget to put on a good pair of Intellivision shoes. I read that Coleco on the other hand sold rubber footwear from 1938, but as we can see in the video below, those would NOT be suitable here.

 

Edited by carlsson
  • Like 2
Link to comment
Share on other sites

17 minutes ago, carlsson said:

On the other hand, I realize that you have knobs, stops or other forms of register settings on an organ which will affect each manual separately. It seems most organs are configured so the melody is on the lower (!) manual and the chords on the upper, though I suppose it can be configured opposite. So in this respect, you may have been correct from the beginning.

 

Well, I wasn’t trying to replicate an organ.  However, your comment about brighter notes typically thought of as higher made sense to me and reminded me that that is how I think of it as well.

 

17 minutes ago, carlsson said:

I don't know about synthesizers with multiple manuals though, if they have one sound setting per manual.


I don’t know.  I’ve never used a double-stacked keyboard synthesizer.

 

I supposed it would be organized the same way.

 

When I’ve seen musicians stacking multiple synths in a rack to play in concerts, I’ve noticed that the bassy ones are below, and the one used for melody are above, so there is that.

 

17 minutes ago, carlsson said:

Also don't forget to put on a good pair of Intellivision shoes. I read that Coleco on the other hand sold rubber footwear from 1938, but as we can see in the video below, those would NOT be suitable here.

 

 

Hahaha!  That is funny!  I’m sure it is true, though.  :)

 

    dZ.

  • Like 1
Link to comment
Share on other sites

On 7/21/2024 at 9:19 AM, DZ-Jay said:

I thought to share my new project with everyone:  I am working on a music player program for the Intellivision Music Tracker.  The idea is to offer a neat visual display while listening to IMT tracks, sort of like the classic "SidPlayer," except with a unique Intellivision flair.

 

My original thoughts on what to include are:

  • Support more than one track and include a simple menu for selection.
  • Display a keyboard and highlight which notes are playing in each channel.
  • Display an old-school amplitude meter that tracks the volume of each channel.
  • Display a simple "drum pad" that lights up as percussion instruments are played.
  • Have the Intellivision Running Man running on the screen chasing notes as they scroll by.

 

That last one is a bit tricky:  I want to use GRAM cycling to show a simple scrolling scenery -- in my head I see it as one of those "endless runner" games, with buildings or trees scrolling by.

 

It's still in early stages.  Here's a draft of the initial layout:

 

IMTPlayer.thumb.png.10acc13cad02290f9039b8a252fb314f.png

 

I know right now it doesn't look like much.  I am first focusing on the core functionality -- I can always add some additional detail later, provided there is enough GRAM left over.

 

Anyway, any feedback is welcome.  Also, please feel free to offer any suggestions on how to make it more visually interesting or how to give it more pizazz.  😃

 

     -dZ.

Only plays tracks on IMT format or it's possible to play any simple tracks in BAS?

Link to comment
Share on other sites

15 minutes ago, Nyuundere said:

Only plays tracks on IMT format or it's possible to play any simple tracks in BAS?

 

Well, given that it was intended as an IMT music player, it only plays IMT format.  I suppose at some point it could be adapted to support IntyBASIC music format as well.  It is not a priority, though.

 

     -dZ.

  • Sad 1
Link to comment
Share on other sites

1 minute ago, carlsson said:

Perhaps IntyMusic can be used to play any IntyBASIC music?
https://forums.atariage.com/topic/255530-intymusic-music-viewer/

 

 

Right!  That's actually why I wanted to make this music player, because the one for IntyMusic was so cool already. :)

 

    -dZ.

Link to comment
Share on other sites

I have completed the implementation of the main elements:

  • Amplitude meter
  • Keyboard
  • Drum pad

It seems to work fine, but it drags quite a bit when all six channels are playing.  I will try to optimize the code and maybe even switch to assembly language at some point.

 

In the meantime, enjoy this test track.  @carlsson, this one is for you!

 

 

 

       -dZ.

  • Like 4
Link to comment
Share on other sites

1 hour ago, DZ-Jay said:

I have completed the implementation of the main elements:

  • Amplitude meter
  • Keyboard
  • Drum pad

It seems to work fine, but it drags quite a bit when all six channels are playing.  I will try to optimize the code and maybe even switch to assembly language at some point.

 

In the meantime, enjoy this test track.  @carlsson, this one is for you!

 

 

 

       -dZ.

image.png.6adb45473a5a4b0b0dc8af4d3d914d51.png

  • Haha 1
Link to comment
Share on other sites

1 minute ago, carlsson said:

I've begun working on a song, hopefully I have something to release in a few days or a week.

 

Great!  More tracks to test with. :)

 

At the end of this project, we'll have a "jukebox" program with a few tracks.

 

    -dZ.

  • Like 1
Link to comment
Share on other sites

I tried testing the player with The NeverEnding Story track, which is very busy, and the screen display cannot keep up with all the updates.  Ouch!

 

I've gone as far as I can with IntyBASIC -- it is time to re-write chunks of the program in Assembly Language.

 

It is also time to add native support for 50Hz playback and sync to the IntyBASIC runtime.  That will be my job on Sunday.  😅

 

Still, that Blue Monday intro came out very nice! ☺️

 

     dZ.

  • Like 1
Link to comment
Share on other sites

I came across a problem that annoys me.

 

The best songs I've made for the Intellivision Music Tracker use six tracks, and it would be natural that most of the ones playing musical instruments would play notes within the same narrow octave range -- apart from a bass-line, most melodies are played with different software envelopes on the same octaves.  So, when you have, say, three or four tracks all playing their notes on the same octave, their sprites over the keyboard stumble on each other, and it looks like a mess.

 

Here is an example.  Notice that while the bass-line is by itself, it looks fine, but as soon as you get multiple channels playing, it's hard to tell what's going on and it looks sort of random.  (The drum pads and the amplitude meter look very nice, though!)

 

 

With the IntyMusic viewer, this is not so much a problem, since it does not really support drum instruments and most tracks are played in three channels, and used typically to play distinct notes for chords and such.

 

Part of the problem is that it is rather easy to abuse the flexibility of the IMT to exploit its capabilities in order to get a nice sounding track -- for example, intercutting tuned drum samples and bass notes in one track, or using some of the effects.  When these techniques are used, the song sounds great, but the music player would probably struggle to make them look nice.

 

I suppose that if a musician wants to publish his song using the IMT Player, they should be mindful of the track's structure.  Perhaps we could impose some constraints on the way tracks are constructed for the music player.

 

Any ideas on how to make it look better is welcome.  How is track complexity handled in music players on other platforms?

 

      -dZ.

  • Like 1
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.
Note: Your post will require moderator approval before it will be visible.

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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...