Jump to content
IGNORED

Programming via music keyboard.


Recommended Posts

Might it be possible in theory to assign BASIC programming snippets to the keys on an Intellivision music synthesizer?

 

So if I play a certain "note” on the keyboard, the program knows to call up a specified BASIC routine. This routine then runs and causes the audio/visual experience to change.

 

Alternatively, could I record the audio “sound” of rudimentary BASIC programs or definitions and piece together a BASIC program in a wav editor like audacity? Then, play it back to a the intellivision?
 

 

Link to comment
Share on other sites

In theory, it should be possible.  In practice, I do not know if anybody has mapped out the programming interface of the ECS Executive ROM to know how to call the BASIC routines.

 

Essentially, that's what the game Mr. BASIC Bits 'n Bytes does:  it has a program that calls back to the ECS BASIC to process mini "BASIC programs."

 

     -dZ.

  • Like 1
Link to comment
Share on other sites

21 hours ago, Intelligentleman said:

So if I play a certain "note” on the keyboard, the program knows to call up a specified BASIC routine. This routine then runs and causes the audio/visual experience to change.

It seems like you'd want higher-order snippets than just a BASIC statement.  You want a full-blown subroutine.  If you use IntyBASIC, it seems like it shouldn't be too hard to write a program that scanned the synth keyboard and had an ON x GOSUB to invoke one of 49 different routines based on which synth key you pressed.

 

You'd need to write that scanner, or integrate my assembly code synth scanner.

 

My assembly code scanner would actually do the "ON x GOSUB" thing for you, the way it's currently written.  It dispatches key-down and key-up events for all 49 keys independently, so you can press chords, etc.

 

A different approach, depending on what you're going for, might be to have a main loop that has up to 49 * 4 different condition tests ("just pressed", "held down", "just released", "not pressed") that repeatedly cycles and processes all keys.

 

21 hours ago, Intelligentleman said:

Alternatively, could I record the audio “sound” of rudimentary BASIC programs or definitions and piece together a BASIC program in a wav editor like audacity? Then, play it back to a the intellivision?

That won't quite work, as I believe the data structure that represents each line of an ECS BASIC program has absolute address information hardcoded in it.  MS BASIC does the same thing; however, MS BASIC has a fixup pass that runs after loading the program.  I don't think ECS BASIC has that.

 

All that said, it seems like it shouldn't be too hard to write an ECS BASIC tokenizer that runs on a PC and produces a binary that can be run through a binary-to-wave converter to produce something you could CLOD.  (I believe I've posted my bin2wav utility in the past that did the necessary FSK encoding.  It's not a difficult conversion)

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, intvnut said:

It seems like you'd want higher-order snippets than just a BASIC statement.  You want a full-blown subroutine.  If you use IntyBASIC, it seems like it shouldn't be too hard to write a program that scanned the synth keyboard and had an ON x GOSUB to invoke one of 49 different routines based on which synth key you pressed.

 

You'd need to write that scanner, or integrate my assembly code synth scanner.

 

My assembly code scanner would actually do the "ON x GOSUB" thing for you, the way it's currently written.  It dispatches key-down and key-up events for all 49 keys independently, so you can press chords, etc.

 

A different approach, depending on what you're going for, might be to have a main loop that has up to 49 * 4 different condition tests ("just pressed", "held down", "just released", "not pressed") that repeatedly cycles and processes all keys.

 

That won't quite work, as I believe the data structure that represents each line of an ECS BASIC program has absolute address information hardcoded in it.  MS BASIC does the same thing; however, MS BASIC has a fixup pass that runs after loading the program.  I don't think ECS BASIC has that.

 

All that said, it seems like it shouldn't be too hard to write an ECS BASIC tokenizer that runs on a PC and produces a binary that can be run through a binary-to-wave converter to produce something you could CLOD.  (I believe I've posted my bin2wav utility in the past that did the necessary FSK encoding.  It's not a difficult conversion)

 

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...