Jump to content

808SEQ discussion thread!


moogah
 Share

Recommended Posts

I've started a Wiki page to document this application.  Not much is there yet :)

WIKI!  http://www.midibox.org/dokuwiki/doku.php?id=mb808

NOTE: at the moment this post is breif and unorganized.  There are two things preventing me from getting it done right..

1.) I'm sick and have been taking alot of naps instead of coding...

2.) I'm still waiting for a replacement MoBo so I can burn a PIC.. the eBay-er I bought one off seems to be a bit of a douche..

This thread will be the place for discussing the adaptations required to turn the MBSEQ v2.4 application into the sequencer for my 808 clone.  As such this *is* a "TR Sequencer" but it is best not to confuse it with the fullblown MBx0xSEQ type application being discussed in another thread.  I'm welcome to crossposting ideas but this application has a different set of design parameters that require consideration.

Hopefully we'll see some new faces in this thread, perhaps even a few who have written code before, but I don't want to scare people off with all the technical details of assembly programming so any and all comments are welcome!

First thing everyone should do is check out the documentation for the MBSEQ, read the manual and the tutorials and peruse the pictures of other peoples projects to get an idea of what the application is capable of and what others have done with it.  Particular attention should be payed to the ability of playing 4 patterns at the same time, where each pattern contains 4 tracks where each track has a seperate layer for Note#, Velocity and Length.  You should then read up on the drum mode (tutorial #2), although I don't think we will be using it because of the limitation with the drumrolls.  Having done that we are ready to discuss what should be kept in the 808SEQ application and what we can exclude.

The most important limitation is in the interface.  The available boardspace is so limited that using a LCD is pretty much out of the question and therefore we don't have very good access to menus and "datawheel parameters".  Every neccessary function must be mapped to a keypress or keypress combo.  There is another important consideration: the 808 has 12 instruments which means a 4 track pattern will not be enough.  Drum mode is an option, but being restricted to one gatelength and therefore one flam setting per track is a problem.  Perhaps if we're lucky V.3 of the sequencer will not have that restriction, but for now I am assuming that each "pattern" will actually be a pattern set.

Theroy of Operation:

There are a total of 31 buttons, 3 encoders and one pot in the interface, they are:

-16 GP buttons

-4 Function buttons (F1-F4)

-4 Mode buttons (Song, Pattern, Mute and Edit)

-5 transport buttons (Play, Stop, Fwd, Rwd, Loop)

-2 Control buttons (Select, Exit)

-Instrument encoder

-Tempo encoder

-Datawheel

-Swing pot

There are 5 different Modes the sequencer can be in:

-Pattern play

-Pattern Edit

-Song Play

-Song Edit

-Mute

In each of the 5 modes the 16 GP buttons perform a different function and each of the Function buttons open up an additonal "menu" of 16 functions.  For instance:

In pattern play mode the 16 GP's display the current pattern by default.  By pressing the F3 button the GP's will display the current bank and pressing the F2 buttons will display the playback settings like Forward, reverse, ping pong etc.

In pattern edit mode the 16 GP's display the current instrument data by default.  The F1 key provides a shortcut to selecting the current instrument using the 16 GP's.

Entering edit mode for Song or Pattern is simply a matter of toggling the Edit button on or off.

Since the 808 has a global accent parameter the velocity data from Track 1 will be used for all tracks.  Flam data will be available for every track using the gatelength layer.  Editing the flam information is a matter of toggling the flam button on and then selecting the steps that are to be flammed, the datawheel will adjust the amount of flam action

Now, normally in a MIOS application a parameter is selected by navigating to it's position in a menu and then pressing the select button to make an edit.  In this application a parameter will be automatically selected for edit whenever the cursor lands on it and will automatically deselect that parameter and return to the previous menu when a parameter is entered.

The exit button will still work the same, providing a way to cancel entering a new paramater and a means of getting out of a menu.

The select button will be used to verify 'destructive' edits like saving, copying or clearing a pattern

In pattern edit mode the Fwd and Rwd buttons will move between the 4 available bars per pattern

Now the 808's analog instruments are not prepared to accept raw midi information to trigger them.  Each instrument has an AND gate where it interfaces to the sequencer.  Connected to this gate are two signals, this Instrument Data and the Common Trig clock.  Each of these signals consist of 1ms pulses synchronized with the sequencer except the Instrument Data pulse will only be present when a note is not muted.  Each instrument has it's own data signal while all instruments share the Common Trig signal.  The Accent information is merged with the Common Trig signal such that the amplitude of the pulse increases with a higher accent setting.  Although at first glance this may seem like a difficult task to handle, the answer is quite simple.  The Instrument data pulse can be handled by a simple DOUT pin, providing a 1ms on cycle whenever the proper note is triggered.  The Common trigger is a little more complicated because the amplitude of the pulse isn't fixed at 5v.  A look at the schematics reveals a way to turn another 1ms on cycle into the proper signal using just a few transistors to switch a voltage divider in and out of the circuit.  Now all we need to do is set the appropriate DOUT pins whenever an event occurs.  The best way to do this is interrupt the application whenever a NoteOn event occurs, checking to see if the note number is assigned to an analog instrument.  The accent data is set by comparing the velocity information against a threshold.

There is another thread about this here:  http://www.midibox.org/forum/index.php?topic=6873.0

It details the specific assembly code and technique to accomplish this.  It should be noted that there is a problem with this technique.  If the BD is assigned to note# 64 than it will be triggered whenever ANY track or layer sends the midi note#64, excluding the ability of sequencing external gear.

CONSIDERATIONS:

Interface items to keep:

-16 GP's

-Transport controls

-Song, Mute, Edit, Play modes

-Function keys

Interface items to cut:

-LCD

-16 GP encoders

-Track and Layer select buttons

-Scrub button

-Fast button

-Solo button

-All button

-Metronome button

Interface items to add:

-Dedicated tempo encoder

-Dedicated swing pot

-Dedicated Tap tempo/Audition button

-Instrument select encoder

Decisions, Decisions

-Use drum mode and loose independant flam layer?

Pros:

First and foremost using TK's drum mode increases compatibility with the base SEQ application on several levels.  The best reason to do this is probably that a single pattern can support 12 tracks + accent information, which is exactly what we need.  Giving up the individual flam layer is a tough decision, however, the original 808 didn't have flam.  Better yet by using drum mode we regain the possibility of using the Morph mode!  This is, I think a very good trade.  One of my favorite things about the original 808 was the A+B+Fill options the sequencer had.  I loved the ability to make two variations on a sequence and chain them together.  We now have the possibilty of giving each pattern a "Morph Twin" and being able to fade between them, possibly using the swing pot.

It should also be considered that changing the handling of the pattern sets to suit our needs and keep the flam layer is probably the most difficult thing on the TODO list.  Scratching it off while gaining a cool feature is the best option, I think.

-Change pattern while in Song Play mode.  It's best to look at the wiki to get an idea of what I'm talking about.  As the layout is now it is not possible to switch the current playing pattern within a song on the fly.  This is regrettable.  At the moment there is no easy solution that I can think of.  What I have thought of doing is trying to nest Pattern Play mode into Song Play mode.  This has several other advantages.. but may not be practical or possible.

Another possible solution to this would be to change the way patterns are accessed.  Instead of using 16 bank buttons and 16 pattern buttons to index the patterns I could instead use 8 bank and 8 pattern buttons at once.  Again this has the advantage of being more like the base application, and it allows access to 64 patterns at once instead of 16.  We would then need a sort of "meta bank" which could possibly be selected in a manner similar to selecting which bar of a pattern is current.  I think this deserves serious thought  :D

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.

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

×
×
  • Create New...