Jump to content

Antichambre

Programmer
  • Posts

    1,291
  • Joined

  • Last visited

  • Days Won

    101

Blog Entries posted by Antichambre

  1. Antichambre
    Hi everyone I’m back and my project too.

    It was not easy. Not because of the technical issues, just bad karma.
    In 2011/2012 I made a working firmware and a manager under Max/MSP.
    Because of personal reasons, I put the project on hold.

    End of 2012, I received a message from Eptheca who asked me the status of the project.
    With his help we decided to print 3 PCB’s. Unfortunately during this period, the hard drive of my computer suddenly decided to leave me, and I lost all my work: ((
    I sent the drive to Shanghai to try to recover my data, but of course my disc was one of the non-recoverable 10% (always this bad karma).

    So now we had the box and the electronics but nothing to put in it.
    In February I decided to rewrite everything but it took me some time.
    ...
    Done!

    We've now got a new firmware and the application to manage the box.

    I am inspired by the version 1 MB-SID.
    I kept all the features of this engine.

    I improved the management of banks, I dedicated two envelopes to the voice of the TIA which is free, and a few small details that might please you.

    Here is the features of it:
    1 dedicated envelope for each voices(so 2) with optional non-linear curve and Sync which can be assigned to Amplitude and pitch. 3 specifics Mode to mix Modulation matrix and this env
    Env+Mods, Env*Mods, Env+(Env*Mods).
    2 additional envelopes with optional non-linear curve and Sync which can be assigned to Amplitude and pitch.
    4 additional LFOs with different waveforms and Sync which can be assigned to Amplitude and pitch.
    Pitch Bender
    Portamento/Glide function with Optional "Constant Time Slide".
    Delays
    1 Arpeggiator for each voice(so 2) with optional Sync.
    Poly, Mono and Legato Mode
    Separate keyboard zones for each voice (key splitting) allows to play voices separately
    Extended Mode for keys(all note reponse) or non extended with offset and length.
    1 velocity response for each voices (so 2) with optional CC assignment
    Free controller assignments to Modulation Wheel and Aftertouch
    LFOs, Envelopes, Arpeggios optionally syncable via external MIDI clock (one for each;)
    BankStick support (4 banks of 128 sound patches per stick, up to 8 can be connected) so 32 banks.
    And much more.

    Coming soon:
    wave and CC sequences which allow more percussive sounds (Wavetables) with dedicated banks.
    Drum or Fx Kit Presets with dedicated banks.
    8 Analog I/O
    4bit sampling ;)
    Atari 2600 Joystick and Video touch pad support.




    There's no CS on the cartridge version, but there's enough room in FW to add it. If someone wants to create it, you are welcome. This firmware is only for 18f4685.

    You can add MB-Link too if you need it, PORTA.0-7 and PORTB.0-3 share 8 I/O on the AUX connector.

    No CS; but I designed a Max/MSP Application (windows and Mac compatible):



    And it has iDevice support(sorry for those who boycott Apple products):



    I'm trying to finish a Max4Live version, with a common file between both applications that will retrieve the names of banks, patches and all parameters without having to open the input of the midi track and make a CC request (there's no SysEx in Ableton Live).
    Now i suppose you want to hear it:
    Listen on Soundcloud.com

    Voilà!!! :smile:
  2. Antichambre
    Features:

    PIC 18F4685. Leds Meter for each channel. In Circuit programming (bootloader). Jumper for select PortA Pin0-7 or PortA Pin4-7 + PortB0-3 on DB15 connector. (Future extension ex: old Joystick). Midi I/O with leds. Two Audio output with jumper selection, depends on TIA chip.



  3. Antichambre
    Firmware is working.
    Manager is ready.

    Features:

    2 dedicated envelopes with optional non-linear curve for each voice, which can be assigned to Pitch and Volume 2 additional envelopes with optional non-linear curve which can be assigned to Pitch and Volume 4 additional LFOs with different waveforms which can be assigned to Pitch and Volume Pitch Bender Portamento with optional "Constant Time Glide" function Delays Arpeggiator Poly, Mono, Multi and Legato Mode Separate keyboard zones for each voice (key splitting) allows to play voices separately Free controller assignments to Modulation Velocity AUD0, Velocity AUD1, Wheel and Aftertouch Wave and CC sequences which allow more percussive sounds 2 Wavetables, 3 modes (Single 1x32, double 2x16 and Kit) In Kit Mode Wavetable is used as Key mapping table The wavetable sequencer can be combined with the arpeggiator in order to realize complex textures LFOs, Envelopes, Wavetables, Arpeggios optionally syncable via external MIDI clock OS independent MaxMsp Manager BankStick support (128 sound patches per stick, up to 2 are internally connected)
    MaxMsp Manager:

    Here preset(patch) is 'Drum Kit 1'
    - Voice Mode : Poly, max 2 notes at a time.
    - Wavetable Mode : Kit, one note / one sound.

    'Drum Kit 1' Sound demo:
    Only one MIDI track, five differents sounds, for this drum pattern.
    The track starts with this five sounds.


    Next part: MB-TIA Cartridge. Final PCB.
  4. Antichambre
    The Television Interface Adaptor(TIA) is the custom chip that is the heart of the Atari 2600
    game console, generating the screen display, sound effects, and reading input controller.

    I/O Pin:

    Clock and CPU Synchronization:
    The 3.58 MHz oscillator (OSC Pin) also clocks a divide by three counter on this chip whose output (1.19 Mhz) is buffered to drive an output pin called 00.
    This pin provides the input phase zero clock to the microprocessor which then produces the system 02 clock (1.19 Mhz).
    Thus, the final input clock is 02, you've just got to bypass CPU, pin 00 connected to pin 02 and reproduce the OSC stage.
    There's two types of OSC one for the NTSC (3,58Mhz) and another for PAL/Secam (3,54MHz) according to your country video norm.
    The frequency of clock running has a direct bearing on the sound generator. In PAL, sounds will drop a little in pitch (frequency) because of a slower crystal clock.

    Audio Output:
    Two independent audio generating circuits are included, each with programmable frequency, noise content, and volume control registers.
    2 voices, named AUD0 and AUD1.
    With a TIA in NTSC version, each voice has its output (pin 12 & 13).
    In PAL version, the two voices are added to the same output (pin 13), pin 12 is used for carrier frequency modulation.
    So rather choose a NTSC version if you want 2 separate outputs.

    Synthesis:
    Each audio circuit consists of parts described below:

    Frequency Select:
    Clock pulses (at approximately 30 KHz) from the horizontal sync counter pass through a divide by N circuit which is controlled by the output code from a five bit frequency register (AUDF).
    This register can be loaded (written) by the microprocessor at any time, and causes the 30 KHz clocks to be divided by 1 (code 00000) through 32 (code 11111).
    This produces pulses that are digitally adjustable from approximately 30 KHz to 1 KHz and are used to clock the noise-tone generator.

    Noise-Tone Generator:
    This circuit contains a nine bit shift counter which may be controlled by the output code from a four bit audio control register(AUDC), and is clocked by the frequency select circuit.
    The control register can be loaded by the microprocessor at any time, and selects different shift counter feedback taps and count lengths to produce a variety of noise and tone qualities.

    Volume Select:
    The shift counter output is used to drive the audio output pad through four driver transistors that are graduated in size.
    Each transistor is twice as large as the previous one and is enable by one bit from the audio volume register (AUDV).
    This audio volume register may be loaded by the microprocessor at any time. As binary codes 0 through 15 are loaded, the pad drive transistors are enabled in a binary sequence.
    The shift counter output therefore can pull down on the audio output pad with 16 selectable impedance levels.

    Registers:
    There are 44 8-bit registers whose addresses are coded on 6 bits.

    AUDx registers adresses start @ 0x15
    0x15=00010101
    0x16=00010110
    0x17=00010111
    0x18=00011000
    0x19=00011001
    0x1a=00011010
    So we need 4 bits of address only. And 5 bits max for data (frequency).
    Data bits 7,6,5 and Adress bit 6 are connected to ground. Adress bit 5 to 5v.

    Frequency registers AUDFx:
    This registers are limited to 32 values​​ (5 bits), and need to be reversed!

    Control registers AUDCx:
    These are 16 in number (4 bits). But some are the same or are silent.
    So only 10 waveforms are available.

    Volume registers AUDVx:
    16 levels (4 bits).

    TIA Schematics and Documentation.

    Schematic for MBHP Platform, Thorsten style:
    mbhp_tia_v1.pdf

    Next part: MB-TIA Cartridge. Max Manager Software and Drum Kit Sound Demo.
  5. Antichambre
    I'm probably a bit nostalgic for a time I played the game console in the living room of my parent.
    Need electronic sounds that have traumatized my childhood.

    The Atari 2600.

    I started this project 5 years ago. The first prototype I built was too big and too expensive to manufacture and not programmed into MIOS:

    A friend of mine recently reminded me that I had promised to make one for him(another nostalgic).
    So I resumed work in late 2010, after checking that no one already did.

    The first question was whether I was able to program it into MIOS.
    I tried and succeeded. Then I searched for housing. Why not in a game cartridge of the era!!!
    So i try it too. AND it fits in the box.

    The 2010 Proto


    next: The TIA (Television Interface Adapter) Atari chip.
×
×
  • Create New...