Wednesday, 16 April 2014

Some users are reporting audio issues with version 2.90 of M3000 HD

We are looking into it ... if you are concerned and 2.84 is working well for you, don't update just yet.

Monday, 7 April 2014

Clare Lindley Violin Collection - update

When I embarked on the whole 'get new tapes together, focus on blendable dynamics using ABC knob, should sound great' thing, I knew what I wanted to do, and I had an idea of how it might sound. But as fundamentally a non-musician, I both rely on other people to really show my stuff at its best, and also get very excited and quite emotional when talented people really do raise the bar and extract good results from my products.

So I was pretty emotional and excited when I heard this, less than 2 1/2 weeks since Clare, Glenn and I were in the studio recording the raw material, and less than 48 hours after the first reliable, unbuggy build hit the App Store. This is, to my ears at least, quite beautiful, and is a truly remarkable demonstration of exactly what I was hoping to achieve with the new Clare Lindley Violin Collection for M3000. But it exceeds my expectations. It's dazzling.

So hats off to 'Pinstriped Clips', here is his demo created using just an iPad mini, M3000 is the only tone generator here, Garageband was used to to record the individual tracks and print the result.


Saturday, 5 April 2014

Mellotronics M3000 Tape Store


It's been a little longer in gestation than anticipated - as always - but as of this morning, 5th April 2014, the Tape Store within the Mellotronics M3000 50th Anniversary Edition is live, and is serving a feast of genuine, production tapes ('Copy Masters' in Streetly speak), awash with Mellotronic goodness, and probably vitamins and minerals as well. There is a known bug that causes a crash on iPad 1, that has a fix in the pipeline that will be submitted to Apple very soon. 

And for all those who have had a difficult few days as the App first crashed, then crashed again, then disappeared from the App Store as first the bug then the hasty and bogus bugfix were corrected, we are offering a freebie - the Free Voice Pack contains 4 additional tapes including the one that most people seem to want - Tony Banks' custom 'Watcher of the Skies' mix, a rude, honking blast that shows how wonderful this amazing musical instrument really is. 

It's free, and will be free forever, so go grab it. 

Sadly, if you are stuck on pre-iOS 7, there is no store for you and no freebie. But if you have an iPad 2 or above you can upgrade, if you have an iPad 1 and are stuck on iOS 5.1 we are working on a sneaky plan to get you the freebie anyway!

Friday, 4 April 2014

M3000 is back on the store and works

Grab it here if it is not yet showing up in your App Store on the device - and my device is showing 2.81 in the App Store app, don't update to that one - it is broken and the App Store shouldn't be displaying it, but I think we need their caches to clear.

Get it here - 

Thursday, 3 April 2014

... and Apple have granted me my second expedited review in just 48 hours

God I *love* those guys sometimes.

It doesn't quite make up for not being able to backtrack an app update to the previous good version, but they do their best, and it must be difficult when every 15 year old 'just bought a C++ book' kid on the planet is right now submitting 'Flappy Fart' and 'Crappy Bird' and other remarkable pieces of original, thought-provoking entertainment. And every single one of them has to be tested. It makes you weak at the knees thinking about what life must be like in Apple App Testing. Hell on earth, with birdy flap noises.

Wednesday, 2 April 2014

M3000 HD problems and an apology

As you know, a lot of effort has been put into our favourite app recently to introduce an in-app store for additional tapes, to allow you to get an even broader range of sounds from your Mellotronics M3000 iPad application.

Unfortunately we introduced a very severe bug into the in-store version of M3000 that was actually very hard to catch outside the store environment, which is about as bad as it gets - everything worked fine in testing when the app was distributed ad-hoc, then broke horribly when the app was downloaded from the store.

Unfortunately the 'rapid bugfix' bugfix was a little too rapid, and that too has failed to fix the problem. Given the App Store's unfortunate behaviour that does not allow a previous working version to be restored, we have no choice but to temporarily remove M3000 HD from the store. This situation should resolve very quickly, as a build is in beta on TestFlight with a few dozen testers that is solid. The app actually launches - a big plus - when it launches it has voices installed - another big plus - and the in-app store for iOS 7+ users allows more voices to be installed. Just the way we want it to be.

But we want to test it more, and we want to not rush the next fix. So please bear with us for a couple of days longer, this will all shake out soon.

Sunday, 30 March 2014

Some nice presets, for one of my fave songs ever

All will be revealed soon (ish). 'Eerie noise' is a placeholder that hasn't been programmed yet, so contains either random junk or some SynthSlade. I need to get me an eerie noise together sharpish.

-- PRESET 8 :eerie noise
major:000
minor:002
volumeLevel:127
volumeMarkup:003
pan:032
legato:000
feetAB:032 016
polyphony:001
subBassOn:001
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:080 126 126 095
LFOmorphs:108 042 015 042
LFOPDs:000 000 000 000
EGs[0]:019 019 127 060 036 000
EGs[1]:000 000 127 043 034 000
EGs[2]:025 025 076 046 034 000
EGs[3]:000 000 127 040 033 000
monoGlideTime:019
volumeMarkup:003
pianaForte:000
filterOrder:004
stereoDelay:038 038 025 025 070 018 016 001
reverbSend:009
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDA       > EGsel:002 EGamt:083 LFO:000 CC:000 K:038 DATAPATH:0x00
PDB       > EGsel:001 EGamt:089 LFO:000 CC:000 K:013 DATAPATH:0x00
morphA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:046 DATAPATH:0x00
morphB    > EGsel:001 EGamt:085 LFO:000 CC:000 K:042 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:019 DATAPATH:0x00
cutoff    > EGsel:000 EGamt:064 LFO:000 CC:000 K:077 DATAPATH:0x00
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:024 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 9 :Phil Collins
major:000
minor:002
volumeLevel:127
volumeMarkup:064
pan:044
legato:000
feetAB:008 032
polyphony:002
subBassOn:000
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:120 126 126 095
LFOmorphs:042 042 015 042
LFOPDs:000 000 000 000
EGs[0]:000 021 127 030 029 048
EGs[1]:000 000 035 023 021 000
EGs[2]:000 025 102 030 029 052
EGs[3]:000 019 051 030 029 000
monoGlideTime:000
volumeMarkup:064
pianaForte:000
filterOrder:002
stereoDelay:032 032 000 000 083 037 038 001
reverbSend:062
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:018 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
PDA       > EGsel:002 EGamt:083 LFO:000 CC:000 K:038 DATAPATH:0x00
PDB       > EGsel:002 EGamt:070 LFO:000 CC:000 K:025 DATAPATH:0x00
morphA    > EGsel:000 EGamt:079 LFO:000 CC:000 K:084 DATAPATH:0x00
morphB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:003 EGamt:080 LFO:000 CC:000 K:001 DATAPATH:0x20
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 10 :Hi Hat
major:000
minor:002
volumeLevel:127
volumeMarkup:018
pan:032
legato:000
feetAB:008 008
polyphony:001
subBassOn:000
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:080 126 126 095
LFOmorphs:108 042 015 042
LFOPDs:000 000 000 000
EGs[0]:003 015 064 040 029 041
EGs[1]:050 006 127 000 048 000
EGs[2]:025 025 076 046 041 000
EGs[3]:000 000 127 040 033 000
monoGlideTime:000
volumeMarkup:018
pianaForte:000
filterOrder:001
stereoDelay:038 038 025 025 070 018 016 000
reverbSend:110
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
PDA       > EGsel:002 EGamt:083 LFO:000 CC:000 K:038 DATAPATH:0x00
PDB       > EGsel:001 EGamt:089 LFO:000 CC:000 K:013 DATAPATH:0x00
morphA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:046 DATAPATH:0x00
morphB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:046 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:000 EGamt:064 LFO:000 CC:000 K:012 DATAPATH:0x60
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:088 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 11 :Woodblockthing
major:000
minor:002
volumeLevel:127
volumeMarkup:038
pan:025
legato:000
feetAB:032 032
polyphony:001
subBassOn:000
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:120 126 126 095
LFOmorphs:042 042 015 042
LFOPDs:000 000 000 000
EGs[0]:000 015 114 025 025 048
EGs[1]:000 000 029 016 016 000
EGs[2]:025 025 076 046 041 000
EGs[3]:000 000 127 040 033 000
monoGlideTime:000
volumeMarkup:038
pianaForte:000
filterOrder:004
stereoDelay:038 038 079 079 044 018 016 000
reverbSend:072
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
PDA       > EGsel:002 EGamt:083 LFO:000 CC:000 K:038 DATAPATH:0x00
PDB       > EGsel:002 EGamt:070 LFO:000 CC:000 K:025 DATAPATH:0x00
morphA    > EGsel:000 EGamt:079 LFO:000 CC:000 K:084 DATAPATH:0x00
morphB    > EGsel:003 EGamt:072 LFO:000 CC:000 K:017 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:001 EGamt:065 LFO:000 CC:000 K:006 DATAPATH:0x60
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 12 :Fat bass
major:000
minor:002
volumeLevel:127
volumeMarkup:024
pan:064
legato:000
feetAB:032 032
polyphony:000
subBassOn:001
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:080 020 126 095
LFOmorphs:108 000 015 042
LFOPDs:000 000 000 000
EGs[0]:019 029 089 058 036 000
EGs[1]:031 034 114 059 033 000
EGs[2]:036 041 083 063 032 000
EGs[3]:000 000 127 044 030 000
monoGlideTime:015
volumeMarkup:024
pianaForte:000
filterOrder:004
stereoDelay:064 064 015 015 095 018 016 001
reverbSend:019
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:006 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:114 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:114 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:102 DATAPATH:0x00
PDA       > EGsel:002 EGamt:111 LFO:000 CC:000 K:019 DATAPATH:0x00
PDB       > EGsel:001 EGamt:111 LFO:000 CC:000 K:032 DATAPATH:0x00
morphA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:015 DATAPATH:0x00
morphB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:060 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
fineB     > EGsel:000 EGamt:064 LFO:001 CC:000 K:000 DATAPATH:0x04
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:000 EGamt:064 LFO:000 CC:000 K:015 DATAPATH:0x60
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:019 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 13 :Warm Jets
major:000
minor:002
volumeLevel:032
volumeMarkup:003
pan:117
legato:000
feetAB:016 004
polyphony:001
subBassOn:001
hardSyncOn:001
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:080 126 126 095
LFOmorphs:108 042 015 042
LFOPDs:000 000 000 000
EGs[0]:000 028 101 079 034 000
EGs[1]:036 000 127 054 044 000
EGs[2]:036 000 127 000 039 000
EGs[3]:064 000 127 000 033 000
monoGlideTime:000
volumeMarkup:003
pianaForte:000
filterOrder:004
stereoDelay:058 058 064 064 108 034 033 001
reverbSend:047
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDA       > EGsel:001 EGamt:119 LFO:000 CC:000 K:015 DATAPATH:0x00
PDB       > EGsel:003 EGamt:108 LFO:000 CC:000 K:013 DATAPATH:0x00
morphA    > EGsel:002 EGamt:093 LFO:000 CC:000 K:025 DATAPATH:0x00
morphB    > EGsel:003 EGamt:077 LFO:000 CC:000 K:065 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
coarseA   > EGsel:002 EGamt:095 LFO:000 CC:000 K:064 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:073 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:100 DATAPATH:0x00
cutoff    > EGsel:000 EGamt:064 LFO:000 CC:000 K:077 DATAPATH:0x00
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:032 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 14 :Manzanera wiggle
major:000
minor:002
volumeLevel:127
volumeMarkup:016
pan:064
legato:000
feetAB:008 016
polyphony:000
subBassOn:001
hardSyncOn:001
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:064 068 126 095
LFOmorphs:108 020 015 042
LFOPDs:000 000 000 000
EGs[0]:022 029 076 073 039 000
EGs[1]:050 006 127 043 041 000
EGs[2]:041 000 127 000 049 000
EGs[3]:000 000 127 040 033 000
monoGlideTime:011
volumeMarkup:016
pianaForte:000
filterOrder:002
stereoDelay:095 095 099 099 044 046 050 001
reverbSend:019
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:030 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:020 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDA       > EGsel:002 EGamt:079 LFO:000 CC:000 K:008 DATAPATH:0x00
PDB       > EGsel:003 EGamt:077 LFO:000 CC:000 K:003 DATAPATH:0x00
morphA    > EGsel:000 EGamt:069 LFO:000 CC:000 K:011 DATAPATH:0x00
morphB    > EGsel:003 EGamt:072 LFO:000 CC:000 K:004 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x06
fineB     > EGsel:000 EGamt:064 LFO:001 CC:000 K:000 DATAPATH:0x06
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:091 DATAPATH:0x10
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:051 DATAPATH:0x00
cutoff    > EGsel:000 EGamt:064 LFO:000 CC:000 K:019 DATAPATH:0x00
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 15 :Distant Organ
major:000
minor:002
volumeLevel:070
volumeMarkup:016
pan:006
legato:000
feetAB:032 016
polyphony:003
subBassOn:000
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:080 126 126 095
LFOmorphs:092 042 015 042
LFOPDs:000 000 000 000
EGs[0]:022 015 127 000 036 000
EGs[1]:000 000 127 050 040 000
EGs[2]:039 039 051 046 039 000
EGs[3]:000 000 127 040 033 000
monoGlideTime:000
volumeMarkup:016
pianaForte:000
filterOrder:000
stereoDelay:038 038 025 025 070 018 016 000
reverbSend:000
bendRange:002 024
MODULATION:
LFO0      > EGsel:000 EGamt:064 LFO:000 CC:000 K:025 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:013 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:033 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:033 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDA       > EGsel:000 EGamt:064 LFO:000 CC:000 K:020 DATAPATH:0x04
PDB       > EGsel:000 EGamt:064 LFO:000 CC:000 K:018 DATAPATH:0x04
morphA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:008 DATAPATH:0x00
morphB    > EGsel:001 EGamt:067 LFO:000 CC:000 K:006 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:001 CC:000 K:013 DATAPATH:0x06
fineB     > EGsel:000 EGamt:064 LFO:002 CC:000 K:000 DATAPATH:0x04
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:000 EGamt:064 LFO:000 CC:000 K:014 DATAPATH:0x00
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 16 :Left Brass
major:000
minor:002
volumeLevel:127
volumeMarkup:016
pan:032
legato:000
feetAB:008 008
polyphony:001
subBassOn:001
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:125 075 082 095
LFOmorphs:121 000 108 042
LFOPDs:000 000 000 000
EGs[0]:015 019 127 000 013 000
EGs[1]:021 032 025 000 039 000
EGs[2]:000 021 000 000 032 000
EGs[3]:000 050 127 058 025 000
monoGlideTime:000
volumeMarkup:016
pianaForte:000
filterOrder:004
stereoDelay:108 108 038 038 095 034 031 001
reverbSend:037
bendRange:002 024
MODULATION:
LFO0      > EGsel:002 EGamt:109 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:003 EGamt:095 LFO:002 CC:000 K:000 DATAPATH:0x08
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:003 EGamt:092 LFO:002 CC:000 K:071 DATAPATH:0x08
levelB    > EGsel:003 EGamt:092 LFO:002 CC:000 K:071 DATAPATH:0x08
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDA       > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDB       > EGsel:003 EGamt:064 LFO:002 CC:000 K:000 DATAPATH:0x04
morphA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:046 DATAPATH:0x00
morphB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:038 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x06
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:005 DATAPATH:0x06
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:003 EGamt:111 LFO:002 CC:000 K:000 DATAPATH:0x08
cutoff    > EGsel:001 EGamt:086 LFO:000 CC:000 K:011 DATAPATH:0x60
resonance > EGsel:003 EGamt:064 LFO:002 CC:000 K:000 DATAPATH:0x04
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 17 :Right Brass
major:000
minor:002
volumeLevel:127
volumeMarkup:016
pan:095
legato:000
feetAB:008 008
polyphony:001
subBassOn:001
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:125 075 082 095
LFOmorphs:121 000 108 042
LFOPDs:000 000 000 000
EGs[0]:015 019 127 000 013 000
EGs[1]:021 032 025 000 039 000
EGs[2]:000 021 000 000 032 000
EGs[3]:000 050 127 058 025 000
monoGlideTime:000
volumeMarkup:016
pianaForte:000
filterOrder:004
stereoDelay:108 108 038 038 095 034 031 001
reverbSend:037
bendRange:002 024
MODULATION:
LFO0      > EGsel:002 EGamt:109 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:003 EGamt:095 LFO:002 CC:000 K:000 DATAPATH:0x08
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:003 EGamt:092 LFO:002 CC:000 K:071 DATAPATH:0x08
levelB    > EGsel:003 EGamt:085 LFO:002 CC:000 K:071 DATAPATH:0x08
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDA       > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
PDB       > EGsel:003 EGamt:064 LFO:002 CC:000 K:000 DATAPATH:0x04
morphA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:038 DATAPATH:0x00
morphB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:046 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x06
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:005 DATAPATH:0x06
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:001 EGamt:086 LFO:000 CC:000 K:011 DATAPATH:0x60
resonance > EGsel:003 EGamt:064 LFO:002 CC:000 K:000 DATAPATH:0x04
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00
-- PRESET 18 :Glitterclap
major:000
minor:002
volumeLevel:127
volumeMarkup:076
pan:064
legato:000
feetAB:008 008
polyphony:000
subBassOn:000
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019
LFOfreqs:119 126 126 095
LFOmorphs:053 042 015 042
LFOPDs:013 000 000 000
EGs[0]:017 030 095 038 034 000
EGs[1]:000 026 127 030 030 000
EGs[2]:025 025 076 046 041 000
EGs[3]:000 000 127 040 033 000
monoGlideTime:000
volumeMarkup:076
pianaForte:000
filterOrder:003
stereoDelay:108 108 051 051 083 034 032 001
reverbSend:055
bendRange:002 024
MODULATION:
LFO0      > EGsel:001 EGamt:108 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:038 DATAPATH:0x04
PDA       > EGsel:002 EGamt:083 LFO:000 CC:000 K:038 DATAPATH:0x00
PDB       > EGsel:002 EGamt:070 LFO:000 CC:000 K:025 DATAPATH:0x00
morphA    > EGsel:000 EGamt:079 LFO:000 CC:000 K:084 DATAPATH:0x00
morphB    > EGsel:003 EGamt:072 LFO:000 CC:000 K:017 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:001 EGamt:064 LFO:000 CC:000 K:005 DATAPATH:0x40
resonance > EGsel:000 EGamt:092 LFO:000 CC:000 K:000 DATAPATH:0x00


NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00

Friday, 28 March 2014

POLYANA moves forward (a little bit)

Three things have happened recently.

Firstly, I finally got the cutoff thing to work sensibly, and it took twiddling knobs on a (virtual) Minimoog and talking to an owner of various actual analog synths to understand how to modify my behaviour to be meaningful to people used to that behaviour.

Secondly, I finally put modulation to bed, forever. It will not change again. And it looks like this -

Modulation output takes 5 parameters -

EGsel EGamnt LFOsel Offset CCsel datapath

EGamount is always signed
LFOamount is itself a modulation output for each of the 4 LFOs
Datapath contains bits that can modify the interpretation of the data - datapath bits are

enum dataPathConstants {
    dataPath_signedCC        = 0x01,
    dataPath_signedLFO       = 0x02,
    dataPath_includeLFO      = 0x04,
    dataPath_k2range25to2    = 0x08,
    dataPath_keyboardSwitch1 = 0x10// 33% Moog switch!!
    dataPath_keyboardSwitch2 = 0x20// 67%

};

The keyboard switches are only used for cutoff, so should no doubt be moved elsewhere but they will stay here now I've committed that it's frozen! Committed - that reminds me of a story involving raw horsemeat in Japan ...

The 'K' modifier lets a constant be treated as 0.25f -> 2.0f rather than -1.0f -> 1.0f (constants are signed by default) - this lets coarsepitch be 1.5*keyboard which when coupled with hardsync gives you that perfect fifth sizzle, or even without hardsync it gives you the fifth overtone, which you might want once or twice a year.

Output = EG*EGamount + LFOsel*LFOamount + CC + K

Unless of course the output is the cutoff frequency, where it's all multiplicative. ANd that was the big behaviour change and the head scratch - it all clearly needed to be multiplicative, but what do you set all the multipliers to, given a set of inputs. But now it is multiplicative, if keyfollow is 1.0 i.e.   dataPath_keyboardSwitch1 | dataPath_keyboardSwitch2 you will always get an even-tempered scale out of the filter cutoff, modulo my tuning table accuracy in the filter code. Which is of course exactly what you always wanted.

The EG amount is prescaled by 4.0 so the EG contribution to cutoff ranges +- 2 octaves - maybe this needs cranking up to 4 ... so maybe not *quite* frozen yet.

The knob does nothing in cutoff right now, there are just EG / K / Key coefficients right now, so the knob (CCsel) probably ought to be added into the constant to allow cutoff to be twiddled without resorting to SysEx traffic.

So that's your modulation. Done and dusted, finally.

Thirdly, there is now a nice human-readable text format for presets. This is because I STILL have no UI (I am, like Lady Gaga, kind of busy) and because I got sick of having to recompile every time I wanted to change anything.

Here's a preset for y'all - every field is a 0..127 MIDI byte, and there are a handful of mappings to move from those to floats -

an unsigned mapping 0.0f -> 1.0f
and a scaled unsigned mapping 0.0f -> 8.0f - both of these tables have been hand-tweaked to contain exact Pythagorean ratios, so if you want the true insane beauty of the music of the spheres, you can dial it up
a signed mapping -1.0f -> +1.0f
a 'cutoff' mapping for the filter 14ish Hz -> just short of Nyquist limit, logarithmic and tuned in semitones
a 'time' mapping for EGs from 1/2ms to 48s
a 'frequency' mapping for LFOs from 0.01Hz to 100Hz - so you can get a slow, slow movement, or an FM-like modulation with a 100Hz modulator

-- PRESET 0 :glamclap
major:000
minor:002
volumeLevel:127
volumeMarkup:076
pan:064
legato:000
feetAB:008 008 
polyphony:000
subBassOn:000
hardSyncOn:000
midiCCs:082 001 028 029 016 080 018 019 
LFOfreqs:115 126 126 095 
LFOmorphs:053 042 015 042 
LFOPDs:013 000 000 000 
EGs[0]:019 026 102 028 028 000 
EGs[1]:000 022 127 022 022 000 
EGs[2]:025 025 076 046 041 000 
EGs[3]:000 000 127 040 033 000 
monoGlideTime:000
volumeMarkup:076
pianaForte:000
filterOrder:003
stereoDelay:095 095 018 018 083 033 034 001 
reverbSend:055
bendRange:002 024 
MODULATION:
LFO0      > EGsel:001 EGamt:108 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO1      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO2      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
LFO3      > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelA    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelB    > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
levelC    > EGsel:000 EGamt:064 LFO:000 CC:000 K:038 DATAPATH:0x04
PDA       > EGsel:002 EGamt:083 LFO:000 CC:000 K:038 DATAPATH:0x00
PDB       > EGsel:002 EGamt:070 LFO:000 CC:000 K:025 DATAPATH:0x00
morphA    > EGsel:000 EGamt:079 LFO:000 CC:000 K:084 DATAPATH:0x00
morphB    > EGsel:003 EGamt:072 LFO:000 CC:000 K:017 DATAPATH:0x00
fineA     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
fineB     > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x04
coarseA   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
coarseB   > EGsel:000 EGamt:064 LFO:000 CC:000 K:127 DATAPATH:0x00
ringMod   > EGsel:000 EGamt:064 LFO:000 CC:000 K:000 DATAPATH:0x00
cutoff    > EGsel:001 EGamt:064 LFO:000 CC:000 K:005 DATAPATH:0x20
resonance > EGsel:000 EGamt:064 LFO:000 CC:000 K:029 DATAPATH:0x00
NULL      > EGsel:000 EGamt:000 LFO:000 CC:000 K:000 DATAPATH:0x00

And that is it for this week's update on the slowest Virtual Analog synthesizer development effort in the history of the human race.

UPDATE, and not quite 'that is it' - the modulation changed. Funny, eh? Tiny change, I introduced one more datapath control bit, dataPath_invertEG which when asserted turns the mod equation into

Output = (1.0f - EG)*EGamount + LFOsel*LFOamount + CC + K

which turns out to be a nice and simple way to add a delay into an LFO engagement. Program an EG with zero attack so the EG hits 1.0 immediately, 0.5s of decay, sustain level 1.0 - this simply holds the EG at 1.0 before the decay phase. Invert this, and you get a 1/2 second delay before a signal starts to rise on you. And so many uses for a rising EG - you can modulate the amplitude of one or more oscillators for that 'blowing harder as brass sustains' thing, you can increase resonance on the same brass note,  tons of useful stuff that you might want to come in late. Excellent!


Saturday, 22 March 2014

New, freshly-recorded violin voices for M3000


Last Wednesday, 19th March, we were in the studio of Glenn Tommey (Stackridge keyboards / trombone / flute) in order to capture a set of recordings of Clare Lindley, violinist with Stackridge and DLM. It has to be said, the violin is already the best-served instrument for tape replay and virtual tape replay instruments - there are Harry's original violins which then were EQd into the MK II, there are the M300A and M300B violins, the M400 violins. Violins aplenty. And yet there is something about how violins sound, and how no two violins or violin libraries sound exactly the same, that means there is always room for another chromatically-sampled set of voices for that lovely, expressive instrument. So, given all that, we had a shot at making a brand-new, clean, 2014 technology library.

I had been warned by the Streetly team that it isn't easy, and it turned out to be pretty arduous for the poor artist - 8 solid minutes of tremolo bow-bouncing is apparently an elbow-breaker!

But it was a successful evening's work, and I'm very, very happy with the results. A brand-new 2014 violin library with 7 distinct voices. There is a 'soft, slow' arco, which is fascinating, when played as chords it loses its violin quality and becomes almost muted brass. A 'soft vibrato' arco, with a very subtle vibrato, and using the mod wheel to transition between these voices is very effective. A pair of 'gusto' arcos, pure and with vibrato, and with no attempt made to edit out the transitions in bow direction - it sounds like somebody playing the violin, which is great. On top these there is a pizzicato, this one two takes doubled up for an ensemble sound, a cracking edgy spiccato, and the elbow-wrecking tremolo. The goal of this whole exercise was to develop a library in the spirit of the mellotron - simple, chromatic, 8 second samples of performance that can substitute for a string section on stage or on record. But not only that, to allow scope for expression and performance by recording multiple different techniques in one session. Taking a cue from Rick Wakeman's astonishing 'Space Oddity' performance, this will allow gifted keyboardists to make the library shine by subtle twiddling of knobs during play. So for example, by leaving the spiccato in B, 'soft no vibrato' in A and 'gusto vibrato' in C, wholly new combinations of 'attack plus soft sustain' and 'attack with strong vibrato sustain' can be created by use of the mod wheel during performance, setting partial blends of A and B, or B and C. The library is in fact boosted up to 10 voices - 350 samples! - by the addition of 3 'ensemble' voices, which blend 2 different 'soft' takes and a 'soft vibrato', a 'soft and gusto' mix and an 'all the stops out' gusto pure / gusto vibrato / soft vibrato mix.  These allow a single M3000 on stage to be set up with say a Clare ensemble, a classic 8 voice choir and some Strawberry flutes in the ABC, for maximum prog rock impact.

This new library, along with the amazing Harry Chamberlin Tapes and a quite breathtaking, massive selection of Streetly's classic Tron tapes will be made available for in-app purchase at the next M3000 refresh, which will be submitted to the App Store for review within the next few days. Exciting times!

p.s. here's the team happy and fresh, before elbows were broken by 8 solid minutes of tremolo ...



Friday, 14 March 2014

Happy Pi Day, folks

Well, it's Pi Day if you use a US-style calendar. Over here it's just 14.3, and I am not aware of any fundamental constants in nature that lie a little bit under fourteen and a third. But that doesn't matter, every day is worthy of celebration, so I'd like to wish a 'Happy approximately 43/3 day' to everyone this side of the pond. Don't eat too much cake and spoil your appetites for dinner, OK?