It sounds like most of the control of your synth voices on this project is tied to the note information a pattern sends (note number, velocity, length, offset) and velocity, especially, is responsible for much of that. I imagine it would require quite a few CC/FX automation tracks, not to mention a fair bit more work, if you sought to divorce some of the synth parameter controls from the MIDI note events and you might very likely end up generating more MIDI events that way anyway in order to get the same sort of intentional, subtle control. Having those synth parameters tied to velocity may well be the most efficient way (in terms of total number of MIDI events) for your particular project.
I feel some frustration on your behalf because from my limited understanding of Bolero it is essentially built around a couple of repeating melodies and this should lend itself quite well to being recreated using sequencers like Pyramid, I would have thought. But because there’s a number of instuments coming in and out and the general build up in loudness, etc, it maybe isn’t so easy to make it work so well without a fair few patterns. I think Pyramid might provide some useful ways to compose a ‘Bolero type’ piece of music in a fairly MIDI event efficient way but maybe it’s not as efficient for reproducing it in a reasonably true and sympathetic type of way.
It’s good to hear you have manged to clean the project up to a level where you can work on it again. I hope you may even have enough memory available to get to point where you’re happy it is complete (or complete enough). I’m not sure what the ‘cleaning’ quite entailed. Was it mostly doing away with a few patterns (like the snare ones)?
Those figures you give for before and after cleaning are interesting. The thing that stood out initially to me was the number for the post cleaning ‘on disk’ project size. It was bigger than the pre cleaning figure despite the actual data in the project being reduced. It was also interesting that you got the core.pyr file size down quite significantly too. I was also intrigued to hear that Pyramid’s on board ‘memory used’ figure for the project was bigger than the data on disk.That is quite a surprise to me as Pyramid figures seem to always be lower for the projects I’ve compared.
From what I can gather the ‘on disk’ figure sort of refers to the amount of ‘space’ on the disk that the data is spread over. I think data is stored in ‘clusters’ on a disk and you end up with some parts (memory ‘cells’?) of the clusters not being filled (and I think, as such, that ‘space’ is no longer available). The clusters seem to need to be of a certain minimum size (?) and it seems certain data needs to go in a new cluster perhaps because some of the bytes need to run concurrently/can’t be broken up, or something. It’s good that you can still get to see the amount of memory the actual data itself takes up too, as this seems to be a whole lot closer.
I compared my old saved projects’ sizes (as seen on my computer) with my Pyramid’s information display (settings, info). Like I said, none of the sizes on Pyramid were as big as the data figures I see on my computer.
One thing I noticed was that the ‘on disk’ figures for all of my individual MIDI files was 4KB, no matter whether their data size was saying 81 bytes or 881 bytes. So I suppsoe those ‘on disk’ figures are always going to be larger than the data size figures and there will be a greater difference the more tracks they contain because each track requires at least 4 KB of space ‘on disk’.
I wonder what happens when the data in a MIDI file goes over 4KB? For instance, would 4.1 KB of data in a MIDI file require 8 KB of disk space? I suspect it might. Maybe some of your Bolero MIDI files contain more than 4 KB of data.
I think the ‘on disk’ figure is probably not too relevant for us when trying to get an impression of how much Pyramid memory (RAM) our projects use. The data size is probably better but I think Pyramid’s Information screen will be the best guide.
Having said this another thing I noticed was that the information screen on Pyramid does not always give the same figure for the same (unaltered) project. I think you only really get a ‘true’ reading if the project is the first project you have loaded since powering up.
I loaded different projects in on Pyramid to see how the on board ‘KB used’ display compared to the sizes I could see on my computer. In doing so I think I spotted that I was getting some unexpected differences with a couple of ‘template’ projects that I’d saved that were basically the same. I reloaded one and this time it appeared to have grown. I reloaded the other and apparently so too had that. I went round loading other projects and it seemed this ‘growing’ was happening for all the projects. Eventually Pyramid’s save/load function stopped working (2nd Save/load did nothing at all) though other functiuons appeared to all work still.
I powered down and after a bit powered back up. Now my projects were smaller again. I tried loading the same project (over itself). It went up by a couple of KB, for a couple of reloads, then by 3 KB, then a couple of reloads later by 4 KB. It seems loading a project from when there’s already a project in RAM does not completely clear all the RAM, at least not in a way that leaves it all available. To clear the memory completely (or as much as you can) you need to power down. Even loading a ‘NEW’ project over an existing one will be bigger than if you use load ‘NEW’ from a freshly booted and ‘empty’ Pyramid.
By the way, the 64 KB sized core.pyr files I had weren’t the ‘on disk’ figure. My computer (Macbook Pro from 2014) rounds the KB sizes to the nearest whole KB in the file list view (the MacBook’s Finder app window) and on the top left corner of it’s ‘get info’ window. The ‘on disk’ size was 66 KB. It appears that the core.pyr file size varies from project to project, though it does seem to tend towards certain ranges, in my case 32, 54, and 64 KB. I think the old 32 KB core.pyr files were made with the previous firmware, so your hunch could be right, the firmware update may be the reason why more recent ones all seem to be at least 54 KB, even my template projects. I bought a second hand Pyramid recently and the previous owner hadn’t completely cleared their SD card. Those, largely test projects, from what I can gather, had core.pyr files that were 55 KB (according to the list with Finder). I don’t know quite what influences the size of the core.pyr files but they seem to grow with the amount of tracks/patterns in use and I think that the (non-default) settings may have some affect too. I think I’d probably need to save a few different test project examples to get a better handle on this.
I suppose that whatever the core.pyr file consists of once it is saved to SD, it isn’t quite the same set of data that is stored in Pyramid’s RAM or at least that it requires less space in RAM than it does on an SD card. My ‘template’ (empty) projects use 28 KB according to Pyramid, yet their respective core.pyr files contain about 54 kB of data (the ‘on disk’ size is 57 KB). It seems that Pyramid doesn’t need to have all that core.pyr data on the SD card loaded into its RAM. I have the feeling that the MIDI file data (not ‘on disk’ figure but the total of all the data sizes for each MIDI file) would broadly take up the same amount of memory in Pyramid’s RAM. But that’s not easy to tell because some part of the core.pyr file seems to take up space in the RAM and in a project with very few tracks and MIDI events that seems to occupy most of the ‘used memory’ by a long way.
I just had a look at what the SD card contained for a more recent project. That has 8 tracks, I think only a couple have more than 1 pattern, and none have more than 3 patterns. None of the tracks are over 16 bars long. When (auto) loaded after turning on my Pyramid the Information screen displays 31 KB (how much Pyramid RAM is used). On my computer the information for the saved project (on SD card) says there is a total of 57,816 bytes (data) and there is 328 KB (!) ‘on disk’. The core.pyr file contains 55,544 bytes of data, and I totalled up the MIDI file data which came to 2272 bytes (equalling the difference of the core.pyr file subtracted from the project folder contents). Incidentally, the ‘on disk’ figure for the core.pyr file is 66 KB. Clearly though, 328 - 66 ≠ 32 (8 MIDI files at 4 KB each), it = 262 KB which suggests I have whopping MIDI files. But I don’t think I do. The biggest MIDI file is 609 bytes (of data). However, the on disk size (for each MIDI file) is 33 KB. The difference I think is because I tried naming the tracks for the first time on this project. It seems the track names get stored along with the MIDI files so they can perhaps be seen in a DAW (they do not appear on the SD card directory, but can be seen in the info my computer displays (under ‘more info’). It makes you realise just how efficient MIDI is when you can store songs worth of information in a few KBs yet it seems to take 29 KB more disk space just to have the ability to tell a DAW a track name.
What you say about MIDI file types 0 and 1 sounds right (and familiar from scraps I’ve read here and there).