Roland 5 manual Europa User Guide Europa Internal Architecture, Boot block

Page 77

Europa User Guide

Europa Internal Architecture

13. Europa internal architecture

Europa is a completely new operating system replacement for the Roland Jupiter 6. The code is an entire rewrite from the original Roland code and uses a compatible microprocessor with modern features, such as flash storage and double performance of the original 8051/8031 at the same clock rate. The source code is over a megabyte of MCS-51 assembly language, which compiles down to roughly a 32K binary executable. The additional processor performance allows Europa to expand the Jupiter 6’s feature set and perform tasks the original Roland Jupiter 6 controller board could not. Due to backward compatibility, Europa’s installation is greatly simplified as compared to many other synthesizer retrofits.

Europa is comprised of two images:

Boot block

The boot block provides basic flash writing services, Jupiter 6 controller board diagnostics, check coding of the Europa image itself, firmware transfer mode, and other boot time diagnostics. This area is never written to and is guaranteed to be there even after a bad Europa upload. The boot block will not attempt to execute a Europa image if it is bad or missing or if the board’s uncorrectable diagnostics fail.

Europa

The Europa operating system itself. All runtime board functionality is present in this image. It can be updated by the Europa Firmware Update Utility.

Europa contains a custom message queued operating system. When Europa has no messages to process, it puts the microprocessor to sleep waiting for the next event. Europa runs with a single foreground thread. MIDI Messages and timer callbacks (for user interface and clocking) are run as interrupts. Timers check for other events (such as arpeggiator advancement and clocking), the buttons/LEDs are checked and strobed, and potentiometers/sliders are checked – looking for changes in board operation. Changes are deposited in the message queue at timer interrupt time for processing by the foreground process. The differences in messages deposited from MIDI and the front panel is a single bit. To Europa’s messaging system, the front panel is a MIDI device! The same code – literally – handles the processing of MIDI and front panel events.

Internally, the message queues have a depth of 128 outstanding messages. Almost all messages (excluding those that write to flash) are processed in under 1 millisecond, giving the best possible performance. As a comparison, the original Roland code had a latency of as much as 15 milliseconds! Note that the controller board speaks to the voice board over a serial port, so it is possible for Europa fall behind in processing incoming notes and controllers. We’ve found that Europa and the Jupiter 6 voice boards can sustain a flood of controllers and notes at the rate of 32nd notes @ 500 beats per minute – roughly a single event every 3.8 milliseconds. It’s highly unlikely that anyone would ever realistically reach this limitation - especially considering most other synthesizers would drop notes or lock up at much lower rates. Changes at this rate are nonmusical.

Arpeggiator clocks are maintained in a separate queue. Clocking takes priority over all regular events. This contributes to Europa’s ultra stable internal clock – performing to within 0.2% of the desired BPM setting over a range of 60-240BPM!

The Europa source code itself is an object oriented design. Each subsystem is its own independent bit of code allowing for great modularity and ease of development making Europa much easier to expand or modify in the future. The code took about a year to write. No Roland code was used or harmed in the process – it’s completely Synthcom developed code.

Page 77

Image 77
Contents Page Trademarks What’s on disc Europa User Guide Table Of ContentsVoice assignment modes Table Of Contents Europa User GuideBoot block Europa Common problemsArpeggiator step rhythm programming buttons Arpeggiator mode and options when the UP button is HeldEuropa User Guide Terminology and symbols Introduction Europa User Guide Tape BoldAdditional arpeggiator modes New feature summary Europa User GuideEuropa User Guide New feature summary What is not included Arpeggiator, voice, and synchronization structure Europa User Guide Operational differencesOperational differences Europa User Guide Additional voice assignment modes Power up diagnostics Power up diagnostics and actions Europa User GuideEuropa User Guide Power up diagnostics and actions To F-5 Europa boot and diagnostic flowchart Internal CPU stack RAM is tested Jig mode is tested Tape Button is testedInternal CPU Xram is tested External scratch RAM is testedBender Write + TapeSelection Base Midi channel Setting the Jupiter 6’s base Midi channelLED Off LED onLED Blinking C D E F Aftertouch assign ENV-1 Key track ENV-2 Key track LFO Delay Manual Cross MOD VCO 1 RangeVCA LFO Solo Solo assign LED lit solid Europa User Guide Voice assignment modesWhole Split Voice assignment modes Europa User GuidePoly 2 steal Poly 2 LED blinking Arpeggiator Europa User Guide Arpeggiator EuropaUser Guide Midi Clock Sources of notes to be played and keyboard/MIDI interaction Europa User Guide ArpeggiatorArpeggio note List Sequence note Arpeggio note calculator takes the note to play Internal clock a Arpeggiator mode and options when the UP button is held E F G a B Random mode Sequence modes and optionsRecording a sequence Arpeggiator step rhythm programming buttons Europa User Guide Arpeggiator Transfer patches from tape to Europa? How do I……..? Europa User GuideEuropa User Guide How do I……..? Save all patches and presets to MIDI? Can’t get any sound out of Europa from the local keyboard Europa User Guide Common problemsCommon problems Europa User Guide Hear unplayed or missing notes in my arpeggiations Arpeggiator runs too fast/slow or doesn’t stay in sync Windows firmware update utility Europa User Guide Europa Firmware Update UtilityEuropa Firmware Update Utility Europa User Guide Locate an image to update Update the Jupiter Apple Macintosh Europa Firmware Update Utility Locate an image to update Update the Jupiter Basic Midi functionality Europa Midi Implementation Europa User GuideIDI Message Europa User Guide Europa Midi ImplementationVCO MOD =LOWER SPLIT, 127=UPPER SplitLFO ENVVCA ENV VCO MixerVCF LFO VCO UnisonPWM LOWER/UPPE KEY ModeLower Upper Lower SPLIT, 127= Upper SplitEuropa Midi Implementation Europa User Guide Europas Continuous Controller map BPM F0h Command 02h Set Europas base Midi channel VCO MOD LFO Europa User GuideEuropa Midi ImplementationXmod Manual VCO MOD ENVVCF LFO 1 mod VCA ENV 2 LevelPWM LFO Europa Midi Implementation Europa User Guide Upper /WHOLE UPPER/WHOLEA1-F8 Whole Lower Upper WholeCommand 07h Assign controller F0h 41h 10h 4ah 36h 00h 68h 36h f7h Europa User Guide Europa Internal Architecture Boot blockVisit Synthcom on the internet Contact Information Europa User GuideUser installed Europa upgrades Europa User Guide Europa Limited WarrantyEuropa Limited Warranty Europa User Guide Europa User Guide Acknowledgements AcknowledgementsEuropa supermode reference sheet Arpeggiator mode and options when the UP button is held