Trying to get "beyond" 16 steps. Compiler/Dynamic Memory question.

Status
Not open for further replies.

ValStorm

Member
Hello,

I've been developing some ideas for a software sequencer and 90s Star Trek aesthetic composition surface. I am hoping to allow the sequence to be able to grow in whatever direction the user feels inclined. If that is (for whatever reason) just one step with two hundred notes of polyphony, 213 steps with one note in the middle, or perhaps a track with 7 steps, one with 19, and one with 25. While coding this is rather fun and not terribly problematic, I am unsure of which way to go on the implementation of the data structure(s) for this project. I'm working with a 3.6 and it seems that there is plenty of room to spare and I want to make use

I thought it would be fun if not utterly superfluous to build some tests out of circular 2D linked lists and trying to do a quick tally of the memory usage I realized how ignorant of what goes down at compile time.

In order to get the same functionality as laid out with the linked list build I believe I would have to make a very large multidimensional array with ample empty space to use as a buffer for copying and processing the sequences. Sure, there are benefits to this method like integer math list processing, switching "x" for "y" and it's much easier to read... I was just really hoping to get away from "grid" mentality for this composition tool.

TL;DR
Where can I find definitive information on how things like arrays, calling array list items (step[13][0]), pointers, pointers to structs, class functions that call other class functions, etc... all compile on the Teensy 3.6? Does anyone have a good jumping off point so I can research more and figure out a good method to implement data structures at the upper (or "lower") reaches of memory in the Teensy 3.6?

Right on. Thanks y'all.
 
Safety of the grid

Hello,

In order to get the same functionality as laid out with the linked list build I believe I would have to make a very large multidimensional array with ample empty space to use as a buffer for copying and processing the sequences.

TL;DR


Just playing around with creating some static arrays of structs and a 256 (sequence length) by 48 (amount of tracks) by 8 (polyphony) three dimensional grid of structs with enough members to store simple midi data is only 75% of the RAM. This doesn't seem in anyway limiting actually... Especially if I can use dedicated pointer "end points" for insertion/traversal. Haha, circular linked lists! What was I thinking!
 
Status
Not open for further replies.
Back
Top