Git Product home page Git Product logo

aleph's People

Contributors

boqs avatar catfact avatar darrengit avatar dinchak avatar ngwese avatar prgmsoftware avatar ranch-verdin avatar tehn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aleph's Issues

clean up timers

software timer class is bloated and modularity sucks. avr32 OS and applications should have separate timer lists, and these can be hardcoded.

associate scenes with audio modules.

a scene currently stores the name of its module. additionally, we should have default scenes associated with each module and the option to load the default scene from the modules page in bees.

polyphony

need voice-allocation module for polysynth. should probably design monosynth with an eye towards abstraction.

monosynth

finish a working monosynth module. wavetable oscillator access works well but needs working envelopes, filters, waveshape generation
depends on : issue #9

unimplemented bees menu commands

finish implementing bees menu commands.
here is the full list from the guide.

for bugs with implemented commands, search for related issues and/or make new ones.

INPUTS:

  • SW0: STORE: store current value in current preset
  • SW1: INC/EXC: toggle inclusion of this input in current preset management
  • SW2: CLEAR: disconnect everything from this input
  • ALT0: GATHER: go to modal page with only the outputs connected to this input
  • ALT1: SHOW/HIDE: toggle inclusion of this input in play-mode listing
  • ALT2: FILT/ALL: show only play-enabled inputs in this list, or show all (default).
  • ALT + ENC0: select preset for recall + edit
  • ENC2: --- change parameter value, slow
  • ENC3: --- change parameter vlaue, fast

ROUTING:

  • SW0: STORE: store current routing in current preset
  • SW1: INC/EXC: toggle inclusion of this routing in current preset
  • SW2: CLEAR: disconnect
  • ALT0: FOLLOW: select this output's target on inputs page, and go there
  • ALT1: SPLIT: create a SPLIT operator and connect to its first input.
    if operator was already connected,
    connect the split's output to its former target.
    select the other split output.
  • ENC3: --- scroll target input

PRESETS:

  • SW0: STORE: store all nodes at this preset.
  • SW1: RECALL: overwrite all preset-included nodes with preset,
    update inclusion for next recall.
  • SW2: COPY/OK: begin copy / confirm and finish copy.
  • SW3: DEFAULT: store current settings as default

SCENES:

  • SW0: STORE: store current state of network to scene name.
    if the name has been edited, a new file will be created.
  • SW1: RECALL: load scene (halts network processing and may make noise).
  • SW2: COPY/OK: begin copy / confirm and finish copy.
  • ALT0: DEFAULT: store current settings as default
  • ALT2: CLEAR/OK: clear the current scene

OPERATORS:

  • SW0: INPUTS: select this op's inputs on ins page, and go there.
  • SW1: OUTPUTS: select this op's outputs on outs page, and go there.
  • SW2: CREATE: add a new operator of selected type.
  • SW3: PAGE/LIST: toggle op-specific subpage
  • ENC3: --- select operator type for creation.

MODULES:

  • SW0: LOAD: load audio module from sdcard.
  • SW1: DEFAULT: write audio module to internal memory for startup.

custom copy methods

get your OOP act together and write custom copy methods for preset_t, scene_t, ctlnet_t, and whatever other big data classes are being blindly memcpy'd with impunity all over the dang place.

fix ASR envelopes

ASR is sort of broken. coefficient calculation is slow enough to disrupt audio. might as well use a lowpass filter.

production workflow

have a detailed plan of how production will happen.

how to play factory. every step.

screen / graphics restructure

fonts and glyphs should probably be application-specific.
provide raw access to pixels and some compositing methods.

structures such as menu pages should be able to keep their own graphics buffers, rendering new text only as needed.

i2c

simple functionality

drum synth

make a basic drum synth module.

  • noise sources
  • filters
  • oscillators
  • envelopes

website

photos
text
diagram
video

clean up events / handlers

the event handling system sucks.
should have separate queues for periodic system events (triggered from timers and handled by OS) and for events that are initiated from UI and handled by application.
should probably use arrays of function pointers that can be dynamically re-assigned by application.

pages / menu restructure

the source files for pages are a mess and should at least be separated. pages should never be using a big case statement on UI.
see issue #15

testing suite

avr32 bootloader should include some test facilities.

  • RAM
  • cv loopback
  • audio
  • screen
  • footswitches
  • buttons
  • encoders
  • usb connections (aleph as host)
  • serial connections (aleph as device)

code style / guide

articulate and document a consistent code formatting/naming style and suggested worklfow (e.g. where and when to branch/merge/push.)

not to mention, applying agreed-upon styles to existing codebase...

completed cost analysis

quotes remain:
top plate
pcb production
pcb assembly
general assembly
packaging
power supply

.ldr stability

still seeing occasional unsuccessful blackfin boots. the system can work around them but i fear for the lifespan of the chip if it is booted from garbage. (we have seen that out-of-spec clock division settings will burn out the dsp, for example.)

for starters, we can checksum the .ldr data to see if there is corruption from sdcard.

in extremity, we could store each blackin programs as .hex and checksum each entry as we do with avr32 firmware. the downside is potentially a lot of computation time when loading a new dsp.

it seems unlikely but possible that the corruption is in SPI; checksum mismatch before that would suggest not.

programming guide

improve documentation of programming

  • toolchain setup
  • API descriptions
  • annotated examples

CV output

re-test CV output dac drivers. integrate this with the blackfin core. expose aleph parameters for output values.

bees remote editing

translate between binary scene files and XML or JSON or whatever the web kids are using.
alternatively, additionally, or relatedly: design a means of transmitting edits (+ performance?) over serial ports.

avr32 firmware metadata

need an abstract mechanism to embed some descriptive text in a firmware .hex file, and probably to assign a default audio module.

interpolated buffer access

audio buffers need double-precision or float indexing for subsample access. 32.32 indexing is present but broken.

scene loading stability

loading monome op splatters weird shit into memory.
possible null function pointer.
might be better idea to store manager classes in the network data so their state is saved in scene.

avr32 example app

make a simpler app than bees to demonstrate easy use of avr32 OS layer.
loop pedal would be a good candidate.

video

  1. viola and mic input, echo patch, foot pedals, analog insert path (filter?)
  2. eurorack and gamepad, bees sequencer or something
  3. aleph with usb midi keyboard playing polyphonic synth
  4. monome grid with aleph drum machine

blackfin control rate

we should be able to drastically improve blackfin performance with a well-considered control rate implementation.
will also let us get away with more in the numerical-precision department when e.g. applying control-rate filters.

monome series protocol

this got barfed up at some point since i switched to testing on mext and changed a bunch of stuff

SPI breakage in param set

setting parameters really fast can result in what seems like breakage of the blackfin SPI state machine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.